mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-20 00:52:33 +00:00
56 lines
2.5 KiB
Odin
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,
|
|
}
|