1.4 KiB
Known differences between SimH, 11/70, and w11a
SimH: MMR1 recording has J11 behavior
The register MMR1 records register modifications and can be used in the event
of an MMU abort to rollback the register state and re-execute the instruction.
Explicit PC modifications from addressing mode 2 or 3 accesses can be
recorded, but are ignored in MMU abort handling because the PC roll back
is done with MMR2. Implicit PC modifications from instruction fetch or
index word reads are never recorded in MMR1.
Essential is, that the content of MMR1 reflects the register modifications
at the time of the instruction abort.
The 11/70 and the J11 MMR1 recording behavior differs in several respects:
- for instructions with implicit stack pops (
RTS,MTPI,MTPD) the 11/70 updates theSPand records this inMMR1before accessing the stack value and detecting an MMU abort. The J11 incrementsSPafter the stack access. - the 11/70 records
PCchanges from immediate value are absolute addressing modes. The J11, with a much more sophisticated instruction stream prefetch, doesn't.
SimH uses the J11 MMR1 behavior for all models.
w11 implements the 11/70 behavior. This is verified in a tcode, the tests are skipped when executed on SimH (see cpu_mmu.mac test C1.1 and C2.3).
Tested with SimH V3.12-3.