save SVSRR0 in trap, if SVP64 mode enabled
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 10 May 2021 15:24:57 +0000 (16:24 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 10 May 2021 15:24:57 +0000 (16:24 +0100)
src/openpower/decoder/isa/caller.py

index 42042c9dd79f445d37a755c5806d63978e5dd546..3526643e61d1a25c9320922ea31acf337bfcf051 100644 (file)
@@ -563,8 +563,11 @@ class ISACaller:
         print("TRAP:", hex(trap_addr), hex(self.namespace['MSR'].value))
         # store CIA(+4?) in SRR0, set NIA to 0x700
         # store MSR in SRR1, set MSR to um errr something, have to check spec
+        # store SVSTATE (if enabled) in SVSRR0
         self.spr['SRR0'].value = self.pc.CIA.value
         self.spr['SRR1'].value = self.namespace['MSR'].value
+        if self.is_svp64_mode:
+            self.spr['SVSRR0'] = self.namespace['SVSTATE'].value
         self.trap_nia = SelectableInt(trap_addr, 64)
         self.spr['SRR1'][trap_bit] = 1  # change *copy* of MSR in SRR1