#![allow(non_camel_case_types)]
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Debug, Hash)]
pub enum Mnemonic {
Invalid,
ADC,
ADCS,
ADD,
ADDS,
ADDW,
ADR,
AND,
ANDS,
ASR,
ASRS,
B,
BFC,
BFI,
BIC,
BICS,
BKPT,
BL,
BLX,
BX,
BXJ,
CBNZ,
CBZ,
CLRBHB,
CLREX,
CLZ,
CMN,
CMP,
CPS,
CPSID,
CPSIE,
CRC32B,
CRC32CB,
CRC32CH,
CRC32CW,
CRC32H,
CRC32W,
CSDB,
DBG,
DCPS1,
DCPS2,
DCPS3,
DMB,
DSB,
EOR,
EORS,
ERET,
ESB,
HLT,
HVC,
ISB,
IT,
LDA,
LDAB,
LDAEX,
LDAEXB,
LDAEXD,
LDAEXH,
LDAH,
LDC,
LDM,
LDMDB,
LDMEA,
LDMFD,
LDR,
LDRB,
LDRBT,
LDRD,
LDREX,
LDREXB,
LDREXD,
LDREXH,
LDRH,
LDRHT,
LDRSB,
LDRSBT,
LDRSH,
LDRSHT,
LDRT,
LSL,
LSLS,
LSR,
LSRS,
MCR,
MCRR,
MLA,
MLS,
MOV,
MOVS,
MOVT,
MOVW,
MRC,
MRRC,
MRS,
MSR,
MUL,
MULS,
MVN,
MVNS,
NOP,
ORN,
ORNS,
ORR,
ORRS,
PKHBT,
PKHTB,
PLD,
PLDW,
PLI,
POP,
PSSBB,
PUSH,
QADD,
QADD16,
QADD8,
QASX,
QDADD,
QDSUB,
QSAX,
QSUB,
QSUB16,
QSUB8,
RBIT,
REV,
REV16,
REVSH,
RFE,
RFEDB,
RFEFA,
RFEFD,
ROR,
RORS,
RRX,
RRXS,
RSB,
RSBS,
SADD16,
SADD8,
SASX,
SB,
SBC,
SBCS,
SBFX,
SDIV,
SEL,
SETEND,
SETPAN,
SEV,
SEVL,
SHADD16,
SHADD8,
SHASX,
SHSAX,
SHSUB16,
SHSUB8,
SMC,
SMLABB,
SMLABT,
SMLAD,
SMLADX,
SMLAL,
SMLALBB,
SMLALBT,
SMLALD,
SMLALDX,
SMLALTB,
SMLALTT,
SMLATB,
SMLATT,
SMLAWB,
SMLAWT,
SMLSD,
SMLSDX,
SMLSLD,
SMLSLDX,
SMMLA,
SMMLAR,
SMMLS,
SMMLSR,
SMMUL,
SMMULR,
SMUAD,
SMUADX,
SMULBB,
SMULBT,
SMULL,
SMULTB,
SMULTT,
SMULWB,
SMULWT,
SMUSD,
SMUSDX,
SRS,
SRSDB,
SSAT,
SSAT16,
SSAX,
SSBB,
SSUB16,
SSUB8,
STC,
STL,
STLB,
STLEX,
STLEXB,
STLEXD,
STLEXH,
STLH,
STM,
STMDB,
STMEA,
STMFD,
STR,
STRB,
STRBT,
STRD,
STREX,
STREXB,
STREXD,
STREXH,
STRH,
STRHT,
STRT,
SUB,
SUBS,
SUBW,
SVC,
SXTAB,
SXTAB16,
SXTAH,
SXTB,
SXTB16,
SXTH,
TBB,
TBH,
TEQ,
TSB,
TST,
UADD16,
UADD8,
UASX,
UBFX,
UDF,
UDIV,
UHADD16,
UHADD8,
UHASX,
UHSAX,
UHSUB16,
UHSUB8,
UMAAL,
UMLAL,
UMULL,
UQADD16,
UQADD8,
UQASX,
UQSAX,
UQSUB16,
UQSUB8,
USAD8,
USADA8,
USAT,
USAT16,
USAX,
USUB16,
USUB8,
UXTAB,
UXTAB16,
UXTAH,
UXTB,
UXTB16,
UXTH,
WFE,
WFI,
YIELD,
}
impl Mnemonic {
pub fn as_str(&self) -> &str {
match self {
Self::Invalid => "INVALID",
Self::ADC => "adc",
Self::ADCS => "adcs",
Self::ADD => "add",
Self::ADDS => "adds",
Self::ADDW => "addw",
Self::ADR => "adr",
Self::AND => "and",
Self::ANDS => "ands",
Self::ASR => "asr",
Self::ASRS => "asrs",
Self::B => "b",
Self::BFC => "bfc",
Self::BFI => "bfi",
Self::BIC => "bic",
Self::BICS => "bics",
Self::BKPT => "bkpt",
Self::BL => "bl",
Self::BLX => "blx",
Self::BX => "bx",
Self::BXJ => "bxj",
Self::CBNZ => "cbnz",
Self::CBZ => "cbz",
Self::CLRBHB => "clrbhb",
Self::CLREX => "clrex",
Self::CLZ => "clz",
Self::CMN => "cmn",
Self::CMP => "cmp",
Self::CPS => "cps",
Self::CPSID => "cpsid",
Self::CPSIE => "cpsie",
Self::CRC32B => "crc32b",
Self::CRC32CB => "crc32cb",
Self::CRC32CH => "crc32ch",
Self::CRC32CW => "crc32cw",
Self::CRC32H => "crc32h",
Self::CRC32W => "crc32w",
Self::CSDB => "csdb",
Self::DBG => "dbg",
Self::DCPS1 => "dcps1",
Self::DCPS2 => "dcps2",
Self::DCPS3 => "dcps3",
Self::DMB => "dmb",
Self::DSB => "dsb",
Self::EOR => "eor",
Self::EORS => "eors",
Self::ERET => "eret",
Self::ESB => "esb",
Self::HLT => "hlt",
Self::HVC => "hvc",
Self::ISB => "isb",
Self::IT => "it",
Self::LDA => "lda",
Self::LDAB => "ldab",
Self::LDAEX => "ldaex",
Self::LDAEXB => "ldaexb",
Self::LDAEXD => "ldaexd",
Self::LDAEXH => "ldaexh",
Self::LDAH => "ldah",
Self::LDC => "ldc",
Self::LDM => "ldm",
Self::LDMDB => "ldmdb",
Self::LDMEA => "ldmea",
Self::LDMFD => "ldmfd",
Self::LDR => "ldr",
Self::LDRB => "ldrb",
Self::LDRBT => "ldrbt",
Self::LDRD => "ldrd",
Self::LDREX => "ldrex",
Self::LDREXB => "ldrexb",
Self::LDREXD => "ldrexd",
Self::LDREXH => "ldrexh",
Self::LDRH => "ldrh",
Self::LDRHT => "ldrht",
Self::LDRSB => "ldrsb",
Self::LDRSBT => "ldrsbt",
Self::LDRSH => "ldrsh",
Self::LDRSHT => "ldrsht",
Self::LDRT => "ldrt",
Self::LSL => "lsl",
Self::LSLS => "lsls",
Self::LSR => "lsr",
Self::LSRS => "lsrs",
Self::MCR => "mcr",
Self::MCRR => "mcrr",
Self::MLA => "mla",
Self::MLS => "mls",
Self::MOV => "mov",
Self::MOVS => "movs",
Self::MOVT => "movt",
Self::MOVW => "movw",
Self::MRC => "mrc",
Self::MRRC => "mrrc",
Self::MRS => "mrs",
Self::MSR => "msr",
Self::MUL => "mul",
Self::MULS => "muls",
Self::MVN => "mvn",
Self::MVNS => "mvns",
Self::NOP => "nop",
Self::ORN => "orn",
Self::ORNS => "orns",
Self::ORR => "orr",
Self::ORRS => "orrs",
Self::PKHBT => "pkhbt",
Self::PKHTB => "pkhtb",
Self::PLD => "pld",
Self::PLDW => "pldw",
Self::PLI => "pli",
Self::POP => "pop",
Self::PSSBB => "pssbb",
Self::PUSH => "push",
Self::QADD => "qadd",
Self::QADD16 => "qadd16",
Self::QADD8 => "qadd8",
Self::QASX => "qasx",
Self::QDADD => "qdadd",
Self::QDSUB => "qdsub",
Self::QSAX => "qsax",
Self::QSUB => "qsub",
Self::QSUB16 => "qsub16",
Self::QSUB8 => "qsub8",
Self::RBIT => "rbit",
Self::REV => "rev",
Self::REV16 => "rev16",
Self::REVSH => "revsh",
Self::RFE => "rfe",
Self::RFEDB => "rfedb",
Self::RFEFA => "rfefa",
Self::RFEFD => "rfefd",
Self::ROR => "ror",
Self::RORS => "rors",
Self::RRX => "rrx",
Self::RRXS => "rrxs",
Self::RSB => "rsb",
Self::RSBS => "rsbs",
Self::SADD16 => "sadd16",
Self::SADD8 => "sadd8",
Self::SASX => "sasx",
Self::SB => "sb",
Self::SBC => "sbc",
Self::SBCS => "sbcs",
Self::SBFX => "sbfx",
Self::SDIV => "sdiv",
Self::SEL => "sel",
Self::SETEND => "setend",
Self::SETPAN => "setpan",
Self::SEV => "sev",
Self::SEVL => "sevl",
Self::SHADD16 => "shadd16",
Self::SHADD8 => "shadd8",
Self::SHASX => "shasx",
Self::SHSAX => "shsax",
Self::SHSUB16 => "shsub16",
Self::SHSUB8 => "shsub8",
Self::SMC => "smc",
Self::SMLABB => "smlabb",
Self::SMLABT => "smlabt",
Self::SMLAD => "smlad",
Self::SMLADX => "smladx",
Self::SMLAL => "smlal",
Self::SMLALBB => "smlalbb",
Self::SMLALBT => "smlalbt",
Self::SMLALD => "smlald",
Self::SMLALDX => "smlaldx",
Self::SMLALTB => "smlaltb",
Self::SMLALTT => "smlaltt",
Self::SMLATB => "smlatb",
Self::SMLATT => "smlatt",
Self::SMLAWB => "smlawb",
Self::SMLAWT => "smlawt",
Self::SMLSD => "smlsd",
Self::SMLSDX => "smlsdx",
Self::SMLSLD => "smlsld",
Self::SMLSLDX => "smlsldx",
Self::SMMLA => "smmla",
Self::SMMLAR => "smmlar",
Self::SMMLS => "smmls",
Self::SMMLSR => "smmlsr",
Self::SMMUL => "smmul",
Self::SMMULR => "smmulr",
Self::SMUAD => "smuad",
Self::SMUADX => "smuadx",
Self::SMULBB => "smulbb",
Self::SMULBT => "smulbt",
Self::SMULL => "smull",
Self::SMULTB => "smultb",
Self::SMULTT => "smultt",
Self::SMULWB => "smulwb",
Self::SMULWT => "smulwt",
Self::SMUSD => "smusd",
Self::SMUSDX => "smusdx",
Self::SRS => "srs",
Self::SRSDB => "srsdb",
Self::SSAT => "ssat",
Self::SSAT16 => "ssat16",
Self::SSAX => "ssax",
Self::SSBB => "ssbb",
Self::SSUB16 => "ssub16",
Self::SSUB8 => "ssub8",
Self::STC => "stc",
Self::STL => "stl",
Self::STLB => "stlb",
Self::STLEX => "stlex",
Self::STLEXB => "stlexb",
Self::STLEXD => "stlexd",
Self::STLEXH => "stlexh",
Self::STLH => "stlh",
Self::STM => "stm",
Self::STMDB => "stmdb",
Self::STMEA => "stmea",
Self::STMFD => "stmfd",
Self::STR => "str",
Self::STRB => "strb",
Self::STRBT => "strbt",
Self::STRD => "strd",
Self::STREX => "strex",
Self::STREXB => "strexb",
Self::STREXD => "strexd",
Self::STREXH => "strexh",
Self::STRH => "strh",
Self::STRHT => "strht",
Self::STRT => "strt",
Self::SUB => "sub",
Self::SUBS => "subs",
Self::SUBW => "subw",
Self::SVC => "svc",
Self::SXTAB => "sxtab",
Self::SXTAB16 => "sxtab16",
Self::SXTAH => "sxtah",
Self::SXTB => "sxtb",
Self::SXTB16 => "sxtb16",
Self::SXTH => "sxth",
Self::TBB => "tbb",
Self::TBH => "tbh",
Self::TEQ => "teq",
Self::TSB => "tsb",
Self::TST => "tst",
Self::UADD16 => "uadd16",
Self::UADD8 => "uadd8",
Self::UASX => "uasx",
Self::UBFX => "ubfx",
Self::UDF => "udf",
Self::UDIV => "udiv",
Self::UHADD16 => "uhadd16",
Self::UHADD8 => "uhadd8",
Self::UHASX => "uhasx",
Self::UHSAX => "uhsax",
Self::UHSUB16 => "uhsub16",
Self::UHSUB8 => "uhsub8",
Self::UMAAL => "umaal",
Self::UMLAL => "umlal",
Self::UMULL => "umull",
Self::UQADD16 => "uqadd16",
Self::UQADD8 => "uqadd8",
Self::UQASX => "uqasx",
Self::UQSAX => "uqsax",
Self::UQSUB16 => "uqsub16",
Self::UQSUB8 => "uqsub8",
Self::USAD8 => "usad8",
Self::USADA8 => "usada8",
Self::USAT => "usat",
Self::USAT16 => "usat16",
Self::USAX => "usax",
Self::USUB16 => "usub16",
Self::USUB8 => "usub8",
Self::UXTAB => "uxtab",
Self::UXTAB16 => "uxtab16",
Self::UXTAH => "uxtah",
Self::UXTB => "uxtb",
Self::UXTB16 => "uxtb16",
Self::UXTH => "uxth",
Self::WFE => "wfe",
Self::WFI => "wfi",
Self::YIELD => "yield",
}
}
}