1 from openpower
.decoder
.power_enums
import XER_bits
5 def __init__(self
, sim
):
13 simregval
= self
.sim
.gpr
[i
].asint()
14 self
.intregs
.append(simregval
)
15 print("class sim int regs", list(map(hex, self
.intregs
)))
22 cri
= self
.sim
.crl
[7 - i
].get_range().value
23 self
.crregs
.append(cri
)
24 print("class sim cr regs", list(map(hex, self
.crregs
)))
30 self
.so
= self
.sim
.spr
['XER'][XER_bits
['SO']].value
31 self
.ov
= self
.sim
.spr
['XER'][XER_bits
['OV']].value
32 self
.ov32
= self
.sim
.spr
['XER'][XER_bits
['OV32']].value
33 self
.ca
= self
.sim
.spr
['XER'][XER_bits
['CA']].value
34 self
.ca32
= self
.sim
.spr
['XER'][XER_bits
['CA32']].value
35 self
.ov
= self
.ov |
(self
.ov32
<< 1)
36 self
.ca
= self
.ca |
(self
.ca32
<< 1)
37 self
.xregs
.extend((self
.so
, self
.ov
, self
.ca
))
38 print("class sim xregs", list(map(hex, self
.xregs
)))
44 self
.pc
= self
.sim
.pc
.CIA
.value
45 self
.pcl
.append(self
.pc
)
46 print("class sim pc", hex(self
.pc
))
50 def __init__(self
, core
):
53 def get_intregs(self
):
56 if self
.core
.regs
.int.unary
:
57 rval
= yield self
.core
.regs
.int.regs
[i
].reg
59 rval
= yield self
.core
.regs
.int.memory
._array
[i
]
60 self
.intregs
.append(rval
)
61 print("class hdl int regs", list(map(hex, self
.intregs
)))
66 rval
= yield self
.core
.regs
.cr
.regs
[i
].reg
67 self
.crregs
.append(rval
)
68 print("class hdl cr regs", list(map(hex, self
.crregs
)))
72 self
.xr
= self
.core
.regs
.xer
73 self
.so
= yield self
.xr
.regs
[self
.xr
.SO
].reg
74 self
.ov
= yield self
.xr
.regs
[self
.xr
.OV
].reg
75 self
.ca
= yield self
.xr
.regs
[self
.xr
.CA
].reg
76 self
.xregs
.extend((self
.so
, self
.ov
, self
.ca
))
77 print("class hdl xregs", list(map(hex, self
.xregs
)))
81 self
.state
= self
.core
.regs
.state
82 self
.pc
= yield self
.state
.r_ports
['cia'].o_data
83 self
.pcl
.append(self
.pc
)
84 print("class hdl pc", hex(self
.pc
))