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>
Thu, 7 Dec 2023 17:51:22 +0000 (17:51 +0000)
commitfb4413e090bfa7da1ce9f4eb16d3b74b140c055a
treeac3a56be2b2e933bd81cb3f0664a31e804cf5b64
parent0935c4136f3744516fc95f66bc9c78dd3eb9a5ce
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