// are reversed sometimes. Not sure of a fix to this though...
// Opcode fields
-def bitfield OPCODE <31:26>;
-def bitfield X_XO <10:0>;
-def bitfield XO_XO <10:1>;
+def bitfield PO <31:26>;
def bitfield A_XO <5:1>;
+def bitfield DS_XO <1:0>;
+def bitfield X_XO <10:1>;
+def bitfield XFL_XO <10:1>;
+def bitfield XFX_XO <10:1>;
+def bitfield XL_XO <10:1>;
+def bitfield XO_XO <9:1>;
// Register fields
def bitfield RA <20:16>;
// I've used the Power ISA Book I v2.06 for instruction formats,
// opcode numbers, register names, etc.
//
-decode OPCODE default Unknown::unknown() {
+decode PO default Unknown::unknown() {
18: decode AA {
Trace::InstRecord *traceData) const
{
panic("attempt to execute unimplemented instruction '%s' "
- "(inst 0x%08x, opcode 0x%x, binary:%s)", mnemonic, machInst, OPCODE,
+ "(inst 0x%08x, opcode 0x%x, binary:%s)", mnemonic, machInst, PO,
inst2string(machInst));
return std::make_shared<UnimplementedOpcodeFault>();
}
Addr pc, const Loader::SymbolTable *symtab) const
{
return csprintf("%-10s (inst 0x%x, opcode 0x%x, binary:%s)",
- "unknown", machInst, OPCODE, inst2string(machInst));
+ "unknown", machInst, PO, inst2string(machInst));
}
}};
{
panic("attempt to execute unknown instruction at %#x"
"(inst 0x%08x, opcode 0x%x, binary: %s)",
- xc->pcState().pc(), machInst, OPCODE, inst2string(machInst));
+ xc->pcState().pc(), machInst, PO, inst2string(machInst));
return std::make_shared<UnimplementedOpcodeFault>();
}
}};