Permalink
Browse files

Import the psim-970703 (PowerPC Simulator) snapshot.

  • Loading branch information...
1 parent f7ac35f commit 2cb863757f2ed866c6acc35f3e88df696feb924b thorpej committed Feb 1, 1998
Showing with 35,932 additions and 11,711 deletions.
  1. +111 −22 gnu/dist/sim/ppc/BUGS
  2. +4 −3 gnu/dist/sim/ppc/COPYING
  3. +2,391 −1,638 gnu/dist/sim/ppc/ChangeLog
  4. +2,168 −0 gnu/dist/sim/ppc/ChangeLog.00
  5. +286 −67 gnu/dist/sim/ppc/Makefile.in
  6. +1 −1 gnu/dist/sim/ppc/README
  7. +37 −4 gnu/dist/sim/ppc/basics.h
  8. +20 −1 gnu/dist/sim/ppc/bits.c
  9. +6 −3 gnu/dist/sim/ppc/bits.h
  10. +59 −19 gnu/dist/sim/ppc/cap.c
  11. +13 −3 gnu/dist/sim/ppc/cap.h
  12. +208 −4 gnu/dist/sim/ppc/config.in
  13. +1,964 −611 gnu/dist/sim/ppc/configure
  14. +527 −217 gnu/dist/sim/ppc/configure.in
  15. +2 −2 gnu/dist/sim/ppc/corefile-n.h
  16. +95 −198 gnu/dist/sim/ppc/corefile.c
  17. +115 −39 gnu/dist/sim/ppc/corefile.h
  18. +102 −80 gnu/dist/sim/ppc/cpu.c
  19. +51 −40 gnu/dist/sim/ppc/cpu.h
  20. +58 −0 gnu/dist/sim/ppc/dc-complex
  21. +25 −0 gnu/dist/sim/ppc/dc-simple
  22. +58 −0 gnu/dist/sim/ppc/dc-stupid
  23. +24 −0 gnu/dist/sim/ppc/dc-test.01
  24. +24 −0 gnu/dist/sim/ppc/dc-test.02
  25. +24 −10 gnu/dist/sim/ppc/debug.c
  26. +80 −31 gnu/dist/sim/ppc/debug.h
  27. +1,370 −1,041 gnu/dist/sim/ppc/device.c
  28. +525 −435 gnu/dist/sim/ppc/device.h
  29. +157 −2,090 gnu/dist/sim/ppc/device_table.c
  30. +137 −66 gnu/dist/sim/ppc/device_table.h
  31. +21 −18 gnu/dist/sim/ppc/dgen.c
  32. +237 −103 gnu/dist/sim/ppc/emul_bugapi.c
  33. +766 −341 gnu/dist/sim/ppc/emul_chirp.c
  34. +1 −1 gnu/dist/sim/ppc/emul_chirp.h
  35. +98 −49 gnu/dist/sim/ppc/emul_generic.c
  36. +8 −0 gnu/dist/sim/ppc/emul_generic.h
  37. +161 −97 gnu/dist/sim/ppc/emul_netbsd.c
  38. +2,809 −0 gnu/dist/sim/ppc/emul_unix.c
  39. +28 −0 gnu/dist/sim/ppc/emul_unix.h
  40. +167 −72 gnu/dist/sim/ppc/events.c
  41. +3 −5 gnu/dist/sim/ppc/events.h
  42. +150 −0 gnu/dist/sim/ppc/filter.c
  43. +43 −0 gnu/dist/sim/ppc/filter.h
  44. +4 −4 gnu/dist/sim/ppc/filter_filename.c
  45. +2 −2 gnu/dist/sim/ppc/filter_filename.h
  46. +675 −0 gnu/dist/sim/ppc/gen-icache.c
  47. +68 −0 gnu/dist/sim/ppc/gen-icache.h
  48. +1,545 −0 gnu/dist/sim/ppc/gen-idecode.c
  49. +40 −0 gnu/dist/sim/ppc/gen-idecode.h
  50. +122 −0 gnu/dist/sim/ppc/gen-itable.c
  51. +28 −0 gnu/dist/sim/ppc/gen-itable.h
  52. +393 −0 gnu/dist/sim/ppc/gen-model.c
  53. +30 −0 gnu/dist/sim/ppc/gen-model.h
  54. +250 −0 gnu/dist/sim/ppc/gen-semantics.c
  55. +81 −0 gnu/dist/sim/ppc/gen-semantics.h
  56. +132 −0 gnu/dist/sim/ppc/gen-support.c
  57. +29 −0 gnu/dist/sim/ppc/gen-support.h
  58. +559 −0 gnu/dist/sim/ppc/hw_com.c
  59. +143 −0 gnu/dist/sim/ppc/hw_core.c
  60. +167 −0 gnu/dist/sim/ppc/hw_cpu.c
  61. +34 −0 gnu/dist/sim/ppc/hw_cpu.h
  62. +557 −0 gnu/dist/sim/ppc/hw_disk.c
  63. +839 −0 gnu/dist/sim/ppc/hw_eeprom.c
  64. +371 −0 gnu/dist/sim/ppc/hw_glue.c
  65. +683 −0 gnu/dist/sim/ppc/hw_htab.c
  66. +869 −0 gnu/dist/sim/ppc/hw_ide.c
  67. +721 −0 gnu/dist/sim/ppc/hw_init.c
  68. +100 −0 gnu/dist/sim/ppc/hw_iobus.c
  69. +538 −0 gnu/dist/sim/ppc/hw_memory.c
  70. +261 −0 gnu/dist/sim/ppc/hw_nvram.c
  71. +1,827 −0 gnu/dist/sim/ppc/hw_opic.c
  72. +366 −0 gnu/dist/sim/ppc/hw_pal.c
  73. +1,068 −0 gnu/dist/sim/ppc/hw_phb.c
  74. +40 −0 gnu/dist/sim/ppc/hw_phb.h
  75. +131 −0 gnu/dist/sim/ppc/hw_register.c
  76. +103 −0 gnu/dist/sim/ppc/hw_trace.c
  77. +275 −0 gnu/dist/sim/ppc/hw_vm.c
  78. +37 −26 gnu/dist/sim/ppc/idecode_expression.h
  79. +3 −0 gnu/dist/sim/ppc/idecode_fields.h
  80. +342 −3,318 gnu/dist/sim/ppc/igen.c
  81. +199 −0 gnu/dist/sim/ppc/igen.h
  82. +4 −0 gnu/dist/sim/ppc/inline.c
  83. +68 −24 gnu/dist/sim/ppc/inline.h
  84. +164 −50 gnu/dist/sim/ppc/interrupts.c
  85. +34 −9 gnu/dist/sim/ppc/interrupts.h
  86. +115 −0 gnu/dist/sim/ppc/ld-cache.c
  87. +81 −0 gnu/dist/sim/ppc/ld-cache.h
  88. +155 −0 gnu/dist/sim/ppc/ld-decode.c
  89. +143 −0 gnu/dist/sim/ppc/ld-decode.h
  90. +925 −0 gnu/dist/sim/ppc/ld-insn.c
  91. +281 −0 gnu/dist/sim/ppc/ld-insn.h
  92. +178 −57 gnu/dist/sim/ppc/lf.c
  93. +58 −26 gnu/dist/sim/ppc/lf.h
  94. +185 −13 gnu/dist/sim/ppc/main.c
  95. +119 −22 gnu/dist/sim/ppc/misc.c
  96. +42 −4 gnu/dist/sim/ppc/misc.h
  97. +36 −0 gnu/dist/sim/ppc/mkinstalldirs
  98. +101 −26 gnu/dist/sim/ppc/mon.c
  99. +5 −0 gnu/dist/sim/ppc/mon.h
  100. +76 −0 gnu/dist/sim/ppc/options.c
  101. +5 −2 gnu/dist/sim/ppc/os_emul.c
  102. +401 −0 gnu/dist/sim/ppc/pk_disklabel.c
  103. +46 −81 gnu/dist/sim/ppc/ppc-cache-rules
  104. +480 −276 gnu/dist/sim/ppc/ppc-instructions
  105. +351 −336 gnu/dist/sim/ppc/psim.c
  106. +32 −10 gnu/dist/sim/ppc/psim.h
  107. +1,105 −0 gnu/dist/sim/ppc/psim.texinfo
  108. +15 −0 gnu/dist/sim/ppc/registers.c
  109. +7 −1 gnu/dist/sim/ppc/registers.h
  110. +31 −0 gnu/dist/sim/ppc/sim-endian-n.h
  111. +132 −9 gnu/dist/sim/ppc/sim-endian.h
  112. +69 −4 gnu/dist/sim/ppc/sim_callbacks.h
  113. +123 −24 gnu/dist/sim/ppc/sim_calls.c
  114. +95 −23 gnu/dist/sim/ppc/std-config.h
  115. +4 −4 gnu/dist/sim/ppc/table.c
  116. +2 −2 gnu/dist/sim/ppc/table.h
  117. +1,256 −0 gnu/dist/sim/ppc/tree.c
  118. +139 −0 gnu/dist/sim/ppc/tree.h
  119. +69 −33 gnu/dist/sim/ppc/vm.c
  120. +14 −5 gnu/dist/sim/ppc/vm.h
  121. +13 −9 gnu/dist/sim/ppc/vm_n.h
  122. +7 −0 gnu/dist/sim/ppc/words.h
View
@@ -1,34 +1,123 @@
- See the ChangeLog file looking for lines taged with the word FIXME.
+ChangeLog
- 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.
+See the ChangeLog file looking for lines taged with the word FIXME.
- HTAB (page) code for OEA model untested. Some of the vm code
- instructions unimplemented.
- Lacks PowerOpen (a.k.a. XCOFF a.k.a. AIX) and NT startups. The
- PowerOpen worked until I added the ELF one.
+COREFILE.C:
- Missing VEA system calls.
+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.
- Missing or commented out instructions.
- 64bit target untested.
+VEA:
- 64bit host broken. For instance use of scanf "%x", &long long.
+Missing VEA system calls.
- Event code for pending events from within signal handlers not
- finished/tested.
+ppc-instructions:
- Better and more devices.
+Missing or commented out instructions.
- 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.
+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"
View
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -279,7 +279,7 @@ POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
- Appendix: How to Apply These Terms to Your New Programs
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -305,7 +305,8 @@ the "copyright" line and a pointer to where the full notice is found.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
Also add information on how to contact you by electronic and paper mail.
Oops, something went wrong.

0 comments on commit 2cb8637

Please sign in to comment.