from soc.decoder.power_fields import DecodeFields
from soc.decoder.power_fieldsn import SigDecode, SignalBitRange
+
Subdecoder = namedtuple("Subdecoder", ["pattern", "opcodes", "opint",
"bitsel", "suffix", "subdecoders"])
comb = m.d.comb
# note: default opcode is "illegal" as this is a combinatorial block
+ # this only works because OP_ILLEGAL=0 and the default (unset) is 0
# go through the list of CSV decoders first
for d in self.dec:
Z23 = 28
-
+# Internal Operation numbering. Add new opcodes here (FPADD, FPMUL etc.)
@unique
class InternalOp(Enum):
- OP_ILLEGAL = 0
+ OP_ILLEGAL = 0 # important that this is zero (see power_decoder.py)
OP_NOP = 1
OP_ADD = 2
OP_ADDPCIS = 3
ONE = 1
CA = 2
+
+# SPRs - Special-Purpose Registers. See V3.0B Figure 18 p971
+
@unique
class SPR(Enum):
XER = 1