package decode_types is
type insn_type_t is (OP_ILLEGAL, OP_NOP, OP_ADD,
- OP_ADDPCIS, OP_AND, OP_ATTN, OP_B, OP_BC, OP_BCREG,
- OP_BPERM, OP_CMP, OP_CMPB, OP_CMPEQB, OP_CMPL, OP_CMPRB,
- OP_CNTZ, OP_CRAND,
- OP_CRANDC, OP_CREQV, OP_CRNAND, OP_CRNOR, OP_CROR, OP_CRORC,
- OP_CRXOR, OP_DARN, OP_DCBF, OP_DCBST, OP_DCBT, OP_DCBTST,
- OP_DCBZ, OP_DIV, OP_EXTS,
+ OP_AND, OP_ATTN, OP_B, OP_BC, OP_BCREG,
+ OP_BPERM, OP_CMP, OP_CMPB, OP_CMPEQB, OP_CMPRB,
+ OP_CNTZ, OP_CROP,
+ OP_DARN, OP_DCBF, OP_DCBST, OP_DCBT, OP_DCBTST,
+ OP_DCBZ, OP_DIV, OP_DIVE, OP_EXTS,
OP_EXTSWSLI, OP_ICBI, OP_ICBT, OP_ISEL, OP_ISYNC,
- OP_LOAD, OP_STORE, OP_MADDHD, OP_MADDHDU, OP_MADDLD, OP_MCRF,
- OP_MCRXR, OP_MCRXRX, OP_MFCR, OP_MFSPR, OP_MOD,
- OP_MTCRF, OP_MTSPR, OP_MUL_L64,
+ OP_LOAD, OP_STORE, OP_MADDHD, OP_MADDHDU, OP_MADDLD,
+ OP_MCRXR, OP_MCRXRX, OP_MFCR, OP_MFMSR, OP_MFSPR, OP_MOD,
+ OP_MTCRF, OP_MTMSRD, OP_MTSPR, OP_MUL_L64,
OP_MUL_H64, OP_MUL_H32, OP_OR,
- OP_POPCNTB, OP_POPCNTD, OP_POPCNTW, OP_PRTYD,
- OP_PRTYW, OP_RLC, OP_RLCL, OP_RLCR, OP_SETB,
+ OP_POPCNT, OP_PRTY, OP_RFID,
+ OP_RLC, OP_RLCL, OP_RLCR, OP_SC, OP_SETB,
OP_SHL, OP_SHR,
- OP_SYNC, OP_TD, OP_TDI, OP_TW,
- OP_TWI, OP_XOR, OP_SIM_CONFIG
+ OP_SYNC, OP_TLBIE, OP_TRAP,
+ OP_XOR,
+ OP_FETCH_FAILED
);
-
- type input_reg_a_t is (NONE, RA, RA_OR_ZERO, SPR);
- type input_reg_b_t is (NONE, RB, CONST_UI, CONST_SI, CONST_SI_HI, CONST_UI_HI, CONST_LI, CONST_BD, CONST_DS, CONST_M1, CONST_SH, CONST_SH32, SPR);
+ type input_reg_a_t is (NONE, RA, RA_OR_ZERO, SPR, CIA);
+ type input_reg_b_t is (NONE, RB, CONST_UI, CONST_SI, CONST_SI_HI, CONST_UI_HI, CONST_LI, CONST_BD,
+ CONST_DXHI4, CONST_DS, CONST_M1, CONST_SH, CONST_SH32, SPR);
type input_reg_c_t is (NONE, RS);
type output_reg_a_t is (NONE, RT, RA, SPR);
type rc_t is (NONE, ONE, RC);
constant TOO_OFFSET : integer := 0;
- type unit_t is (NONE, ALU, LDST, MUL, DIV);
+ type unit_t is (NONE, ALU, LDST);
type length_t is (NONE, is1B, is2B, is4B, is8B);
type decode_rom_t is record