ISACaller: fix syscall emulation
authorJacob Lifshay <programmerjake@gmail.com>
Fri, 1 Dec 2023 07:15:45 +0000 (23:15 -0800)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 22 Dec 2023 19:26:21 +0000 (19:26 +0000)
commitf519073fd4ba3177d2e7b300479eed58650f46bf
treedd3c414fc4929b5e7b2598b2d3c8381b1812f0c9
parentbef49613ef6eeff9596ced3f716aea43311711d3
ISACaller: fix syscall emulation

there were two bugs fixed:
1. sc emulation was missing a `return`, so it tried to run sc
   again after running sc and rfid, giving the wrong CIA and
   MSR values.
2. the code to replace and restore the instruction with rfid
   had the wrong endian on the load, so it was corrupting the
   instruction for the next time it was used. I just deleted
   the save/replace/restore code since it isn't needed anymore.

I then changed the syscall tests to ensure both the
bugs above don't happen again.
src/openpower/decoder/isa/caller.py
src/openpower/decoder/isa/test_syscall.py