ChangeLog
|
ChangeLog
|
|
|
See the ChangeLog file looking for lines taged with the word FIXME.
|
See the ChangeLog file looking for lines taged with the word FIXME.
|
|
|
|
|
COREFILE.C:
|
COREFILE.C:
|
|
|
The implementation of corefile.c (defined by corefile.h) isn't the
|
The implementation of corefile.c (defined by corefile.h) isn't the
|
best. It is intended to be functionaly correct rather than fast. One
|
best. It is intended to be functionaly correct rather than fast. One
|
option being considered is to add a data cache to reduce the overhead
|
option being considered is to add a data cache to reduce the overhead
|
of the most common case of data read/writes.
|
of the most common case of data read/writes.
|
|
|
|
|
VEA:
|
VEA:
|
|
|
Missing VEA system calls.
|
Missing VEA system calls.
|
|
|
ppc-instructions:
|
ppc-instructions:
|
|
|
Missing or commented out instructions.
|
Missing or commented out instructions.
|
|
|
|
|
64bit:
|
64bit:
|
|
|
64bit target untested. 64bit host broken. For instance use of scanf
|
64bit target untested. 64bit host broken. For instance use of scanf
|
"%x", &long long.
|
"%x", &long long.
|
|
|
|
|
|
|
hw_*.c:
|
hw_*.c:
|
|
|
Better and more devices.
|
Better and more devices.
|
|
|
PORTABILITY:
|
PORTABILITY:
|
|
|
(Notes taken from Michael Meissner): Heavy use of the ## operator -
|
(Notes taken from Michael Meissner): Heavy use of the ## operator -
|
fix using the clasic X/**/Y hack; Use of the signed keyword. In
|
fix using the clasic X/**/Y hack; Use of the signed keyword. In
|
particular, signed char has no analogue in classic C (though most
|
particular, signed char has no analogue in classic C (though most
|
implementations of classic C use signed chars); Use of long long which
|
implementations of classic C use signed chars); Use of long long which
|
restricts the target compiler to be GCC.
|
restricts the target compiler to be GCC.
|
|
|
|
|
TRACING:
|
TRACING:
|
|
|
debug.c: Macro's should be extended to include:
|
debug.c: Macro's should be extended to include:
|
|
|
IS_*TRACE: True if tracing enabled
|
IS_*TRACE: True if tracing enabled
|
*TRACE_PREFIX: Outputs just the prefix line
|
*TRACE_PREFIX: Outputs just the prefix line
|
|
|
hw_trace.c: Flush, replace with a psim_set_tracing or some
|
hw_trace.c: Flush, replace with a psim_set_tracing or some
|
such program.
|
such program.
|
|
|
|
|
CIA/NIA:
|
CIA/NIA:
|
|
|
Replace with functions to return/increment the CIA?
|
Replace with functions to return/increment the CIA?
|
|
|
|
|
|
|
SMP & GDB:
|
SMP & GDB:
|
|
|
GDB doesn't understand SMP!
|
GDB doesn't understand SMP!
|
|
|
|
|
|
|
|
|
OVERALL STRUCTURE:
|
OVERALL STRUCTURE:
|
|
|
A new file pstruct.h is to be created that contains a single flat data
|
A new file pstruct.h is to be created that contains a single flat data
|
structure containing:
|
structure containing:
|
|
|
pstruct {
|
pstruct {
|
events;
|
events;
|
core;
|
core;
|
processor[nr_cpus];
|
processor[nr_cpus];
|
monitor;
|
monitor;
|
devices;
|
devices;
|
trace;
|
trace;
|
}
|
}
|
|
|
The CPU's structure, in turn would contain the VM sub structures.
|
The CPU's structure, in turn would contain the VM sub structures.
|
|
|
When SMP==0, everything would have PSTRUCT passed. In SMP mode,
|
When SMP==0, everything would have PSTRUCT passed. In SMP mode,
|
however, there are two choices: PSTRUCT + CPU_NR or PROCESSOR. I
|
however, there are two choices: PSTRUCT + CPU_NR or PROCESSOR. I
|
suspect the latter is better.
|
suspect the latter is better.
|
|
|
It is believed that this would significantly improve performance (at
|
It is believed that this would significantly improve performance (at
|
the price of reduced control over object scope).
|
the price of reduced control over object scope).
|
|
|
|
|
|
|
|
|
IGEN:
|
IGEN:
|
|
|
Igen at present can't do the following:
|
Igen at present can't do the following:
|
|
|
o duplication is an all or nothing afair.
|
o duplication is an all or nothing afair.
|
|
|
It should be configurable according to
|
It should be configurable according to
|
the instruction or the sub-table.
|
the instruction or the sub-table.
|
|
|
|
|
o Due to the naming, only a single generated
|
o Due to the naming, only a single generated
|
simulator can be included in a program.
|
simulator can be included in a program.
|
|
|
IGEN should be able to generate multiple
|
IGEN should be able to generate multiple
|
engines that can all be included in a program
|
engines that can all be included in a program
|
|
|
o handle alternate architectures.
|
o handle alternate architectures.
|
|
|
|
|
o Igen should support the generation of a
|
o Igen should support the generation of a
|
disasembler and posibly an assembler.
|
disasembler and posibly an assembler.
|
|
|
I suggest that the table be extended to
|
I suggest that the table be extended to
|
include, for each instruction, additional
|
include, for each instruction, additional
|
lines describing the extual format of the
|
lines describing the extual format of the
|
instruction.
|
instruction.
|
|
|
One possible format is:
|
One possible format is:
|
|
|
"mtlr %RS":SPR.something
|
"mtlr %RS":SPR.something
|
"mtspr %SPR, %RS"
|
"mtspr %SPR, %RS"
|
|
|