| 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" |