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