Files
Odin/core/rexcode/ppc_vle/mnemonics.odin
2026-06-14 16:30:18 +01:00

56 lines
2.5 KiB
Odin

package rexcode_ppc_vle
// =============================================================================
// PowerPC VLE Mnemonics
// =============================================================================
//
// 222 entries from binutils PPCVLE — 40 16-bit (se_*) + 178 32-bit (e_*).
// Used in embedded PowerPC e200 cores (automotive ECUs, STM SPC58x).
// LLVM 22 has no VLE support; all entries are documented expected_unknown.
Mnemonic :: enum u16 {
INVALID = 0,
// ---- 16-bit short (se_*) ----
SE_ILLEGAL, SE_ISYNC, SE_SC, SE_BLR, SE_BLRL, SE_BCTR,
SE_BCTRL, SE_RFI, SE_RFCI, SE_RFDI, SE_RFMCI, SE_RFGI,
SE_NOT, SE_NEG, SE_MFLR, SE_MTLR, SE_MFCTR, SE_MTCTR,
SE_EXTZB, SE_EXTSB, SE_EXTZH, SE_EXTSH, SE_MR, SE_MTAR,
SE_MFAR, SE_ADD, SE_MULLW, SE_SUB, SE_SUBF, SE_CMP,
SE_CMPL, SE_CMPH, SE_CMPHL, SE_SRW, SE_SRAW, SE_SLW,
SE_OR, SE_ANDC, SE_AND, SE_AND_DOT, SE_ADDI, SE_CMPLI,
SE_SUBI, SE_SUBI_DOT, SE_CMPI, SE_BMASKI, SE_ANDI, SE_NOP,
SE_LI, SE_BCLRI, SE_BGENI, SE_BSETI, SE_BTSTI, SE_SRWI,
SE_SRAWI, SE_SLWI, SE_LBZ, SE_STB, SE_LHZ, SE_STH,
SE_LWZ, SE_STW, SE_BGE, SE_BNL, SE_BLE, SE_BNG,
SE_BNE, SE_BNS, SE_BNU, SE_BF, SE_BLT, SE_BGT,
SE_BEQ, SE_BSO, SE_BUN, SE_BT, SE_BC, SE_B,
SE_BL,
// ---- 32-bit (e_*) ----
E_LBZU, E_LHAU, E_LHZU, E_LMW, E_LWZU, E_STBU,
E_STHU, E_STWU, E_STMW, E_LMVGPRW, E_LDMVGPRW, E_STMVGPRW,
E_LMVSPRW, E_LDMVSPRW, E_STMVSPRW, E_LMVSRRW, E_LDMVSRRW, E_STMVSRRW,
E_LMVCSRRW, E_LDMVCSRRW, E_STMVCSRRW, E_LMVDSRRW, E_LDMVDSRRW, E_STMVDSRRW,
E_LMVMCSRRW, E_STMVMCSRRW, E_ADD16I, E_LA, E_SUB16I, E_LBZ,
E_STB, E_LHA, E_LWZ, E_STW, E_LHZ, E_STH,
E_RLWIMI, E_INSLWI, E_INSRWI, E_ROTLWI, E_ROTRWI, E_CLRLWI,
E_CLRRWI, E_RLWINM, E_EXTLWI, E_EXTRWI, E_CLRLSLWI, E_CMPH,
E_SC, E_CMPHL, E_CRANDC, E_CRNAND, E_CRNOT, E_CRNOR,
E_CRCLR, E_CRXOR, E_MCRF, E_SLWI, E_SLWI_DOT, E_CRAND,
E_RLW, E_RLW_DOT, E_CRSET, E_CREQV, E_RLWI, E_RLWI_DOT,
E_CRORC, E_CRMOVE, E_CROR, E_SRWI, E_SRWI_DOT, E_BDNZ,
E_BDNZL, E_BDZ, E_BDZL, E_CMPI, E_CMPWI, E_CMPLI,
E_CMPLWI, E_ADDI, E_SUBI, E_ADDI_DOT, E_ADDIC, E_SUBIC,
E_ADDIC_DOT, E_SUBIC_DOT, E_MULLI, E_SUBFIC, E_SUBFIC_DOT, E_ANDI,
E_ANDI_DOT, E_NOP, E_ORI, E_ORI_DOT, E_XORI, E_XORI_DOT,
E_LIS, E_AND2IS_DOT, E_OR2IS, E_AND2I_DOT, E_OR2I, E_CMPHL16I,
E_CMPH16I, E_CMPL16I, E_MULL2I, E_CMP16I, E_SUB2IS, E_ADD2IS,
E_SUB2I_DOT, E_ADD2I_DOT, E_LI, E_B, E_BL, E_BGE,
E_BGEL, E_BNL, E_BNLL, E_BLT, E_BLTL, E_BGT,
E_BGTL, E_BLE, E_BLEL, E_BNG, E_BNGL, E_BNE,
E_BNEL, E_BEQ, E_BEQL, E_BSO, E_BSOL, E_BUN,
E_BUNL, E_BNS, E_BNSL, E_BNU, E_BNUL, E_BC,
E_BCL, E_BF, E_BFL, E_BT, E_BTL,
}