fix ISACaller BA/BB vector read
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 14 Jan 2024 19:24:22 +0000 (19:24 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Tue, 30 Jan 2024 20:56:36 +0000 (20:56 +0000)
src/openpower/decoder/isa/caller.py

index 8e828d07d6fbcfb4a6bdbb6ed9d9f6729b9bde02..bd106897a5b76f7ffdc6beb27be4889ffdee88f9 100644 (file)
@@ -555,8 +555,9 @@ def get_cr_in(dec2, name):
     sv_override = yield dec2.dec_cr_in.sv_override
     # get the IN1/2/3 from the decoder (includes SVP64 remap and isvec)
     in1 = yield dec2.e.read_cr1.data
+    in2 = yield dec2.e.read_cr2.data
     cr_isvec = yield dec2.cr_in_isvec
-    log("get_cr_in", in_sel, CROutSel.CR0.value, in1, cr_isvec)
+    log("get_cr_in", name, in_sel, CROutSel.CR0.value, in1, in2, cr_isvec)
     log("    sv_cr_in", sv_cr_in)
     log("    cr_bf", in_bitfield)
     log("    spec", spec)
@@ -565,9 +566,12 @@ def get_cr_in(dec2, name):
     if name == 'BI':
         if in_sel == CRInSel.BI.value:
             return in1, cr_isvec
-    if name in ['BA', 'BB']:
+    if name == 'BA':
         if in_sel == CRInSel.BA_BB.value:
             return in1, cr_isvec
+    if name == 'BB':
+        if in_sel == CRInSel.BA_BB.value:
+            return in2, cr_isvec
     if name == 'BFA':
         if in_sel == CRInSel.BFA.value:
             return in1, cr_isvec