Fix missing NIA update on ISACaller
authorCesar Strauss <cestrauss@gmail.com>
Sun, 7 Mar 2021 20:55:39 +0000 (17:55 -0300)
committerCesar Strauss <cestrauss@gmail.com>
Sun, 7 Mar 2021 22:16:42 +0000 (19:16 -0300)
The effect of this bug was mostly hidden because NIA is later updated at
the end of the SV Loop, in call(). However, in a VL==0 loop, the effect
is apparent, as PC is incremented by 4 instead of 8.

src/soc/decoder/isa/caller.py

index 00f5c8ebd71b161307d3e88c1a2286a43011465b..849879b3d3e11faeefe1c3a35a884b87d33826e1 100644 (file)
@@ -1130,6 +1130,7 @@ class ISACaller:
                               pfx.insn[7].value == 0b1 and
                               pfx.insn[9].value == 0b1)
         self.pc.update_nia(self.is_svp64_mode)
+        self.namespace['NIA'] = self.pc.NIA
         if not self.is_svp64_mode:
             return