SPRfull, SPRreduced, LDSTMode)
from openpower.consts import TT
from openpower.exceptions import LDSTException
+from openpower.decoder.power_svp64_rm import sv_input_record_layout
+from openpower.decoder.power_enums import asmlen
+
+from openpower.util import log
class Data(Record):
def __init__(self, name=None):
- RecordObject.__init__(self, name=name)
+ RecordObject.__init__(self, layout=sv_input_record_layout,
+ name=name)
# current "state" (TODO: this in its own Record)
self.msr = Signal(64, reset_less=True)
self.cia = Signal(64, reset_less=True)
- self.svstate = Signal(32, reset_less=True)
+ self.svstate = Signal(64, reset_less=True)
# instruction, type and decoded information
self.insn = Signal(32, reset_less=True) # original instruction
self.rc = Data(1, "rc")
self.oe = Data(1, "oe")
self.input_carry = Signal(CryIn, reset_less=True)
+ self.output_carry = Signal(reset_less=True)
self.traptype = Signal(TT.size, reset_less=True) # trap main_stage.py
self.ldst_exc = LDSTException("exc")
self.trapaddr = Signal(13, reset_less=True)
RecordObject.__init__(self, name=name)
if asmcode:
- self.asmcode = Signal(8, reset_less=True) # only for simulator
+ self.asmcode = Signal(asmlen, reset_less=True) # only for simulator
self.write_reg = Data(7, name="rego")
self.write_ea = Data(7, name="ea") # for LD/ST in update mode
self.read_reg1 = Data(7, name="reg1")
self.read_cr1 = Data(7, name="cr_in1")
self.read_cr2 = Data(7, name="cr_in2")
- self.read_cr3 = Data(7, name="cr_in2")
+ self.read_cr3 = Data(7, name="cr_in3")
self.write_cr = Data(7, name="cr_out")
# decode operand data
- print ("decode2execute init", name, opkls, do)
+ log ("decode2execute init", name, opkls, do)
#assert name is not None, str(opkls)
if do is not None:
self.do = do