Allow the formal engine to perform a same-cycle result in the ALU
[soc.git] / src / soc / decoder / power_regspec_map.py
index 65caf014946696c9c8c523a87c0d24ab300b42a7..0f5bce328248a18bd6f15b011f7f02d1e4d11ba2 100644 (file)
@@ -36,7 +36,7 @@ see https://libre-soc.org/3d_gpu/architecture/regfile/ section on regspecs
 """
 from nmigen import Const
 from soc.regfile.regfiles import XERRegs, FastRegs, StateRegs
-from soc.decoder.power_enums import CryIn
+from openpower.decoder.power_enums import CryIn
 
 
 def regspec_decode_read(e, regfile, name):
@@ -77,10 +77,10 @@ def regspec_decode_read(e, regfile, name):
         if name == 'xer_so':
             # SO needs to be read for overflow *and* for creation
             # of CR0 and also for MFSPR
-            return ((e.do.oe.oe[0] & e.do.oe.oe_ok) | (e.xer_in & SO == SO)|
+            return ((e.do.oe.oe[0] & e.do.oe.ok) | (e.xer_in & SO == SO)|
                      (e.do.rc.rc & e.do.rc.ok)), SO
         if name == 'xer_ov':
-            return ((e.do.oe.oe[0] & e.do.oe.oe_ok) |
+            return ((e.do.oe.oe[0] & e.do.oe.ok) |
                     (e.xer_in & CA == CA)), OV
         if name == 'xer_ca':
             return ((e.do.input_carry == CryIn.CA.value) |
@@ -91,7 +91,7 @@ def regspec_decode_read(e, regfile, name):
     if regfile == 'STATE':
         # STATE register numbering is *unary* encoded
         PC = 1<<StateRegs.PC
-        MSR = 1<<Stateegs.MSR
+        MSR = 1<<StateRegs.MSR
         if name in ['cia', 'nia']:
             return Const(1), PC # TODO: detect read-conditions
         if name == 'msr':