cr3_sel = yield dec2.e.read_cr3.data
res['cr_c'] = sim.crl[cr3_sel].get_range().value
- # RA
+ # RA/RC
reg1_ok = yield dec2.e.read_reg1.ok
if reg1_ok:
data1 = yield dec2.e.read_reg1.data
- res['a'] = sim.gpr(data1).value
+ res['ra'] = sim.gpr(data1).value
# RB (or immediate)
reg2_ok = yield dec2.e.read_reg2.ok
if reg2_ok:
data2 = yield dec2.e.read_reg2.data
- res['b'] = sim.gpr(data2).value
+ res['rb'] = sim.gpr(data2).value
+ print ("get inputs", res)
return res
def check_cu_outputs(self, res, dec2, sim, code):
"""naming (res) must conform to CRFunctionUnit output regspec
"""
- print ("check extra output", repr(code))
+ print ("check extra output", repr(code), res)
# full CR
whole_reg = yield dec2.e.write_cr_whole
if whole_reg:
full_cr = res['full_cr']
expected_cr = sim.cr.get_range().value
+ print(f"expected cr {expected_cr:x}, actual: {full_cr:x}")
self.assertEqual(expected_cr, full_cr, code)
# part-CR
if cr_en:
cr_sel = yield dec2.e.write_cr.data
expected_cr = sim.crl[cr_sel].get_range().value
- real_cr = res['cr']
+ real_cr = res['cr_a']
self.assertEqual(expected_cr, real_cr, code)
# RT