#![allow(non_camel_case_types)]
use crate::error::*;
use super::mnemonic::*;
use super::super::config::*;
use super::super::operand::*;
use super::super::instruction::*;
use super::super::formatter::*;
use super::super::instructions::*;
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Debug, Hash)]
pub enum Code {
Invalid,
ADCS_i_A1,
ADCS_r_A1,
ADCS_r_A1_RRX,
ADCS_rr_A1,
ADC_i_A1,
ADC_r_A1,
ADC_r_A1_RRX,
ADC_rr_A1,
ADDS_SP_i_A1,
ADDS_SP_r_A1,
ADDS_SP_r_A1_RRX,
ADDS_i_A1,
ADDS_r_A1,
ADDS_r_A1_RRX,
ADDS_rr_A1,
ADD_ADR_A1,
ADD_SP_i_A1,
ADD_SP_r_A1,
ADD_SP_r_A1_RRX,
ADD_i_A1,
ADD_r_A1,
ADD_r_A1_RRX,
ADD_rr_A1,
ADR_A1,
ADR_A2,
ANDS_i_A1,
ANDS_r_A1,
ANDS_r_A1_RRX,
ANDS_rr_A1,
AND_i_A1,
AND_r_A1,
AND_r_A1_RRX,
AND_rr_A1,
ASRS_MOVS_r_A1,
ASRS_MOVS_rr_A1,
ASR_MOV_r_A1,
ASR_MOV_rr_A1,
BFC_A1,
BFI_A1,
BICS_i_A1,
BICS_r_A1,
BICS_r_A1_RRX,
BICS_rr_A1,
BIC_i_A1,
BIC_r_A1,
BIC_r_A1_RRX,
BIC_rr_A1,
BKPT_A1,
BLX_r_A1,
BL_i_A1,
BL_i_A2,
BXJ_A1,
BX_A1,
B_A1,
CLRBHB_A1,
CLREX_A1,
CLZ_A1,
CMN_i_A1,
CMN_r_A1,
CMN_r_A1_RRX,
CMN_rr_A1,
CMP_i_A1,
CMP_r_A1,
CMP_r_A1_RRX,
CMP_rr_A1,
CPSID_A1_AS,
CPSID_A1_ASM,
CPSIE_A1_AS,
CPSIE_A1_ASM,
CPS_A1_AS,
CRC32B_A1,
CRC32CB_A1,
CRC32CH_A1,
CRC32CW_A1,
CRC32H_A1,
CRC32W_A1,
CSDB_A1,
DBG_A1,
DMB_A1,
DSB_A1,
EORS_i_A1,
EORS_r_A1,
EORS_r_A1_RRX,
EORS_rr_A1,
EOR_i_A1,
EOR_r_A1,
EOR_r_A1_RRX,
EOR_rr_A1,
ERET_A1,
ESB_A1,
HLT_A1,
HVC_A1,
ISB_A1,
LDAB_A1,
LDAEXB_A1,
LDAEXD_A1,
LDAEXH_A1,
LDAEX_A1,
LDAH_A1,
LDA_A1,
LDC_i_A1_off,
LDC_i_A1_post,
LDC_i_A1_pre,
LDC_i_A1_unind,
LDC_l_A1_off,
LDC_l_A1_post,
LDC_l_A1_pre,
LDC_l_A1_unind,
LDMDA_A1,
LDMDB_A1,
LDMIB_A1,
LDM_A1,
LDM_e_A1_AS,
LDM_u_A1_AS,
LDRBT_A1,
LDRBT_A2,
LDRB_i_A1_off,
LDRB_i_A1_post,
LDRB_i_A1_pre,
LDRB_l_A1_off,
LDRB_l_A1_post,
LDRB_l_A1_pre,
LDRB_r_A1_off,
LDRB_r_A1_post,
LDRB_r_A1_pre,
LDRD_i_A1_off,
LDRD_i_A1_post,
LDRD_i_A1_pre,
LDRD_l_A1_off,
LDRD_l_A1_post,
LDRD_l_A1_pre,
LDRD_r_A1_off,
LDRD_r_A1_post,
LDRD_r_A1_pre,
LDREXB_A1,
LDREXD_A1,
LDREXH_A1,
LDREX_A1,
LDRHT_A1,
LDRHT_A2,
LDRH_i_A1_off,
LDRH_i_A1_post,
LDRH_i_A1_pre,
LDRH_l_A1_off,
LDRH_l_A1_post,
LDRH_l_A1_pre,
LDRH_r_A1_off,
LDRH_r_A1_post,
LDRH_r_A1_pre,
LDRSBT_A1,
LDRSBT_A2,
LDRSB_i_A1_off,
LDRSB_i_A1_post,
LDRSB_i_A1_pre,
LDRSB_l_A1_off,
LDRSB_l_A1_post,
LDRSB_l_A1_pre,
LDRSB_r_A1_off,
LDRSB_r_A1_post,
LDRSB_r_A1_pre,
LDRSHT_A1,
LDRSHT_A2,
LDRSH_i_A1_off,
LDRSH_i_A1_post,
LDRSH_i_A1_pre,
LDRSH_l_A1_off,
LDRSH_l_A1_post,
LDRSH_l_A1_pre,
LDRSH_r_A1_off,
LDRSH_r_A1_post,
LDRSH_r_A1_pre,
LDRT_A1,
LDRT_A2,
LDR_i_A1_off,
LDR_i_A1_post,
LDR_i_A1_pre,
LDR_l_A1_off,
LDR_l_A1_post,
LDR_l_A1_pre,
LDR_r_A1_off,
LDR_r_A1_post,
LDR_r_A1_pre,
LSLS_MOVS_r_A1,
LSLS_MOVS_rr_A1,
LSL_MOV_r_A1,
LSL_MOV_rr_A1,
LSRS_MOVS_r_A1,
LSRS_MOVS_rr_A1,
LSR_MOV_r_A1,
LSR_MOV_rr_A1,
MCRR_A1,
MCR_A1,
MLAS_A1,
MLA_A1,
MLS_A1,
MOVS_i_A1,
MOVS_r_A1,
MOVS_r_A1_RRX,
MOVS_rr_A1,
MOVT_A1,
MOV_i_A1,
MOV_i_A2,
MOV_r_A1,
MOV_r_A1_RRX,
MOV_rr_A1,
MRC_A1,
MRRC_A1,
MRS_A1_AS,
MRS_br_A1_AS,
MSR_br_A1_AS,
MSR_i_A1_AS,
MSR_r_A1_AS,
MULS_A1,
MUL_A1,
MVNS_i_A1,
MVNS_r_A1,
MVNS_r_A1_RRX,
MVNS_rr_A1,
MVN_i_A1,
MVN_r_A1,
MVN_r_A1_RRX,
MVN_rr_A1,
NOP_A1,
ORRS_i_A1,
ORRS_r_A1,
ORRS_r_A1_RRX,
ORRS_rr_A1,
ORR_i_A1,
ORR_r_A1,
ORR_r_A1_RRX,
ORR_rr_A1,
PKHBT_A1,
PKHTB_A1,
PLDW_i_A1,
PLDW_l_A1,
PLDW_r_A1,
PLDW_r_A1_RRX,
PLD_i_A1,
PLD_l_A1,
PLD_r_A1,
PLD_r_A1_RRX,
PLI_i_A1,
PLI_r_A1,
PLI_r_A1_RRX,
POP_LDM_A1,
POP_LDR_i_A1_post,
PSSBB_A1,
PUSH_STMDB_A1,
PUSH_STR_i_A1_pre,
QADD16_A1,
QADD8_A1,
QADD_A1,
QASX_A1,
QDADD_A1,
QDSUB_A1,
QSAX_A1,
QSUB16_A1,
QSUB8_A1,
QSUB_A1,
RBIT_A1,
REV16_A1,
REVSH_A1,
REV_A1,
RFEDA_A1_AS,
RFEDB_A1_AS,
RFEIA_A1_AS,
RFEIB_A1_AS,
RORS_MOVS_r_A1,
RORS_MOVS_rr_A1,
ROR_MOV_r_A1,
ROR_MOV_rr_A1,
RRXS_MOVS_r_A1_RRX,
RRX_MOV_r_A1_RRX,
RSBS_i_A1,
RSBS_r_A1,
RSBS_r_A1_RRX,
RSBS_rr_A1,
RSB_i_A1,
RSB_r_A1,
RSB_r_A1_RRX,
RSB_rr_A1,
RSCS_i_A1,
RSCS_r_A1,
RSCS_r_A1_RRX,
RSCS_rr_A1,
RSC_i_A1,
RSC_r_A1,
RSC_r_A1_RRX,
RSC_rr_A1,
SADD16_A1,
SADD8_A1,
SASX_A1,
SBCS_i_A1,
SBCS_r_A1,
SBCS_r_A1_RRX,
SBCS_rr_A1,
SBC_i_A1,
SBC_r_A1,
SBC_r_A1_RRX,
SBC_rr_A1,
SBFX_A1,
SB_A1,
SDIV_A1,
SEL_A1,
SETEND_A1,
SETPAN_A1,
SEVL_A1,
SEV_A1,
SHADD16_A1,
SHADD8_A1,
SHASX_A1,
SHSAX_A1,
SHSUB16_A1,
SHSUB8_A1,
SMC_A1_AS,
SMLABB_A1,
SMLABT_A1,
SMLADX_A1,
SMLAD_A1,
SMLALBB_A1,
SMLALBT_A1,
SMLALDX_A1,
SMLALD_A1,
SMLALS_A1,
SMLALTB_A1,
SMLALTT_A1,
SMLAL_A1,
SMLATB_A1,
SMLATT_A1,
SMLAWB_A1,
SMLAWT_A1,
SMLSDX_A1,
SMLSD_A1,
SMLSLDX_A1,
SMLSLD_A1,
SMMLAR_A1,
SMMLA_A1,
SMMLSR_A1,
SMMLS_A1,
SMMULR_A1,
SMMUL_A1,
SMUADX_A1,
SMUAD_A1,
SMULBB_A1,
SMULBT_A1,
SMULLS_A1,
SMULL_A1,
SMULTB_A1,
SMULTT_A1,
SMULWB_A1,
SMULWT_A1,
SMUSDX_A1,
SMUSD_A1,
SRSDA_A1_AS,
SRSDB_A1_AS,
SRSIA_A1_AS,
SRSIB_A1_AS,
SSAT16_A1,
SSAT_A1_ASR,
SSAT_A1_LSL,
SSAX_A1,
SSBB_A1,
SSUB16_A1,
SSUB8_A1,
STC_A1_off,
STC_A1_post,
STC_A1_pre,
STC_A1_unind,
STLB_A1,
STLEXB_A1,
STLEXD_A1,
STLEXH_A1,
STLEX_A1,
STLH_A1,
STL_A1,
STMDA_A1,
STMDB_A1,
STMIB_A1,
STM_A1,
STM_u_A1_AS,
STRBT_A1,
STRBT_A2,
STRB_i_A1_off,
STRB_i_A1_post,
STRB_i_A1_pre,
STRB_r_A1_off,
STRB_r_A1_post,
STRB_r_A1_pre,
STRD_i_A1_off,
STRD_i_A1_post,
STRD_i_A1_pre,
STRD_r_A1_off,
STRD_r_A1_post,
STRD_r_A1_pre,
STREXB_A1,
STREXD_A1,
STREXH_A1,
STREX_A1,
STRHT_A1,
STRHT_A2,
STRH_i_A1_off,
STRH_i_A1_post,
STRH_i_A1_pre,
STRH_r_A1_off,
STRH_r_A1_post,
STRH_r_A1_pre,
STRT_A1,
STRT_A2,
STR_i_A1_off,
STR_i_A1_post,
STR_i_A1_pre,
STR_r_A1_off,
STR_r_A1_post,
STR_r_A1_pre,
SUBS_SP_i_A1,
SUBS_SP_r_A1,
SUBS_SP_r_A1_RRX,
SUBS_i_A1,
SUBS_r_A1,
SUBS_r_A1_RRX,
SUBS_rr_A1,
SUB_ADR_A2,
SUB_SP_i_A1,
SUB_SP_r_A1,
SUB_SP_r_A1_RRX,
SUB_i_A1,
SUB_r_A1,
SUB_r_A1_RRX,
SUB_rr_A1,
SVC_A1,
SXTAB16_A1,
SXTAB_A1,
SXTAH_A1,
SXTB16_A1,
SXTB_A1,
SXTH_A1,
TEQ_i_A1,
TEQ_r_A1,
TEQ_r_A1_RRX,
TEQ_rr_A1,
TSB_A1,
TST_i_A1,
TST_r_A1,
TST_r_A1_RRX,
TST_rr_A1,
UADD16_A1,
UADD8_A1,
UASX_A1,
UBFX_A1,
UDF_A1,
UDIV_A1,
UHADD16_A1,
UHADD8_A1,
UHASX_A1,
UHSAX_A1,
UHSUB16_A1,
UHSUB8_A1,
UMAAL_A1,
UMLALS_A1,
UMLAL_A1,
UMULLS_A1,
UMULL_A1,
UQADD16_A1,
UQADD8_A1,
UQASX_A1,
UQSAX_A1,
UQSUB16_A1,
UQSUB8_A1,
USAD8_A1,
USADA8_A1,
USAT16_A1,
USAT_A1_ASR,
USAT_A1_LSL,
USAX_A1,
USUB16_A1,
USUB8_A1,
UXTAB16_A1,
UXTAB_A1,
UXTAH_A1,
UXTB16_A1,
UXTB_A1,
UXTH_A1,
WFE_A1,
WFI_A1,
YIELD_A1,
}
impl Code {
pub fn mnemonic(&self, instr: &Instruction) -> Mnemonic {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::mnemonic(instr),
Code::ADCS_r_A1 => AdcsRA1::mnemonic(instr),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::mnemonic(instr),
Code::ADCS_rr_A1 => AdcsRrA1::mnemonic(instr),
Code::ADC_i_A1 => AdcIA1::mnemonic(instr),
Code::ADC_r_A1 => AdcRA1::mnemonic(instr),
Code::ADC_r_A1_RRX => AdcRA1Rrx::mnemonic(instr),
Code::ADC_rr_A1 => AdcRrA1::mnemonic(instr),
Code::ADDS_SP_i_A1 => AddsSpIA1::mnemonic(instr),
Code::ADDS_SP_r_A1 => AddsSpRA1::mnemonic(instr),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::mnemonic(instr),
Code::ADDS_i_A1 => AddsIA1::mnemonic(instr),
Code::ADDS_r_A1 => AddsRA1::mnemonic(instr),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::mnemonic(instr),
Code::ADDS_rr_A1 => AddsRrA1::mnemonic(instr),
Code::ADD_ADR_A1 => AddAdrA1::mnemonic(instr),
Code::ADD_SP_i_A1 => AddSpIA1::mnemonic(instr),
Code::ADD_SP_r_A1 => AddSpRA1::mnemonic(instr),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::mnemonic(instr),
Code::ADD_i_A1 => AddIA1::mnemonic(instr),
Code::ADD_r_A1 => AddRA1::mnemonic(instr),
Code::ADD_r_A1_RRX => AddRA1Rrx::mnemonic(instr),
Code::ADD_rr_A1 => AddRrA1::mnemonic(instr),
Code::ADR_A1 => AdrA1::mnemonic(instr),
Code::ADR_A2 => AdrA2::mnemonic(instr),
Code::ANDS_i_A1 => AndsIA1::mnemonic(instr),
Code::ANDS_r_A1 => AndsRA1::mnemonic(instr),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::mnemonic(instr),
Code::ANDS_rr_A1 => AndsRrA1::mnemonic(instr),
Code::AND_i_A1 => AndIA1::mnemonic(instr),
Code::AND_r_A1 => AndRA1::mnemonic(instr),
Code::AND_r_A1_RRX => AndRA1Rrx::mnemonic(instr),
Code::AND_rr_A1 => AndRrA1::mnemonic(instr),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::mnemonic(instr),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::mnemonic(instr),
Code::ASR_MOV_r_A1 => AsrMovRA1::mnemonic(instr),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::mnemonic(instr),
Code::BFC_A1 => BfcA1::mnemonic(instr),
Code::BFI_A1 => BfiA1::mnemonic(instr),
Code::BICS_i_A1 => BicsIA1::mnemonic(instr),
Code::BICS_r_A1 => BicsRA1::mnemonic(instr),
Code::BICS_r_A1_RRX => BicsRA1Rrx::mnemonic(instr),
Code::BICS_rr_A1 => BicsRrA1::mnemonic(instr),
Code::BIC_i_A1 => BicIA1::mnemonic(instr),
Code::BIC_r_A1 => BicRA1::mnemonic(instr),
Code::BIC_r_A1_RRX => BicRA1Rrx::mnemonic(instr),
Code::BIC_rr_A1 => BicRrA1::mnemonic(instr),
Code::BKPT_A1 => BkptA1::mnemonic(instr),
Code::BLX_r_A1 => BlxRA1::mnemonic(instr),
Code::BL_i_A1 => BlIA1::mnemonic(instr),
Code::BL_i_A2 => BlIA2::mnemonic(instr),
Code::BXJ_A1 => BxjA1::mnemonic(instr),
Code::BX_A1 => BxA1::mnemonic(instr),
Code::B_A1 => BA1::mnemonic(instr),
Code::CLRBHB_A1 => ClrbhbA1::mnemonic(instr),
Code::CLREX_A1 => ClrexA1::mnemonic(instr),
Code::CLZ_A1 => ClzA1::mnemonic(instr),
Code::CMN_i_A1 => CmnIA1::mnemonic(instr),
Code::CMN_r_A1 => CmnRA1::mnemonic(instr),
Code::CMN_r_A1_RRX => CmnRA1Rrx::mnemonic(instr),
Code::CMN_rr_A1 => CmnRrA1::mnemonic(instr),
Code::CMP_i_A1 => CmpIA1::mnemonic(instr),
Code::CMP_r_A1 => CmpRA1::mnemonic(instr),
Code::CMP_r_A1_RRX => CmpRA1Rrx::mnemonic(instr),
Code::CMP_rr_A1 => CmpRrA1::mnemonic(instr),
Code::CPSID_A1_AS => CpsidA1As::mnemonic(instr),
Code::CPSID_A1_ASM => CpsidA1Asm::mnemonic(instr),
Code::CPSIE_A1_AS => CpsieA1As::mnemonic(instr),
Code::CPSIE_A1_ASM => CpsieA1Asm::mnemonic(instr),
Code::CPS_A1_AS => CpsA1As::mnemonic(instr),
Code::CRC32B_A1 => Crc32bA1::mnemonic(instr),
Code::CRC32CB_A1 => Crc32cbA1::mnemonic(instr),
Code::CRC32CH_A1 => Crc32chA1::mnemonic(instr),
Code::CRC32CW_A1 => Crc32cwA1::mnemonic(instr),
Code::CRC32H_A1 => Crc32hA1::mnemonic(instr),
Code::CRC32W_A1 => Crc32wA1::mnemonic(instr),
Code::CSDB_A1 => CsdbA1::mnemonic(instr),
Code::DBG_A1 => DbgA1::mnemonic(instr),
Code::DMB_A1 => DmbA1::mnemonic(instr),
Code::DSB_A1 => DsbA1::mnemonic(instr),
Code::EORS_i_A1 => EorsIA1::mnemonic(instr),
Code::EORS_r_A1 => EorsRA1::mnemonic(instr),
Code::EORS_r_A1_RRX => EorsRA1Rrx::mnemonic(instr),
Code::EORS_rr_A1 => EorsRrA1::mnemonic(instr),
Code::EOR_i_A1 => EorIA1::mnemonic(instr),
Code::EOR_r_A1 => EorRA1::mnemonic(instr),
Code::EOR_r_A1_RRX => EorRA1Rrx::mnemonic(instr),
Code::EOR_rr_A1 => EorRrA1::mnemonic(instr),
Code::ERET_A1 => EretA1::mnemonic(instr),
Code::ESB_A1 => EsbA1::mnemonic(instr),
Code::HLT_A1 => HltA1::mnemonic(instr),
Code::HVC_A1 => HvcA1::mnemonic(instr),
Code::ISB_A1 => IsbA1::mnemonic(instr),
Code::LDAB_A1 => LdabA1::mnemonic(instr),
Code::LDAEXB_A1 => LdaexbA1::mnemonic(instr),
Code::LDAEXD_A1 => LdaexdA1::mnemonic(instr),
Code::LDAEXH_A1 => LdaexhA1::mnemonic(instr),
Code::LDAEX_A1 => LdaexA1::mnemonic(instr),
Code::LDAH_A1 => LdahA1::mnemonic(instr),
Code::LDA_A1 => LdaA1::mnemonic(instr),
Code::LDC_i_A1_off => LdcIA1Off::mnemonic(instr),
Code::LDC_i_A1_post => LdcIA1Post::mnemonic(instr),
Code::LDC_i_A1_pre => LdcIA1Pre::mnemonic(instr),
Code::LDC_i_A1_unind => LdcIA1Unind::mnemonic(instr),
Code::LDC_l_A1_off => LdcLA1Off::mnemonic(instr),
Code::LDC_l_A1_post => LdcLA1Post::mnemonic(instr),
Code::LDC_l_A1_pre => LdcLA1Pre::mnemonic(instr),
Code::LDC_l_A1_unind => LdcLA1Unind::mnemonic(instr),
Code::LDMDA_A1 => LdmdaA1::mnemonic(instr),
Code::LDMDB_A1 => LdmdbA1::mnemonic(instr),
Code::LDMIB_A1 => LdmibA1::mnemonic(instr),
Code::LDM_A1 => LdmA1::mnemonic(instr),
Code::LDM_e_A1_AS => LdmEA1As::mnemonic(instr),
Code::LDM_u_A1_AS => LdmUA1As::mnemonic(instr),
Code::LDRBT_A1 => LdrbtA1::mnemonic(instr),
Code::LDRBT_A2 => LdrbtA2::mnemonic(instr),
Code::LDRB_i_A1_off => LdrbIA1Off::mnemonic(instr),
Code::LDRB_i_A1_post => LdrbIA1Post::mnemonic(instr),
Code::LDRB_i_A1_pre => LdrbIA1Pre::mnemonic(instr),
Code::LDRB_l_A1_off => LdrbLA1Off::mnemonic(instr),
Code::LDRB_l_A1_post => LdrbLA1Post::mnemonic(instr),
Code::LDRB_l_A1_pre => LdrbLA1Pre::mnemonic(instr),
Code::LDRB_r_A1_off => LdrbRA1Off::mnemonic(instr),
Code::LDRB_r_A1_post => LdrbRA1Post::mnemonic(instr),
Code::LDRB_r_A1_pre => LdrbRA1Pre::mnemonic(instr),
Code::LDRD_i_A1_off => LdrdIA1Off::mnemonic(instr),
Code::LDRD_i_A1_post => LdrdIA1Post::mnemonic(instr),
Code::LDRD_i_A1_pre => LdrdIA1Pre::mnemonic(instr),
Code::LDRD_l_A1_off => LdrdLA1Off::mnemonic(instr),
Code::LDRD_l_A1_post => LdrdLA1Post::mnemonic(instr),
Code::LDRD_l_A1_pre => LdrdLA1Pre::mnemonic(instr),
Code::LDRD_r_A1_off => LdrdRA1Off::mnemonic(instr),
Code::LDRD_r_A1_post => LdrdRA1Post::mnemonic(instr),
Code::LDRD_r_A1_pre => LdrdRA1Pre::mnemonic(instr),
Code::LDREXB_A1 => LdrexbA1::mnemonic(instr),
Code::LDREXD_A1 => LdrexdA1::mnemonic(instr),
Code::LDREXH_A1 => LdrexhA1::mnemonic(instr),
Code::LDREX_A1 => LdrexA1::mnemonic(instr),
Code::LDRHT_A1 => LdrhtA1::mnemonic(instr),
Code::LDRHT_A2 => LdrhtA2::mnemonic(instr),
Code::LDRH_i_A1_off => LdrhIA1Off::mnemonic(instr),
Code::LDRH_i_A1_post => LdrhIA1Post::mnemonic(instr),
Code::LDRH_i_A1_pre => LdrhIA1Pre::mnemonic(instr),
Code::LDRH_l_A1_off => LdrhLA1Off::mnemonic(instr),
Code::LDRH_l_A1_post => LdrhLA1Post::mnemonic(instr),
Code::LDRH_l_A1_pre => LdrhLA1Pre::mnemonic(instr),
Code::LDRH_r_A1_off => LdrhRA1Off::mnemonic(instr),
Code::LDRH_r_A1_post => LdrhRA1Post::mnemonic(instr),
Code::LDRH_r_A1_pre => LdrhRA1Pre::mnemonic(instr),
Code::LDRSBT_A1 => LdrsbtA1::mnemonic(instr),
Code::LDRSBT_A2 => LdrsbtA2::mnemonic(instr),
Code::LDRSB_i_A1_off => LdrsbIA1Off::mnemonic(instr),
Code::LDRSB_i_A1_post => LdrsbIA1Post::mnemonic(instr),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::mnemonic(instr),
Code::LDRSB_l_A1_off => LdrsbLA1Off::mnemonic(instr),
Code::LDRSB_l_A1_post => LdrsbLA1Post::mnemonic(instr),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::mnemonic(instr),
Code::LDRSB_r_A1_off => LdrsbRA1Off::mnemonic(instr),
Code::LDRSB_r_A1_post => LdrsbRA1Post::mnemonic(instr),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::mnemonic(instr),
Code::LDRSHT_A1 => LdrshtA1::mnemonic(instr),
Code::LDRSHT_A2 => LdrshtA2::mnemonic(instr),
Code::LDRSH_i_A1_off => LdrshIA1Off::mnemonic(instr),
Code::LDRSH_i_A1_post => LdrshIA1Post::mnemonic(instr),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::mnemonic(instr),
Code::LDRSH_l_A1_off => LdrshLA1Off::mnemonic(instr),
Code::LDRSH_l_A1_post => LdrshLA1Post::mnemonic(instr),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::mnemonic(instr),
Code::LDRSH_r_A1_off => LdrshRA1Off::mnemonic(instr),
Code::LDRSH_r_A1_post => LdrshRA1Post::mnemonic(instr),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::mnemonic(instr),
Code::LDRT_A1 => LdrtA1::mnemonic(instr),
Code::LDRT_A2 => LdrtA2::mnemonic(instr),
Code::LDR_i_A1_off => LdrIA1Off::mnemonic(instr),
Code::LDR_i_A1_post => LdrIA1Post::mnemonic(instr),
Code::LDR_i_A1_pre => LdrIA1Pre::mnemonic(instr),
Code::LDR_l_A1_off => LdrLA1Off::mnemonic(instr),
Code::LDR_l_A1_post => LdrLA1Post::mnemonic(instr),
Code::LDR_l_A1_pre => LdrLA1Pre::mnemonic(instr),
Code::LDR_r_A1_off => LdrRA1Off::mnemonic(instr),
Code::LDR_r_A1_post => LdrRA1Post::mnemonic(instr),
Code::LDR_r_A1_pre => LdrRA1Pre::mnemonic(instr),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::mnemonic(instr),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::mnemonic(instr),
Code::LSL_MOV_r_A1 => LslMovRA1::mnemonic(instr),
Code::LSL_MOV_rr_A1 => LslMovRrA1::mnemonic(instr),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::mnemonic(instr),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::mnemonic(instr),
Code::LSR_MOV_r_A1 => LsrMovRA1::mnemonic(instr),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::mnemonic(instr),
Code::MCRR_A1 => McrrA1::mnemonic(instr),
Code::MCR_A1 => McrA1::mnemonic(instr),
Code::MLAS_A1 => MlasA1::mnemonic(instr),
Code::MLA_A1 => MlaA1::mnemonic(instr),
Code::MLS_A1 => MlsA1::mnemonic(instr),
Code::MOVS_i_A1 => MovsIA1::mnemonic(instr),
Code::MOVS_r_A1 => MovsRA1::mnemonic(instr),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::mnemonic(instr),
Code::MOVS_rr_A1 => MovsRrA1::mnemonic(instr),
Code::MOVT_A1 => MovtA1::mnemonic(instr),
Code::MOV_i_A1 => MovIA1::mnemonic(instr),
Code::MOV_i_A2 => MovIA2::mnemonic(instr),
Code::MOV_r_A1 => MovRA1::mnemonic(instr),
Code::MOV_r_A1_RRX => MovRA1Rrx::mnemonic(instr),
Code::MOV_rr_A1 => MovRrA1::mnemonic(instr),
Code::MRC_A1 => MrcA1::mnemonic(instr),
Code::MRRC_A1 => MrrcA1::mnemonic(instr),
Code::MRS_A1_AS => MrsA1As::mnemonic(instr),
Code::MRS_br_A1_AS => MrsBrA1As::mnemonic(instr),
Code::MSR_br_A1_AS => MsrBrA1As::mnemonic(instr),
Code::MSR_i_A1_AS => MsrIA1As::mnemonic(instr),
Code::MSR_r_A1_AS => MsrRA1As::mnemonic(instr),
Code::MULS_A1 => MulsA1::mnemonic(instr),
Code::MUL_A1 => MulA1::mnemonic(instr),
Code::MVNS_i_A1 => MvnsIA1::mnemonic(instr),
Code::MVNS_r_A1 => MvnsRA1::mnemonic(instr),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::mnemonic(instr),
Code::MVNS_rr_A1 => MvnsRrA1::mnemonic(instr),
Code::MVN_i_A1 => MvnIA1::mnemonic(instr),
Code::MVN_r_A1 => MvnRA1::mnemonic(instr),
Code::MVN_r_A1_RRX => MvnRA1Rrx::mnemonic(instr),
Code::MVN_rr_A1 => MvnRrA1::mnemonic(instr),
Code::NOP_A1 => NopA1::mnemonic(instr),
Code::ORRS_i_A1 => OrrsIA1::mnemonic(instr),
Code::ORRS_r_A1 => OrrsRA1::mnemonic(instr),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::mnemonic(instr),
Code::ORRS_rr_A1 => OrrsRrA1::mnemonic(instr),
Code::ORR_i_A1 => OrrIA1::mnemonic(instr),
Code::ORR_r_A1 => OrrRA1::mnemonic(instr),
Code::ORR_r_A1_RRX => OrrRA1Rrx::mnemonic(instr),
Code::ORR_rr_A1 => OrrRrA1::mnemonic(instr),
Code::PKHBT_A1 => PkhbtA1::mnemonic(instr),
Code::PKHTB_A1 => PkhtbA1::mnemonic(instr),
Code::PLDW_i_A1 => PldwIA1::mnemonic(instr),
Code::PLDW_l_A1 => PldwLA1::mnemonic(instr),
Code::PLDW_r_A1 => PldwRA1::mnemonic(instr),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::mnemonic(instr),
Code::PLD_i_A1 => PldIA1::mnemonic(instr),
Code::PLD_l_A1 => PldLA1::mnemonic(instr),
Code::PLD_r_A1 => PldRA1::mnemonic(instr),
Code::PLD_r_A1_RRX => PldRA1Rrx::mnemonic(instr),
Code::PLI_i_A1 => PliIA1::mnemonic(instr),
Code::PLI_r_A1 => PliRA1::mnemonic(instr),
Code::PLI_r_A1_RRX => PliRA1Rrx::mnemonic(instr),
Code::POP_LDM_A1 => PopLdmA1::mnemonic(instr),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::mnemonic(instr),
Code::PSSBB_A1 => PssbbA1::mnemonic(instr),
Code::PUSH_STMDB_A1 => PushStmdbA1::mnemonic(instr),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::mnemonic(instr),
Code::QADD16_A1 => Qadd16A1::mnemonic(instr),
Code::QADD8_A1 => Qadd8A1::mnemonic(instr),
Code::QADD_A1 => QaddA1::mnemonic(instr),
Code::QASX_A1 => QasxA1::mnemonic(instr),
Code::QDADD_A1 => QdaddA1::mnemonic(instr),
Code::QDSUB_A1 => QdsubA1::mnemonic(instr),
Code::QSAX_A1 => QsaxA1::mnemonic(instr),
Code::QSUB16_A1 => Qsub16A1::mnemonic(instr),
Code::QSUB8_A1 => Qsub8A1::mnemonic(instr),
Code::QSUB_A1 => QsubA1::mnemonic(instr),
Code::RBIT_A1 => RbitA1::mnemonic(instr),
Code::REV16_A1 => Rev16A1::mnemonic(instr),
Code::REVSH_A1 => RevshA1::mnemonic(instr),
Code::REV_A1 => RevA1::mnemonic(instr),
Code::RFEDA_A1_AS => RfedaA1As::mnemonic(instr),
Code::RFEDB_A1_AS => RfedbA1As::mnemonic(instr),
Code::RFEIA_A1_AS => RfeiaA1As::mnemonic(instr),
Code::RFEIB_A1_AS => RfeibA1As::mnemonic(instr),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::mnemonic(instr),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::mnemonic(instr),
Code::ROR_MOV_r_A1 => RorMovRA1::mnemonic(instr),
Code::ROR_MOV_rr_A1 => RorMovRrA1::mnemonic(instr),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::mnemonic(instr),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::mnemonic(instr),
Code::RSBS_i_A1 => RsbsIA1::mnemonic(instr),
Code::RSBS_r_A1 => RsbsRA1::mnemonic(instr),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::mnemonic(instr),
Code::RSBS_rr_A1 => RsbsRrA1::mnemonic(instr),
Code::RSB_i_A1 => RsbIA1::mnemonic(instr),
Code::RSB_r_A1 => RsbRA1::mnemonic(instr),
Code::RSB_r_A1_RRX => RsbRA1Rrx::mnemonic(instr),
Code::RSB_rr_A1 => RsbRrA1::mnemonic(instr),
Code::RSCS_i_A1 => RscsIA1::mnemonic(instr),
Code::RSCS_r_A1 => RscsRA1::mnemonic(instr),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::mnemonic(instr),
Code::RSCS_rr_A1 => RscsRrA1::mnemonic(instr),
Code::RSC_i_A1 => RscIA1::mnemonic(instr),
Code::RSC_r_A1 => RscRA1::mnemonic(instr),
Code::RSC_r_A1_RRX => RscRA1Rrx::mnemonic(instr),
Code::RSC_rr_A1 => RscRrA1::mnemonic(instr),
Code::SADD16_A1 => Sadd16A1::mnemonic(instr),
Code::SADD8_A1 => Sadd8A1::mnemonic(instr),
Code::SASX_A1 => SasxA1::mnemonic(instr),
Code::SBCS_i_A1 => SbcsIA1::mnemonic(instr),
Code::SBCS_r_A1 => SbcsRA1::mnemonic(instr),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::mnemonic(instr),
Code::SBCS_rr_A1 => SbcsRrA1::mnemonic(instr),
Code::SBC_i_A1 => SbcIA1::mnemonic(instr),
Code::SBC_r_A1 => SbcRA1::mnemonic(instr),
Code::SBC_r_A1_RRX => SbcRA1Rrx::mnemonic(instr),
Code::SBC_rr_A1 => SbcRrA1::mnemonic(instr),
Code::SBFX_A1 => SbfxA1::mnemonic(instr),
Code::SB_A1 => SbA1::mnemonic(instr),
Code::SDIV_A1 => SdivA1::mnemonic(instr),
Code::SEL_A1 => SelA1::mnemonic(instr),
Code::SETEND_A1 => SetendA1::mnemonic(instr),
Code::SETPAN_A1 => SetpanA1::mnemonic(instr),
Code::SEVL_A1 => SevlA1::mnemonic(instr),
Code::SEV_A1 => SevA1::mnemonic(instr),
Code::SHADD16_A1 => Shadd16A1::mnemonic(instr),
Code::SHADD8_A1 => Shadd8A1::mnemonic(instr),
Code::SHASX_A1 => ShasxA1::mnemonic(instr),
Code::SHSAX_A1 => ShsaxA1::mnemonic(instr),
Code::SHSUB16_A1 => Shsub16A1::mnemonic(instr),
Code::SHSUB8_A1 => Shsub8A1::mnemonic(instr),
Code::SMC_A1_AS => SmcA1As::mnemonic(instr),
Code::SMLABB_A1 => SmlabbA1::mnemonic(instr),
Code::SMLABT_A1 => SmlabtA1::mnemonic(instr),
Code::SMLADX_A1 => SmladxA1::mnemonic(instr),
Code::SMLAD_A1 => SmladA1::mnemonic(instr),
Code::SMLALBB_A1 => SmlalbbA1::mnemonic(instr),
Code::SMLALBT_A1 => SmlalbtA1::mnemonic(instr),
Code::SMLALDX_A1 => SmlaldxA1::mnemonic(instr),
Code::SMLALD_A1 => SmlaldA1::mnemonic(instr),
Code::SMLALS_A1 => SmlalsA1::mnemonic(instr),
Code::SMLALTB_A1 => SmlaltbA1::mnemonic(instr),
Code::SMLALTT_A1 => SmlalttA1::mnemonic(instr),
Code::SMLAL_A1 => SmlalA1::mnemonic(instr),
Code::SMLATB_A1 => SmlatbA1::mnemonic(instr),
Code::SMLATT_A1 => SmlattA1::mnemonic(instr),
Code::SMLAWB_A1 => SmlawbA1::mnemonic(instr),
Code::SMLAWT_A1 => SmlawtA1::mnemonic(instr),
Code::SMLSDX_A1 => SmlsdxA1::mnemonic(instr),
Code::SMLSD_A1 => SmlsdA1::mnemonic(instr),
Code::SMLSLDX_A1 => SmlsldxA1::mnemonic(instr),
Code::SMLSLD_A1 => SmlsldA1::mnemonic(instr),
Code::SMMLAR_A1 => SmmlarA1::mnemonic(instr),
Code::SMMLA_A1 => SmmlaA1::mnemonic(instr),
Code::SMMLSR_A1 => SmmlsrA1::mnemonic(instr),
Code::SMMLS_A1 => SmmlsA1::mnemonic(instr),
Code::SMMULR_A1 => SmmulrA1::mnemonic(instr),
Code::SMMUL_A1 => SmmulA1::mnemonic(instr),
Code::SMUADX_A1 => SmuadxA1::mnemonic(instr),
Code::SMUAD_A1 => SmuadA1::mnemonic(instr),
Code::SMULBB_A1 => SmulbbA1::mnemonic(instr),
Code::SMULBT_A1 => SmulbtA1::mnemonic(instr),
Code::SMULLS_A1 => SmullsA1::mnemonic(instr),
Code::SMULL_A1 => SmullA1::mnemonic(instr),
Code::SMULTB_A1 => SmultbA1::mnemonic(instr),
Code::SMULTT_A1 => SmulttA1::mnemonic(instr),
Code::SMULWB_A1 => SmulwbA1::mnemonic(instr),
Code::SMULWT_A1 => SmulwtA1::mnemonic(instr),
Code::SMUSDX_A1 => SmusdxA1::mnemonic(instr),
Code::SMUSD_A1 => SmusdA1::mnemonic(instr),
Code::SRSDA_A1_AS => SrsdaA1As::mnemonic(instr),
Code::SRSDB_A1_AS => SrsdbA1As::mnemonic(instr),
Code::SRSIA_A1_AS => SrsiaA1As::mnemonic(instr),
Code::SRSIB_A1_AS => SrsibA1As::mnemonic(instr),
Code::SSAT16_A1 => Ssat16A1::mnemonic(instr),
Code::SSAT_A1_ASR => SsatA1Asr::mnemonic(instr),
Code::SSAT_A1_LSL => SsatA1Lsl::mnemonic(instr),
Code::SSAX_A1 => SsaxA1::mnemonic(instr),
Code::SSBB_A1 => SsbbA1::mnemonic(instr),
Code::SSUB16_A1 => Ssub16A1::mnemonic(instr),
Code::SSUB8_A1 => Ssub8A1::mnemonic(instr),
Code::STC_A1_off => StcA1Off::mnemonic(instr),
Code::STC_A1_post => StcA1Post::mnemonic(instr),
Code::STC_A1_pre => StcA1Pre::mnemonic(instr),
Code::STC_A1_unind => StcA1Unind::mnemonic(instr),
Code::STLB_A1 => StlbA1::mnemonic(instr),
Code::STLEXB_A1 => StlexbA1::mnemonic(instr),
Code::STLEXD_A1 => StlexdA1::mnemonic(instr),
Code::STLEXH_A1 => StlexhA1::mnemonic(instr),
Code::STLEX_A1 => StlexA1::mnemonic(instr),
Code::STLH_A1 => StlhA1::mnemonic(instr),
Code::STL_A1 => StlA1::mnemonic(instr),
Code::STMDA_A1 => StmdaA1::mnemonic(instr),
Code::STMDB_A1 => StmdbA1::mnemonic(instr),
Code::STMIB_A1 => StmibA1::mnemonic(instr),
Code::STM_A1 => StmA1::mnemonic(instr),
Code::STM_u_A1_AS => StmUA1As::mnemonic(instr),
Code::STRBT_A1 => StrbtA1::mnemonic(instr),
Code::STRBT_A2 => StrbtA2::mnemonic(instr),
Code::STRB_i_A1_off => StrbIA1Off::mnemonic(instr),
Code::STRB_i_A1_post => StrbIA1Post::mnemonic(instr),
Code::STRB_i_A1_pre => StrbIA1Pre::mnemonic(instr),
Code::STRB_r_A1_off => StrbRA1Off::mnemonic(instr),
Code::STRB_r_A1_post => StrbRA1Post::mnemonic(instr),
Code::STRB_r_A1_pre => StrbRA1Pre::mnemonic(instr),
Code::STRD_i_A1_off => StrdIA1Off::mnemonic(instr),
Code::STRD_i_A1_post => StrdIA1Post::mnemonic(instr),
Code::STRD_i_A1_pre => StrdIA1Pre::mnemonic(instr),
Code::STRD_r_A1_off => StrdRA1Off::mnemonic(instr),
Code::STRD_r_A1_post => StrdRA1Post::mnemonic(instr),
Code::STRD_r_A1_pre => StrdRA1Pre::mnemonic(instr),
Code::STREXB_A1 => StrexbA1::mnemonic(instr),
Code::STREXD_A1 => StrexdA1::mnemonic(instr),
Code::STREXH_A1 => StrexhA1::mnemonic(instr),
Code::STREX_A1 => StrexA1::mnemonic(instr),
Code::STRHT_A1 => StrhtA1::mnemonic(instr),
Code::STRHT_A2 => StrhtA2::mnemonic(instr),
Code::STRH_i_A1_off => StrhIA1Off::mnemonic(instr),
Code::STRH_i_A1_post => StrhIA1Post::mnemonic(instr),
Code::STRH_i_A1_pre => StrhIA1Pre::mnemonic(instr),
Code::STRH_r_A1_off => StrhRA1Off::mnemonic(instr),
Code::STRH_r_A1_post => StrhRA1Post::mnemonic(instr),
Code::STRH_r_A1_pre => StrhRA1Pre::mnemonic(instr),
Code::STRT_A1 => StrtA1::mnemonic(instr),
Code::STRT_A2 => StrtA2::mnemonic(instr),
Code::STR_i_A1_off => StrIA1Off::mnemonic(instr),
Code::STR_i_A1_post => StrIA1Post::mnemonic(instr),
Code::STR_i_A1_pre => StrIA1Pre::mnemonic(instr),
Code::STR_r_A1_off => StrRA1Off::mnemonic(instr),
Code::STR_r_A1_post => StrRA1Post::mnemonic(instr),
Code::STR_r_A1_pre => StrRA1Pre::mnemonic(instr),
Code::SUBS_SP_i_A1 => SubsSpIA1::mnemonic(instr),
Code::SUBS_SP_r_A1 => SubsSpRA1::mnemonic(instr),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::mnemonic(instr),
Code::SUBS_i_A1 => SubsIA1::mnemonic(instr),
Code::SUBS_r_A1 => SubsRA1::mnemonic(instr),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::mnemonic(instr),
Code::SUBS_rr_A1 => SubsRrA1::mnemonic(instr),
Code::SUB_ADR_A2 => SubAdrA2::mnemonic(instr),
Code::SUB_SP_i_A1 => SubSpIA1::mnemonic(instr),
Code::SUB_SP_r_A1 => SubSpRA1::mnemonic(instr),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::mnemonic(instr),
Code::SUB_i_A1 => SubIA1::mnemonic(instr),
Code::SUB_r_A1 => SubRA1::mnemonic(instr),
Code::SUB_r_A1_RRX => SubRA1Rrx::mnemonic(instr),
Code::SUB_rr_A1 => SubRrA1::mnemonic(instr),
Code::SVC_A1 => SvcA1::mnemonic(instr),
Code::SXTAB16_A1 => Sxtab16A1::mnemonic(instr),
Code::SXTAB_A1 => SxtabA1::mnemonic(instr),
Code::SXTAH_A1 => SxtahA1::mnemonic(instr),
Code::SXTB16_A1 => Sxtb16A1::mnemonic(instr),
Code::SXTB_A1 => SxtbA1::mnemonic(instr),
Code::SXTH_A1 => SxthA1::mnemonic(instr),
Code::TEQ_i_A1 => TeqIA1::mnemonic(instr),
Code::TEQ_r_A1 => TeqRA1::mnemonic(instr),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::mnemonic(instr),
Code::TEQ_rr_A1 => TeqRrA1::mnemonic(instr),
Code::TSB_A1 => TsbA1::mnemonic(instr),
Code::TST_i_A1 => TstIA1::mnemonic(instr),
Code::TST_r_A1 => TstRA1::mnemonic(instr),
Code::TST_r_A1_RRX => TstRA1Rrx::mnemonic(instr),
Code::TST_rr_A1 => TstRrA1::mnemonic(instr),
Code::UADD16_A1 => Uadd16A1::mnemonic(instr),
Code::UADD8_A1 => Uadd8A1::mnemonic(instr),
Code::UASX_A1 => UasxA1::mnemonic(instr),
Code::UBFX_A1 => UbfxA1::mnemonic(instr),
Code::UDF_A1 => UdfA1::mnemonic(instr),
Code::UDIV_A1 => UdivA1::mnemonic(instr),
Code::UHADD16_A1 => Uhadd16A1::mnemonic(instr),
Code::UHADD8_A1 => Uhadd8A1::mnemonic(instr),
Code::UHASX_A1 => UhasxA1::mnemonic(instr),
Code::UHSAX_A1 => UhsaxA1::mnemonic(instr),
Code::UHSUB16_A1 => Uhsub16A1::mnemonic(instr),
Code::UHSUB8_A1 => Uhsub8A1::mnemonic(instr),
Code::UMAAL_A1 => UmaalA1::mnemonic(instr),
Code::UMLALS_A1 => UmlalsA1::mnemonic(instr),
Code::UMLAL_A1 => UmlalA1::mnemonic(instr),
Code::UMULLS_A1 => UmullsA1::mnemonic(instr),
Code::UMULL_A1 => UmullA1::mnemonic(instr),
Code::UQADD16_A1 => Uqadd16A1::mnemonic(instr),
Code::UQADD8_A1 => Uqadd8A1::mnemonic(instr),
Code::UQASX_A1 => UqasxA1::mnemonic(instr),
Code::UQSAX_A1 => UqsaxA1::mnemonic(instr),
Code::UQSUB16_A1 => Uqsub16A1::mnemonic(instr),
Code::UQSUB8_A1 => Uqsub8A1::mnemonic(instr),
Code::USAD8_A1 => Usad8A1::mnemonic(instr),
Code::USADA8_A1 => Usada8A1::mnemonic(instr),
Code::USAT16_A1 => Usat16A1::mnemonic(instr),
Code::USAT_A1_ASR => UsatA1Asr::mnemonic(instr),
Code::USAT_A1_LSL => UsatA1Lsl::mnemonic(instr),
Code::USAX_A1 => UsaxA1::mnemonic(instr),
Code::USUB16_A1 => Usub16A1::mnemonic(instr),
Code::USUB8_A1 => Usub8A1::mnemonic(instr),
Code::UXTAB16_A1 => Uxtab16A1::mnemonic(instr),
Code::UXTAB_A1 => UxtabA1::mnemonic(instr),
Code::UXTAH_A1 => UxtahA1::mnemonic(instr),
Code::UXTB16_A1 => Uxtb16A1::mnemonic(instr),
Code::UXTB_A1 => UxtbA1::mnemonic(instr),
Code::UXTH_A1 => UxthA1::mnemonic(instr),
Code::WFE_A1 => WfeA1::mnemonic(instr),
Code::WFI_A1 => WfiA1::mnemonic(instr),
Code::YIELD_A1 => YieldA1::mnemonic(instr),
}
}
pub fn size(&self, instr: &Instruction) -> usize {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::size(instr),
Code::ADCS_r_A1 => AdcsRA1::size(instr),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::size(instr),
Code::ADCS_rr_A1 => AdcsRrA1::size(instr),
Code::ADC_i_A1 => AdcIA1::size(instr),
Code::ADC_r_A1 => AdcRA1::size(instr),
Code::ADC_r_A1_RRX => AdcRA1Rrx::size(instr),
Code::ADC_rr_A1 => AdcRrA1::size(instr),
Code::ADDS_SP_i_A1 => AddsSpIA1::size(instr),
Code::ADDS_SP_r_A1 => AddsSpRA1::size(instr),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::size(instr),
Code::ADDS_i_A1 => AddsIA1::size(instr),
Code::ADDS_r_A1 => AddsRA1::size(instr),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::size(instr),
Code::ADDS_rr_A1 => AddsRrA1::size(instr),
Code::ADD_ADR_A1 => AddAdrA1::size(instr),
Code::ADD_SP_i_A1 => AddSpIA1::size(instr),
Code::ADD_SP_r_A1 => AddSpRA1::size(instr),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::size(instr),
Code::ADD_i_A1 => AddIA1::size(instr),
Code::ADD_r_A1 => AddRA1::size(instr),
Code::ADD_r_A1_RRX => AddRA1Rrx::size(instr),
Code::ADD_rr_A1 => AddRrA1::size(instr),
Code::ADR_A1 => AdrA1::size(instr),
Code::ADR_A2 => AdrA2::size(instr),
Code::ANDS_i_A1 => AndsIA1::size(instr),
Code::ANDS_r_A1 => AndsRA1::size(instr),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::size(instr),
Code::ANDS_rr_A1 => AndsRrA1::size(instr),
Code::AND_i_A1 => AndIA1::size(instr),
Code::AND_r_A1 => AndRA1::size(instr),
Code::AND_r_A1_RRX => AndRA1Rrx::size(instr),
Code::AND_rr_A1 => AndRrA1::size(instr),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::size(instr),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::size(instr),
Code::ASR_MOV_r_A1 => AsrMovRA1::size(instr),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::size(instr),
Code::BFC_A1 => BfcA1::size(instr),
Code::BFI_A1 => BfiA1::size(instr),
Code::BICS_i_A1 => BicsIA1::size(instr),
Code::BICS_r_A1 => BicsRA1::size(instr),
Code::BICS_r_A1_RRX => BicsRA1Rrx::size(instr),
Code::BICS_rr_A1 => BicsRrA1::size(instr),
Code::BIC_i_A1 => BicIA1::size(instr),
Code::BIC_r_A1 => BicRA1::size(instr),
Code::BIC_r_A1_RRX => BicRA1Rrx::size(instr),
Code::BIC_rr_A1 => BicRrA1::size(instr),
Code::BKPT_A1 => BkptA1::size(instr),
Code::BLX_r_A1 => BlxRA1::size(instr),
Code::BL_i_A1 => BlIA1::size(instr),
Code::BL_i_A2 => BlIA2::size(instr),
Code::BXJ_A1 => BxjA1::size(instr),
Code::BX_A1 => BxA1::size(instr),
Code::B_A1 => BA1::size(instr),
Code::CLRBHB_A1 => ClrbhbA1::size(instr),
Code::CLREX_A1 => ClrexA1::size(instr),
Code::CLZ_A1 => ClzA1::size(instr),
Code::CMN_i_A1 => CmnIA1::size(instr),
Code::CMN_r_A1 => CmnRA1::size(instr),
Code::CMN_r_A1_RRX => CmnRA1Rrx::size(instr),
Code::CMN_rr_A1 => CmnRrA1::size(instr),
Code::CMP_i_A1 => CmpIA1::size(instr),
Code::CMP_r_A1 => CmpRA1::size(instr),
Code::CMP_r_A1_RRX => CmpRA1Rrx::size(instr),
Code::CMP_rr_A1 => CmpRrA1::size(instr),
Code::CPSID_A1_AS => CpsidA1As::size(instr),
Code::CPSID_A1_ASM => CpsidA1Asm::size(instr),
Code::CPSIE_A1_AS => CpsieA1As::size(instr),
Code::CPSIE_A1_ASM => CpsieA1Asm::size(instr),
Code::CPS_A1_AS => CpsA1As::size(instr),
Code::CRC32B_A1 => Crc32bA1::size(instr),
Code::CRC32CB_A1 => Crc32cbA1::size(instr),
Code::CRC32CH_A1 => Crc32chA1::size(instr),
Code::CRC32CW_A1 => Crc32cwA1::size(instr),
Code::CRC32H_A1 => Crc32hA1::size(instr),
Code::CRC32W_A1 => Crc32wA1::size(instr),
Code::CSDB_A1 => CsdbA1::size(instr),
Code::DBG_A1 => DbgA1::size(instr),
Code::DMB_A1 => DmbA1::size(instr),
Code::DSB_A1 => DsbA1::size(instr),
Code::EORS_i_A1 => EorsIA1::size(instr),
Code::EORS_r_A1 => EorsRA1::size(instr),
Code::EORS_r_A1_RRX => EorsRA1Rrx::size(instr),
Code::EORS_rr_A1 => EorsRrA1::size(instr),
Code::EOR_i_A1 => EorIA1::size(instr),
Code::EOR_r_A1 => EorRA1::size(instr),
Code::EOR_r_A1_RRX => EorRA1Rrx::size(instr),
Code::EOR_rr_A1 => EorRrA1::size(instr),
Code::ERET_A1 => EretA1::size(instr),
Code::ESB_A1 => EsbA1::size(instr),
Code::HLT_A1 => HltA1::size(instr),
Code::HVC_A1 => HvcA1::size(instr),
Code::ISB_A1 => IsbA1::size(instr),
Code::LDAB_A1 => LdabA1::size(instr),
Code::LDAEXB_A1 => LdaexbA1::size(instr),
Code::LDAEXD_A1 => LdaexdA1::size(instr),
Code::LDAEXH_A1 => LdaexhA1::size(instr),
Code::LDAEX_A1 => LdaexA1::size(instr),
Code::LDAH_A1 => LdahA1::size(instr),
Code::LDA_A1 => LdaA1::size(instr),
Code::LDC_i_A1_off => LdcIA1Off::size(instr),
Code::LDC_i_A1_post => LdcIA1Post::size(instr),
Code::LDC_i_A1_pre => LdcIA1Pre::size(instr),
Code::LDC_i_A1_unind => LdcIA1Unind::size(instr),
Code::LDC_l_A1_off => LdcLA1Off::size(instr),
Code::LDC_l_A1_post => LdcLA1Post::size(instr),
Code::LDC_l_A1_pre => LdcLA1Pre::size(instr),
Code::LDC_l_A1_unind => LdcLA1Unind::size(instr),
Code::LDMDA_A1 => LdmdaA1::size(instr),
Code::LDMDB_A1 => LdmdbA1::size(instr),
Code::LDMIB_A1 => LdmibA1::size(instr),
Code::LDM_A1 => LdmA1::size(instr),
Code::LDM_e_A1_AS => LdmEA1As::size(instr),
Code::LDM_u_A1_AS => LdmUA1As::size(instr),
Code::LDRBT_A1 => LdrbtA1::size(instr),
Code::LDRBT_A2 => LdrbtA2::size(instr),
Code::LDRB_i_A1_off => LdrbIA1Off::size(instr),
Code::LDRB_i_A1_post => LdrbIA1Post::size(instr),
Code::LDRB_i_A1_pre => LdrbIA1Pre::size(instr),
Code::LDRB_l_A1_off => LdrbLA1Off::size(instr),
Code::LDRB_l_A1_post => LdrbLA1Post::size(instr),
Code::LDRB_l_A1_pre => LdrbLA1Pre::size(instr),
Code::LDRB_r_A1_off => LdrbRA1Off::size(instr),
Code::LDRB_r_A1_post => LdrbRA1Post::size(instr),
Code::LDRB_r_A1_pre => LdrbRA1Pre::size(instr),
Code::LDRD_i_A1_off => LdrdIA1Off::size(instr),
Code::LDRD_i_A1_post => LdrdIA1Post::size(instr),
Code::LDRD_i_A1_pre => LdrdIA1Pre::size(instr),
Code::LDRD_l_A1_off => LdrdLA1Off::size(instr),
Code::LDRD_l_A1_post => LdrdLA1Post::size(instr),
Code::LDRD_l_A1_pre => LdrdLA1Pre::size(instr),
Code::LDRD_r_A1_off => LdrdRA1Off::size(instr),
Code::LDRD_r_A1_post => LdrdRA1Post::size(instr),
Code::LDRD_r_A1_pre => LdrdRA1Pre::size(instr),
Code::LDREXB_A1 => LdrexbA1::size(instr),
Code::LDREXD_A1 => LdrexdA1::size(instr),
Code::LDREXH_A1 => LdrexhA1::size(instr),
Code::LDREX_A1 => LdrexA1::size(instr),
Code::LDRHT_A1 => LdrhtA1::size(instr),
Code::LDRHT_A2 => LdrhtA2::size(instr),
Code::LDRH_i_A1_off => LdrhIA1Off::size(instr),
Code::LDRH_i_A1_post => LdrhIA1Post::size(instr),
Code::LDRH_i_A1_pre => LdrhIA1Pre::size(instr),
Code::LDRH_l_A1_off => LdrhLA1Off::size(instr),
Code::LDRH_l_A1_post => LdrhLA1Post::size(instr),
Code::LDRH_l_A1_pre => LdrhLA1Pre::size(instr),
Code::LDRH_r_A1_off => LdrhRA1Off::size(instr),
Code::LDRH_r_A1_post => LdrhRA1Post::size(instr),
Code::LDRH_r_A1_pre => LdrhRA1Pre::size(instr),
Code::LDRSBT_A1 => LdrsbtA1::size(instr),
Code::LDRSBT_A2 => LdrsbtA2::size(instr),
Code::LDRSB_i_A1_off => LdrsbIA1Off::size(instr),
Code::LDRSB_i_A1_post => LdrsbIA1Post::size(instr),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::size(instr),
Code::LDRSB_l_A1_off => LdrsbLA1Off::size(instr),
Code::LDRSB_l_A1_post => LdrsbLA1Post::size(instr),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::size(instr),
Code::LDRSB_r_A1_off => LdrsbRA1Off::size(instr),
Code::LDRSB_r_A1_post => LdrsbRA1Post::size(instr),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::size(instr),
Code::LDRSHT_A1 => LdrshtA1::size(instr),
Code::LDRSHT_A2 => LdrshtA2::size(instr),
Code::LDRSH_i_A1_off => LdrshIA1Off::size(instr),
Code::LDRSH_i_A1_post => LdrshIA1Post::size(instr),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::size(instr),
Code::LDRSH_l_A1_off => LdrshLA1Off::size(instr),
Code::LDRSH_l_A1_post => LdrshLA1Post::size(instr),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::size(instr),
Code::LDRSH_r_A1_off => LdrshRA1Off::size(instr),
Code::LDRSH_r_A1_post => LdrshRA1Post::size(instr),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::size(instr),
Code::LDRT_A1 => LdrtA1::size(instr),
Code::LDRT_A2 => LdrtA2::size(instr),
Code::LDR_i_A1_off => LdrIA1Off::size(instr),
Code::LDR_i_A1_post => LdrIA1Post::size(instr),
Code::LDR_i_A1_pre => LdrIA1Pre::size(instr),
Code::LDR_l_A1_off => LdrLA1Off::size(instr),
Code::LDR_l_A1_post => LdrLA1Post::size(instr),
Code::LDR_l_A1_pre => LdrLA1Pre::size(instr),
Code::LDR_r_A1_off => LdrRA1Off::size(instr),
Code::LDR_r_A1_post => LdrRA1Post::size(instr),
Code::LDR_r_A1_pre => LdrRA1Pre::size(instr),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::size(instr),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::size(instr),
Code::LSL_MOV_r_A1 => LslMovRA1::size(instr),
Code::LSL_MOV_rr_A1 => LslMovRrA1::size(instr),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::size(instr),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::size(instr),
Code::LSR_MOV_r_A1 => LsrMovRA1::size(instr),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::size(instr),
Code::MCRR_A1 => McrrA1::size(instr),
Code::MCR_A1 => McrA1::size(instr),
Code::MLAS_A1 => MlasA1::size(instr),
Code::MLA_A1 => MlaA1::size(instr),
Code::MLS_A1 => MlsA1::size(instr),
Code::MOVS_i_A1 => MovsIA1::size(instr),
Code::MOVS_r_A1 => MovsRA1::size(instr),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::size(instr),
Code::MOVS_rr_A1 => MovsRrA1::size(instr),
Code::MOVT_A1 => MovtA1::size(instr),
Code::MOV_i_A1 => MovIA1::size(instr),
Code::MOV_i_A2 => MovIA2::size(instr),
Code::MOV_r_A1 => MovRA1::size(instr),
Code::MOV_r_A1_RRX => MovRA1Rrx::size(instr),
Code::MOV_rr_A1 => MovRrA1::size(instr),
Code::MRC_A1 => MrcA1::size(instr),
Code::MRRC_A1 => MrrcA1::size(instr),
Code::MRS_A1_AS => MrsA1As::size(instr),
Code::MRS_br_A1_AS => MrsBrA1As::size(instr),
Code::MSR_br_A1_AS => MsrBrA1As::size(instr),
Code::MSR_i_A1_AS => MsrIA1As::size(instr),
Code::MSR_r_A1_AS => MsrRA1As::size(instr),
Code::MULS_A1 => MulsA1::size(instr),
Code::MUL_A1 => MulA1::size(instr),
Code::MVNS_i_A1 => MvnsIA1::size(instr),
Code::MVNS_r_A1 => MvnsRA1::size(instr),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::size(instr),
Code::MVNS_rr_A1 => MvnsRrA1::size(instr),
Code::MVN_i_A1 => MvnIA1::size(instr),
Code::MVN_r_A1 => MvnRA1::size(instr),
Code::MVN_r_A1_RRX => MvnRA1Rrx::size(instr),
Code::MVN_rr_A1 => MvnRrA1::size(instr),
Code::NOP_A1 => NopA1::size(instr),
Code::ORRS_i_A1 => OrrsIA1::size(instr),
Code::ORRS_r_A1 => OrrsRA1::size(instr),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::size(instr),
Code::ORRS_rr_A1 => OrrsRrA1::size(instr),
Code::ORR_i_A1 => OrrIA1::size(instr),
Code::ORR_r_A1 => OrrRA1::size(instr),
Code::ORR_r_A1_RRX => OrrRA1Rrx::size(instr),
Code::ORR_rr_A1 => OrrRrA1::size(instr),
Code::PKHBT_A1 => PkhbtA1::size(instr),
Code::PKHTB_A1 => PkhtbA1::size(instr),
Code::PLDW_i_A1 => PldwIA1::size(instr),
Code::PLDW_l_A1 => PldwLA1::size(instr),
Code::PLDW_r_A1 => PldwRA1::size(instr),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::size(instr),
Code::PLD_i_A1 => PldIA1::size(instr),
Code::PLD_l_A1 => PldLA1::size(instr),
Code::PLD_r_A1 => PldRA1::size(instr),
Code::PLD_r_A1_RRX => PldRA1Rrx::size(instr),
Code::PLI_i_A1 => PliIA1::size(instr),
Code::PLI_r_A1 => PliRA1::size(instr),
Code::PLI_r_A1_RRX => PliRA1Rrx::size(instr),
Code::POP_LDM_A1 => PopLdmA1::size(instr),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::size(instr),
Code::PSSBB_A1 => PssbbA1::size(instr),
Code::PUSH_STMDB_A1 => PushStmdbA1::size(instr),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::size(instr),
Code::QADD16_A1 => Qadd16A1::size(instr),
Code::QADD8_A1 => Qadd8A1::size(instr),
Code::QADD_A1 => QaddA1::size(instr),
Code::QASX_A1 => QasxA1::size(instr),
Code::QDADD_A1 => QdaddA1::size(instr),
Code::QDSUB_A1 => QdsubA1::size(instr),
Code::QSAX_A1 => QsaxA1::size(instr),
Code::QSUB16_A1 => Qsub16A1::size(instr),
Code::QSUB8_A1 => Qsub8A1::size(instr),
Code::QSUB_A1 => QsubA1::size(instr),
Code::RBIT_A1 => RbitA1::size(instr),
Code::REV16_A1 => Rev16A1::size(instr),
Code::REVSH_A1 => RevshA1::size(instr),
Code::REV_A1 => RevA1::size(instr),
Code::RFEDA_A1_AS => RfedaA1As::size(instr),
Code::RFEDB_A1_AS => RfedbA1As::size(instr),
Code::RFEIA_A1_AS => RfeiaA1As::size(instr),
Code::RFEIB_A1_AS => RfeibA1As::size(instr),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::size(instr),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::size(instr),
Code::ROR_MOV_r_A1 => RorMovRA1::size(instr),
Code::ROR_MOV_rr_A1 => RorMovRrA1::size(instr),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::size(instr),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::size(instr),
Code::RSBS_i_A1 => RsbsIA1::size(instr),
Code::RSBS_r_A1 => RsbsRA1::size(instr),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::size(instr),
Code::RSBS_rr_A1 => RsbsRrA1::size(instr),
Code::RSB_i_A1 => RsbIA1::size(instr),
Code::RSB_r_A1 => RsbRA1::size(instr),
Code::RSB_r_A1_RRX => RsbRA1Rrx::size(instr),
Code::RSB_rr_A1 => RsbRrA1::size(instr),
Code::RSCS_i_A1 => RscsIA1::size(instr),
Code::RSCS_r_A1 => RscsRA1::size(instr),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::size(instr),
Code::RSCS_rr_A1 => RscsRrA1::size(instr),
Code::RSC_i_A1 => RscIA1::size(instr),
Code::RSC_r_A1 => RscRA1::size(instr),
Code::RSC_r_A1_RRX => RscRA1Rrx::size(instr),
Code::RSC_rr_A1 => RscRrA1::size(instr),
Code::SADD16_A1 => Sadd16A1::size(instr),
Code::SADD8_A1 => Sadd8A1::size(instr),
Code::SASX_A1 => SasxA1::size(instr),
Code::SBCS_i_A1 => SbcsIA1::size(instr),
Code::SBCS_r_A1 => SbcsRA1::size(instr),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::size(instr),
Code::SBCS_rr_A1 => SbcsRrA1::size(instr),
Code::SBC_i_A1 => SbcIA1::size(instr),
Code::SBC_r_A1 => SbcRA1::size(instr),
Code::SBC_r_A1_RRX => SbcRA1Rrx::size(instr),
Code::SBC_rr_A1 => SbcRrA1::size(instr),
Code::SBFX_A1 => SbfxA1::size(instr),
Code::SB_A1 => SbA1::size(instr),
Code::SDIV_A1 => SdivA1::size(instr),
Code::SEL_A1 => SelA1::size(instr),
Code::SETEND_A1 => SetendA1::size(instr),
Code::SETPAN_A1 => SetpanA1::size(instr),
Code::SEVL_A1 => SevlA1::size(instr),
Code::SEV_A1 => SevA1::size(instr),
Code::SHADD16_A1 => Shadd16A1::size(instr),
Code::SHADD8_A1 => Shadd8A1::size(instr),
Code::SHASX_A1 => ShasxA1::size(instr),
Code::SHSAX_A1 => ShsaxA1::size(instr),
Code::SHSUB16_A1 => Shsub16A1::size(instr),
Code::SHSUB8_A1 => Shsub8A1::size(instr),
Code::SMC_A1_AS => SmcA1As::size(instr),
Code::SMLABB_A1 => SmlabbA1::size(instr),
Code::SMLABT_A1 => SmlabtA1::size(instr),
Code::SMLADX_A1 => SmladxA1::size(instr),
Code::SMLAD_A1 => SmladA1::size(instr),
Code::SMLALBB_A1 => SmlalbbA1::size(instr),
Code::SMLALBT_A1 => SmlalbtA1::size(instr),
Code::SMLALDX_A1 => SmlaldxA1::size(instr),
Code::SMLALD_A1 => SmlaldA1::size(instr),
Code::SMLALS_A1 => SmlalsA1::size(instr),
Code::SMLALTB_A1 => SmlaltbA1::size(instr),
Code::SMLALTT_A1 => SmlalttA1::size(instr),
Code::SMLAL_A1 => SmlalA1::size(instr),
Code::SMLATB_A1 => SmlatbA1::size(instr),
Code::SMLATT_A1 => SmlattA1::size(instr),
Code::SMLAWB_A1 => SmlawbA1::size(instr),
Code::SMLAWT_A1 => SmlawtA1::size(instr),
Code::SMLSDX_A1 => SmlsdxA1::size(instr),
Code::SMLSD_A1 => SmlsdA1::size(instr),
Code::SMLSLDX_A1 => SmlsldxA1::size(instr),
Code::SMLSLD_A1 => SmlsldA1::size(instr),
Code::SMMLAR_A1 => SmmlarA1::size(instr),
Code::SMMLA_A1 => SmmlaA1::size(instr),
Code::SMMLSR_A1 => SmmlsrA1::size(instr),
Code::SMMLS_A1 => SmmlsA1::size(instr),
Code::SMMULR_A1 => SmmulrA1::size(instr),
Code::SMMUL_A1 => SmmulA1::size(instr),
Code::SMUADX_A1 => SmuadxA1::size(instr),
Code::SMUAD_A1 => SmuadA1::size(instr),
Code::SMULBB_A1 => SmulbbA1::size(instr),
Code::SMULBT_A1 => SmulbtA1::size(instr),
Code::SMULLS_A1 => SmullsA1::size(instr),
Code::SMULL_A1 => SmullA1::size(instr),
Code::SMULTB_A1 => SmultbA1::size(instr),
Code::SMULTT_A1 => SmulttA1::size(instr),
Code::SMULWB_A1 => SmulwbA1::size(instr),
Code::SMULWT_A1 => SmulwtA1::size(instr),
Code::SMUSDX_A1 => SmusdxA1::size(instr),
Code::SMUSD_A1 => SmusdA1::size(instr),
Code::SRSDA_A1_AS => SrsdaA1As::size(instr),
Code::SRSDB_A1_AS => SrsdbA1As::size(instr),
Code::SRSIA_A1_AS => SrsiaA1As::size(instr),
Code::SRSIB_A1_AS => SrsibA1As::size(instr),
Code::SSAT16_A1 => Ssat16A1::size(instr),
Code::SSAT_A1_ASR => SsatA1Asr::size(instr),
Code::SSAT_A1_LSL => SsatA1Lsl::size(instr),
Code::SSAX_A1 => SsaxA1::size(instr),
Code::SSBB_A1 => SsbbA1::size(instr),
Code::SSUB16_A1 => Ssub16A1::size(instr),
Code::SSUB8_A1 => Ssub8A1::size(instr),
Code::STC_A1_off => StcA1Off::size(instr),
Code::STC_A1_post => StcA1Post::size(instr),
Code::STC_A1_pre => StcA1Pre::size(instr),
Code::STC_A1_unind => StcA1Unind::size(instr),
Code::STLB_A1 => StlbA1::size(instr),
Code::STLEXB_A1 => StlexbA1::size(instr),
Code::STLEXD_A1 => StlexdA1::size(instr),
Code::STLEXH_A1 => StlexhA1::size(instr),
Code::STLEX_A1 => StlexA1::size(instr),
Code::STLH_A1 => StlhA1::size(instr),
Code::STL_A1 => StlA1::size(instr),
Code::STMDA_A1 => StmdaA1::size(instr),
Code::STMDB_A1 => StmdbA1::size(instr),
Code::STMIB_A1 => StmibA1::size(instr),
Code::STM_A1 => StmA1::size(instr),
Code::STM_u_A1_AS => StmUA1As::size(instr),
Code::STRBT_A1 => StrbtA1::size(instr),
Code::STRBT_A2 => StrbtA2::size(instr),
Code::STRB_i_A1_off => StrbIA1Off::size(instr),
Code::STRB_i_A1_post => StrbIA1Post::size(instr),
Code::STRB_i_A1_pre => StrbIA1Pre::size(instr),
Code::STRB_r_A1_off => StrbRA1Off::size(instr),
Code::STRB_r_A1_post => StrbRA1Post::size(instr),
Code::STRB_r_A1_pre => StrbRA1Pre::size(instr),
Code::STRD_i_A1_off => StrdIA1Off::size(instr),
Code::STRD_i_A1_post => StrdIA1Post::size(instr),
Code::STRD_i_A1_pre => StrdIA1Pre::size(instr),
Code::STRD_r_A1_off => StrdRA1Off::size(instr),
Code::STRD_r_A1_post => StrdRA1Post::size(instr),
Code::STRD_r_A1_pre => StrdRA1Pre::size(instr),
Code::STREXB_A1 => StrexbA1::size(instr),
Code::STREXD_A1 => StrexdA1::size(instr),
Code::STREXH_A1 => StrexhA1::size(instr),
Code::STREX_A1 => StrexA1::size(instr),
Code::STRHT_A1 => StrhtA1::size(instr),
Code::STRHT_A2 => StrhtA2::size(instr),
Code::STRH_i_A1_off => StrhIA1Off::size(instr),
Code::STRH_i_A1_post => StrhIA1Post::size(instr),
Code::STRH_i_A1_pre => StrhIA1Pre::size(instr),
Code::STRH_r_A1_off => StrhRA1Off::size(instr),
Code::STRH_r_A1_post => StrhRA1Post::size(instr),
Code::STRH_r_A1_pre => StrhRA1Pre::size(instr),
Code::STRT_A1 => StrtA1::size(instr),
Code::STRT_A2 => StrtA2::size(instr),
Code::STR_i_A1_off => StrIA1Off::size(instr),
Code::STR_i_A1_post => StrIA1Post::size(instr),
Code::STR_i_A1_pre => StrIA1Pre::size(instr),
Code::STR_r_A1_off => StrRA1Off::size(instr),
Code::STR_r_A1_post => StrRA1Post::size(instr),
Code::STR_r_A1_pre => StrRA1Pre::size(instr),
Code::SUBS_SP_i_A1 => SubsSpIA1::size(instr),
Code::SUBS_SP_r_A1 => SubsSpRA1::size(instr),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::size(instr),
Code::SUBS_i_A1 => SubsIA1::size(instr),
Code::SUBS_r_A1 => SubsRA1::size(instr),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::size(instr),
Code::SUBS_rr_A1 => SubsRrA1::size(instr),
Code::SUB_ADR_A2 => SubAdrA2::size(instr),
Code::SUB_SP_i_A1 => SubSpIA1::size(instr),
Code::SUB_SP_r_A1 => SubSpRA1::size(instr),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::size(instr),
Code::SUB_i_A1 => SubIA1::size(instr),
Code::SUB_r_A1 => SubRA1::size(instr),
Code::SUB_r_A1_RRX => SubRA1Rrx::size(instr),
Code::SUB_rr_A1 => SubRrA1::size(instr),
Code::SVC_A1 => SvcA1::size(instr),
Code::SXTAB16_A1 => Sxtab16A1::size(instr),
Code::SXTAB_A1 => SxtabA1::size(instr),
Code::SXTAH_A1 => SxtahA1::size(instr),
Code::SXTB16_A1 => Sxtb16A1::size(instr),
Code::SXTB_A1 => SxtbA1::size(instr),
Code::SXTH_A1 => SxthA1::size(instr),
Code::TEQ_i_A1 => TeqIA1::size(instr),
Code::TEQ_r_A1 => TeqRA1::size(instr),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::size(instr),
Code::TEQ_rr_A1 => TeqRrA1::size(instr),
Code::TSB_A1 => TsbA1::size(instr),
Code::TST_i_A1 => TstIA1::size(instr),
Code::TST_r_A1 => TstRA1::size(instr),
Code::TST_r_A1_RRX => TstRA1Rrx::size(instr),
Code::TST_rr_A1 => TstRrA1::size(instr),
Code::UADD16_A1 => Uadd16A1::size(instr),
Code::UADD8_A1 => Uadd8A1::size(instr),
Code::UASX_A1 => UasxA1::size(instr),
Code::UBFX_A1 => UbfxA1::size(instr),
Code::UDF_A1 => UdfA1::size(instr),
Code::UDIV_A1 => UdivA1::size(instr),
Code::UHADD16_A1 => Uhadd16A1::size(instr),
Code::UHADD8_A1 => Uhadd8A1::size(instr),
Code::UHASX_A1 => UhasxA1::size(instr),
Code::UHSAX_A1 => UhsaxA1::size(instr),
Code::UHSUB16_A1 => Uhsub16A1::size(instr),
Code::UHSUB8_A1 => Uhsub8A1::size(instr),
Code::UMAAL_A1 => UmaalA1::size(instr),
Code::UMLALS_A1 => UmlalsA1::size(instr),
Code::UMLAL_A1 => UmlalA1::size(instr),
Code::UMULLS_A1 => UmullsA1::size(instr),
Code::UMULL_A1 => UmullA1::size(instr),
Code::UQADD16_A1 => Uqadd16A1::size(instr),
Code::UQADD8_A1 => Uqadd8A1::size(instr),
Code::UQASX_A1 => UqasxA1::size(instr),
Code::UQSAX_A1 => UqsaxA1::size(instr),
Code::UQSUB16_A1 => Uqsub16A1::size(instr),
Code::UQSUB8_A1 => Uqsub8A1::size(instr),
Code::USAD8_A1 => Usad8A1::size(instr),
Code::USADA8_A1 => Usada8A1::size(instr),
Code::USAT16_A1 => Usat16A1::size(instr),
Code::USAT_A1_ASR => UsatA1Asr::size(instr),
Code::USAT_A1_LSL => UsatA1Lsl::size(instr),
Code::USAX_A1 => UsaxA1::size(instr),
Code::USUB16_A1 => Usub16A1::size(instr),
Code::USUB8_A1 => Usub8A1::size(instr),
Code::UXTAB16_A1 => Uxtab16A1::size(instr),
Code::UXTAB_A1 => UxtabA1::size(instr),
Code::UXTAH_A1 => UxtahA1::size(instr),
Code::UXTB16_A1 => Uxtb16A1::size(instr),
Code::UXTB_A1 => UxtbA1::size(instr),
Code::UXTH_A1 => UxthA1::size(instr),
Code::WFE_A1 => WfeA1::size(instr),
Code::WFI_A1 => WfiA1::size(instr),
Code::YIELD_A1 => YieldA1::size(instr),
}
}
pub fn condition(&self, instr: &Instruction) -> ConditionalInstruction {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::condition(instr),
Code::ADCS_r_A1 => AdcsRA1::condition(instr),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::condition(instr),
Code::ADCS_rr_A1 => AdcsRrA1::condition(instr),
Code::ADC_i_A1 => AdcIA1::condition(instr),
Code::ADC_r_A1 => AdcRA1::condition(instr),
Code::ADC_r_A1_RRX => AdcRA1Rrx::condition(instr),
Code::ADC_rr_A1 => AdcRrA1::condition(instr),
Code::ADDS_SP_i_A1 => AddsSpIA1::condition(instr),
Code::ADDS_SP_r_A1 => AddsSpRA1::condition(instr),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::condition(instr),
Code::ADDS_i_A1 => AddsIA1::condition(instr),
Code::ADDS_r_A1 => AddsRA1::condition(instr),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::condition(instr),
Code::ADDS_rr_A1 => AddsRrA1::condition(instr),
Code::ADD_ADR_A1 => AddAdrA1::condition(instr),
Code::ADD_SP_i_A1 => AddSpIA1::condition(instr),
Code::ADD_SP_r_A1 => AddSpRA1::condition(instr),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::condition(instr),
Code::ADD_i_A1 => AddIA1::condition(instr),
Code::ADD_r_A1 => AddRA1::condition(instr),
Code::ADD_r_A1_RRX => AddRA1Rrx::condition(instr),
Code::ADD_rr_A1 => AddRrA1::condition(instr),
Code::ADR_A1 => AdrA1::condition(instr),
Code::ADR_A2 => AdrA2::condition(instr),
Code::ANDS_i_A1 => AndsIA1::condition(instr),
Code::ANDS_r_A1 => AndsRA1::condition(instr),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::condition(instr),
Code::ANDS_rr_A1 => AndsRrA1::condition(instr),
Code::AND_i_A1 => AndIA1::condition(instr),
Code::AND_r_A1 => AndRA1::condition(instr),
Code::AND_r_A1_RRX => AndRA1Rrx::condition(instr),
Code::AND_rr_A1 => AndRrA1::condition(instr),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::condition(instr),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::condition(instr),
Code::ASR_MOV_r_A1 => AsrMovRA1::condition(instr),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::condition(instr),
Code::BFC_A1 => BfcA1::condition(instr),
Code::BFI_A1 => BfiA1::condition(instr),
Code::BICS_i_A1 => BicsIA1::condition(instr),
Code::BICS_r_A1 => BicsRA1::condition(instr),
Code::BICS_r_A1_RRX => BicsRA1Rrx::condition(instr),
Code::BICS_rr_A1 => BicsRrA1::condition(instr),
Code::BIC_i_A1 => BicIA1::condition(instr),
Code::BIC_r_A1 => BicRA1::condition(instr),
Code::BIC_r_A1_RRX => BicRA1Rrx::condition(instr),
Code::BIC_rr_A1 => BicRrA1::condition(instr),
Code::BKPT_A1 => BkptA1::condition(instr),
Code::BLX_r_A1 => BlxRA1::condition(instr),
Code::BL_i_A1 => BlIA1::condition(instr),
Code::BL_i_A2 => BlIA2::condition(instr),
Code::BXJ_A1 => BxjA1::condition(instr),
Code::BX_A1 => BxA1::condition(instr),
Code::B_A1 => BA1::condition(instr),
Code::CLRBHB_A1 => ClrbhbA1::condition(instr),
Code::CLREX_A1 => ClrexA1::condition(instr),
Code::CLZ_A1 => ClzA1::condition(instr),
Code::CMN_i_A1 => CmnIA1::condition(instr),
Code::CMN_r_A1 => CmnRA1::condition(instr),
Code::CMN_r_A1_RRX => CmnRA1Rrx::condition(instr),
Code::CMN_rr_A1 => CmnRrA1::condition(instr),
Code::CMP_i_A1 => CmpIA1::condition(instr),
Code::CMP_r_A1 => CmpRA1::condition(instr),
Code::CMP_r_A1_RRX => CmpRA1Rrx::condition(instr),
Code::CMP_rr_A1 => CmpRrA1::condition(instr),
Code::CPSID_A1_AS => CpsidA1As::condition(instr),
Code::CPSID_A1_ASM => CpsidA1Asm::condition(instr),
Code::CPSIE_A1_AS => CpsieA1As::condition(instr),
Code::CPSIE_A1_ASM => CpsieA1Asm::condition(instr),
Code::CPS_A1_AS => CpsA1As::condition(instr),
Code::CRC32B_A1 => Crc32bA1::condition(instr),
Code::CRC32CB_A1 => Crc32cbA1::condition(instr),
Code::CRC32CH_A1 => Crc32chA1::condition(instr),
Code::CRC32CW_A1 => Crc32cwA1::condition(instr),
Code::CRC32H_A1 => Crc32hA1::condition(instr),
Code::CRC32W_A1 => Crc32wA1::condition(instr),
Code::CSDB_A1 => CsdbA1::condition(instr),
Code::DBG_A1 => DbgA1::condition(instr),
Code::DMB_A1 => DmbA1::condition(instr),
Code::DSB_A1 => DsbA1::condition(instr),
Code::EORS_i_A1 => EorsIA1::condition(instr),
Code::EORS_r_A1 => EorsRA1::condition(instr),
Code::EORS_r_A1_RRX => EorsRA1Rrx::condition(instr),
Code::EORS_rr_A1 => EorsRrA1::condition(instr),
Code::EOR_i_A1 => EorIA1::condition(instr),
Code::EOR_r_A1 => EorRA1::condition(instr),
Code::EOR_r_A1_RRX => EorRA1Rrx::condition(instr),
Code::EOR_rr_A1 => EorRrA1::condition(instr),
Code::ERET_A1 => EretA1::condition(instr),
Code::ESB_A1 => EsbA1::condition(instr),
Code::HLT_A1 => HltA1::condition(instr),
Code::HVC_A1 => HvcA1::condition(instr),
Code::ISB_A1 => IsbA1::condition(instr),
Code::LDAB_A1 => LdabA1::condition(instr),
Code::LDAEXB_A1 => LdaexbA1::condition(instr),
Code::LDAEXD_A1 => LdaexdA1::condition(instr),
Code::LDAEXH_A1 => LdaexhA1::condition(instr),
Code::LDAEX_A1 => LdaexA1::condition(instr),
Code::LDAH_A1 => LdahA1::condition(instr),
Code::LDA_A1 => LdaA1::condition(instr),
Code::LDC_i_A1_off => LdcIA1Off::condition(instr),
Code::LDC_i_A1_post => LdcIA1Post::condition(instr),
Code::LDC_i_A1_pre => LdcIA1Pre::condition(instr),
Code::LDC_i_A1_unind => LdcIA1Unind::condition(instr),
Code::LDC_l_A1_off => LdcLA1Off::condition(instr),
Code::LDC_l_A1_post => LdcLA1Post::condition(instr),
Code::LDC_l_A1_pre => LdcLA1Pre::condition(instr),
Code::LDC_l_A1_unind => LdcLA1Unind::condition(instr),
Code::LDMDA_A1 => LdmdaA1::condition(instr),
Code::LDMDB_A1 => LdmdbA1::condition(instr),
Code::LDMIB_A1 => LdmibA1::condition(instr),
Code::LDM_A1 => LdmA1::condition(instr),
Code::LDM_e_A1_AS => LdmEA1As::condition(instr),
Code::LDM_u_A1_AS => LdmUA1As::condition(instr),
Code::LDRBT_A1 => LdrbtA1::condition(instr),
Code::LDRBT_A2 => LdrbtA2::condition(instr),
Code::LDRB_i_A1_off => LdrbIA1Off::condition(instr),
Code::LDRB_i_A1_post => LdrbIA1Post::condition(instr),
Code::LDRB_i_A1_pre => LdrbIA1Pre::condition(instr),
Code::LDRB_l_A1_off => LdrbLA1Off::condition(instr),
Code::LDRB_l_A1_post => LdrbLA1Post::condition(instr),
Code::LDRB_l_A1_pre => LdrbLA1Pre::condition(instr),
Code::LDRB_r_A1_off => LdrbRA1Off::condition(instr),
Code::LDRB_r_A1_post => LdrbRA1Post::condition(instr),
Code::LDRB_r_A1_pre => LdrbRA1Pre::condition(instr),
Code::LDRD_i_A1_off => LdrdIA1Off::condition(instr),
Code::LDRD_i_A1_post => LdrdIA1Post::condition(instr),
Code::LDRD_i_A1_pre => LdrdIA1Pre::condition(instr),
Code::LDRD_l_A1_off => LdrdLA1Off::condition(instr),
Code::LDRD_l_A1_post => LdrdLA1Post::condition(instr),
Code::LDRD_l_A1_pre => LdrdLA1Pre::condition(instr),
Code::LDRD_r_A1_off => LdrdRA1Off::condition(instr),
Code::LDRD_r_A1_post => LdrdRA1Post::condition(instr),
Code::LDRD_r_A1_pre => LdrdRA1Pre::condition(instr),
Code::LDREXB_A1 => LdrexbA1::condition(instr),
Code::LDREXD_A1 => LdrexdA1::condition(instr),
Code::LDREXH_A1 => LdrexhA1::condition(instr),
Code::LDREX_A1 => LdrexA1::condition(instr),
Code::LDRHT_A1 => LdrhtA1::condition(instr),
Code::LDRHT_A2 => LdrhtA2::condition(instr),
Code::LDRH_i_A1_off => LdrhIA1Off::condition(instr),
Code::LDRH_i_A1_post => LdrhIA1Post::condition(instr),
Code::LDRH_i_A1_pre => LdrhIA1Pre::condition(instr),
Code::LDRH_l_A1_off => LdrhLA1Off::condition(instr),
Code::LDRH_l_A1_post => LdrhLA1Post::condition(instr),
Code::LDRH_l_A1_pre => LdrhLA1Pre::condition(instr),
Code::LDRH_r_A1_off => LdrhRA1Off::condition(instr),
Code::LDRH_r_A1_post => LdrhRA1Post::condition(instr),
Code::LDRH_r_A1_pre => LdrhRA1Pre::condition(instr),
Code::LDRSBT_A1 => LdrsbtA1::condition(instr),
Code::LDRSBT_A2 => LdrsbtA2::condition(instr),
Code::LDRSB_i_A1_off => LdrsbIA1Off::condition(instr),
Code::LDRSB_i_A1_post => LdrsbIA1Post::condition(instr),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::condition(instr),
Code::LDRSB_l_A1_off => LdrsbLA1Off::condition(instr),
Code::LDRSB_l_A1_post => LdrsbLA1Post::condition(instr),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::condition(instr),
Code::LDRSB_r_A1_off => LdrsbRA1Off::condition(instr),
Code::LDRSB_r_A1_post => LdrsbRA1Post::condition(instr),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::condition(instr),
Code::LDRSHT_A1 => LdrshtA1::condition(instr),
Code::LDRSHT_A2 => LdrshtA2::condition(instr),
Code::LDRSH_i_A1_off => LdrshIA1Off::condition(instr),
Code::LDRSH_i_A1_post => LdrshIA1Post::condition(instr),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::condition(instr),
Code::LDRSH_l_A1_off => LdrshLA1Off::condition(instr),
Code::LDRSH_l_A1_post => LdrshLA1Post::condition(instr),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::condition(instr),
Code::LDRSH_r_A1_off => LdrshRA1Off::condition(instr),
Code::LDRSH_r_A1_post => LdrshRA1Post::condition(instr),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::condition(instr),
Code::LDRT_A1 => LdrtA1::condition(instr),
Code::LDRT_A2 => LdrtA2::condition(instr),
Code::LDR_i_A1_off => LdrIA1Off::condition(instr),
Code::LDR_i_A1_post => LdrIA1Post::condition(instr),
Code::LDR_i_A1_pre => LdrIA1Pre::condition(instr),
Code::LDR_l_A1_off => LdrLA1Off::condition(instr),
Code::LDR_l_A1_post => LdrLA1Post::condition(instr),
Code::LDR_l_A1_pre => LdrLA1Pre::condition(instr),
Code::LDR_r_A1_off => LdrRA1Off::condition(instr),
Code::LDR_r_A1_post => LdrRA1Post::condition(instr),
Code::LDR_r_A1_pre => LdrRA1Pre::condition(instr),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::condition(instr),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::condition(instr),
Code::LSL_MOV_r_A1 => LslMovRA1::condition(instr),
Code::LSL_MOV_rr_A1 => LslMovRrA1::condition(instr),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::condition(instr),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::condition(instr),
Code::LSR_MOV_r_A1 => LsrMovRA1::condition(instr),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::condition(instr),
Code::MCRR_A1 => McrrA1::condition(instr),
Code::MCR_A1 => McrA1::condition(instr),
Code::MLAS_A1 => MlasA1::condition(instr),
Code::MLA_A1 => MlaA1::condition(instr),
Code::MLS_A1 => MlsA1::condition(instr),
Code::MOVS_i_A1 => MovsIA1::condition(instr),
Code::MOVS_r_A1 => MovsRA1::condition(instr),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::condition(instr),
Code::MOVS_rr_A1 => MovsRrA1::condition(instr),
Code::MOVT_A1 => MovtA1::condition(instr),
Code::MOV_i_A1 => MovIA1::condition(instr),
Code::MOV_i_A2 => MovIA2::condition(instr),
Code::MOV_r_A1 => MovRA1::condition(instr),
Code::MOV_r_A1_RRX => MovRA1Rrx::condition(instr),
Code::MOV_rr_A1 => MovRrA1::condition(instr),
Code::MRC_A1 => MrcA1::condition(instr),
Code::MRRC_A1 => MrrcA1::condition(instr),
Code::MRS_A1_AS => MrsA1As::condition(instr),
Code::MRS_br_A1_AS => MrsBrA1As::condition(instr),
Code::MSR_br_A1_AS => MsrBrA1As::condition(instr),
Code::MSR_i_A1_AS => MsrIA1As::condition(instr),
Code::MSR_r_A1_AS => MsrRA1As::condition(instr),
Code::MULS_A1 => MulsA1::condition(instr),
Code::MUL_A1 => MulA1::condition(instr),
Code::MVNS_i_A1 => MvnsIA1::condition(instr),
Code::MVNS_r_A1 => MvnsRA1::condition(instr),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::condition(instr),
Code::MVNS_rr_A1 => MvnsRrA1::condition(instr),
Code::MVN_i_A1 => MvnIA1::condition(instr),
Code::MVN_r_A1 => MvnRA1::condition(instr),
Code::MVN_r_A1_RRX => MvnRA1Rrx::condition(instr),
Code::MVN_rr_A1 => MvnRrA1::condition(instr),
Code::NOP_A1 => NopA1::condition(instr),
Code::ORRS_i_A1 => OrrsIA1::condition(instr),
Code::ORRS_r_A1 => OrrsRA1::condition(instr),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::condition(instr),
Code::ORRS_rr_A1 => OrrsRrA1::condition(instr),
Code::ORR_i_A1 => OrrIA1::condition(instr),
Code::ORR_r_A1 => OrrRA1::condition(instr),
Code::ORR_r_A1_RRX => OrrRA1Rrx::condition(instr),
Code::ORR_rr_A1 => OrrRrA1::condition(instr),
Code::PKHBT_A1 => PkhbtA1::condition(instr),
Code::PKHTB_A1 => PkhtbA1::condition(instr),
Code::PLDW_i_A1 => PldwIA1::condition(instr),
Code::PLDW_l_A1 => PldwLA1::condition(instr),
Code::PLDW_r_A1 => PldwRA1::condition(instr),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::condition(instr),
Code::PLD_i_A1 => PldIA1::condition(instr),
Code::PLD_l_A1 => PldLA1::condition(instr),
Code::PLD_r_A1 => PldRA1::condition(instr),
Code::PLD_r_A1_RRX => PldRA1Rrx::condition(instr),
Code::PLI_i_A1 => PliIA1::condition(instr),
Code::PLI_r_A1 => PliRA1::condition(instr),
Code::PLI_r_A1_RRX => PliRA1Rrx::condition(instr),
Code::POP_LDM_A1 => PopLdmA1::condition(instr),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::condition(instr),
Code::PSSBB_A1 => PssbbA1::condition(instr),
Code::PUSH_STMDB_A1 => PushStmdbA1::condition(instr),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::condition(instr),
Code::QADD16_A1 => Qadd16A1::condition(instr),
Code::QADD8_A1 => Qadd8A1::condition(instr),
Code::QADD_A1 => QaddA1::condition(instr),
Code::QASX_A1 => QasxA1::condition(instr),
Code::QDADD_A1 => QdaddA1::condition(instr),
Code::QDSUB_A1 => QdsubA1::condition(instr),
Code::QSAX_A1 => QsaxA1::condition(instr),
Code::QSUB16_A1 => Qsub16A1::condition(instr),
Code::QSUB8_A1 => Qsub8A1::condition(instr),
Code::QSUB_A1 => QsubA1::condition(instr),
Code::RBIT_A1 => RbitA1::condition(instr),
Code::REV16_A1 => Rev16A1::condition(instr),
Code::REVSH_A1 => RevshA1::condition(instr),
Code::REV_A1 => RevA1::condition(instr),
Code::RFEDA_A1_AS => RfedaA1As::condition(instr),
Code::RFEDB_A1_AS => RfedbA1As::condition(instr),
Code::RFEIA_A1_AS => RfeiaA1As::condition(instr),
Code::RFEIB_A1_AS => RfeibA1As::condition(instr),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::condition(instr),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::condition(instr),
Code::ROR_MOV_r_A1 => RorMovRA1::condition(instr),
Code::ROR_MOV_rr_A1 => RorMovRrA1::condition(instr),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::condition(instr),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::condition(instr),
Code::RSBS_i_A1 => RsbsIA1::condition(instr),
Code::RSBS_r_A1 => RsbsRA1::condition(instr),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::condition(instr),
Code::RSBS_rr_A1 => RsbsRrA1::condition(instr),
Code::RSB_i_A1 => RsbIA1::condition(instr),
Code::RSB_r_A1 => RsbRA1::condition(instr),
Code::RSB_r_A1_RRX => RsbRA1Rrx::condition(instr),
Code::RSB_rr_A1 => RsbRrA1::condition(instr),
Code::RSCS_i_A1 => RscsIA1::condition(instr),
Code::RSCS_r_A1 => RscsRA1::condition(instr),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::condition(instr),
Code::RSCS_rr_A1 => RscsRrA1::condition(instr),
Code::RSC_i_A1 => RscIA1::condition(instr),
Code::RSC_r_A1 => RscRA1::condition(instr),
Code::RSC_r_A1_RRX => RscRA1Rrx::condition(instr),
Code::RSC_rr_A1 => RscRrA1::condition(instr),
Code::SADD16_A1 => Sadd16A1::condition(instr),
Code::SADD8_A1 => Sadd8A1::condition(instr),
Code::SASX_A1 => SasxA1::condition(instr),
Code::SBCS_i_A1 => SbcsIA1::condition(instr),
Code::SBCS_r_A1 => SbcsRA1::condition(instr),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::condition(instr),
Code::SBCS_rr_A1 => SbcsRrA1::condition(instr),
Code::SBC_i_A1 => SbcIA1::condition(instr),
Code::SBC_r_A1 => SbcRA1::condition(instr),
Code::SBC_r_A1_RRX => SbcRA1Rrx::condition(instr),
Code::SBC_rr_A1 => SbcRrA1::condition(instr),
Code::SBFX_A1 => SbfxA1::condition(instr),
Code::SB_A1 => SbA1::condition(instr),
Code::SDIV_A1 => SdivA1::condition(instr),
Code::SEL_A1 => SelA1::condition(instr),
Code::SETEND_A1 => SetendA1::condition(instr),
Code::SETPAN_A1 => SetpanA1::condition(instr),
Code::SEVL_A1 => SevlA1::condition(instr),
Code::SEV_A1 => SevA1::condition(instr),
Code::SHADD16_A1 => Shadd16A1::condition(instr),
Code::SHADD8_A1 => Shadd8A1::condition(instr),
Code::SHASX_A1 => ShasxA1::condition(instr),
Code::SHSAX_A1 => ShsaxA1::condition(instr),
Code::SHSUB16_A1 => Shsub16A1::condition(instr),
Code::SHSUB8_A1 => Shsub8A1::condition(instr),
Code::SMC_A1_AS => SmcA1As::condition(instr),
Code::SMLABB_A1 => SmlabbA1::condition(instr),
Code::SMLABT_A1 => SmlabtA1::condition(instr),
Code::SMLADX_A1 => SmladxA1::condition(instr),
Code::SMLAD_A1 => SmladA1::condition(instr),
Code::SMLALBB_A1 => SmlalbbA1::condition(instr),
Code::SMLALBT_A1 => SmlalbtA1::condition(instr),
Code::SMLALDX_A1 => SmlaldxA1::condition(instr),
Code::SMLALD_A1 => SmlaldA1::condition(instr),
Code::SMLALS_A1 => SmlalsA1::condition(instr),
Code::SMLALTB_A1 => SmlaltbA1::condition(instr),
Code::SMLALTT_A1 => SmlalttA1::condition(instr),
Code::SMLAL_A1 => SmlalA1::condition(instr),
Code::SMLATB_A1 => SmlatbA1::condition(instr),
Code::SMLATT_A1 => SmlattA1::condition(instr),
Code::SMLAWB_A1 => SmlawbA1::condition(instr),
Code::SMLAWT_A1 => SmlawtA1::condition(instr),
Code::SMLSDX_A1 => SmlsdxA1::condition(instr),
Code::SMLSD_A1 => SmlsdA1::condition(instr),
Code::SMLSLDX_A1 => SmlsldxA1::condition(instr),
Code::SMLSLD_A1 => SmlsldA1::condition(instr),
Code::SMMLAR_A1 => SmmlarA1::condition(instr),
Code::SMMLA_A1 => SmmlaA1::condition(instr),
Code::SMMLSR_A1 => SmmlsrA1::condition(instr),
Code::SMMLS_A1 => SmmlsA1::condition(instr),
Code::SMMULR_A1 => SmmulrA1::condition(instr),
Code::SMMUL_A1 => SmmulA1::condition(instr),
Code::SMUADX_A1 => SmuadxA1::condition(instr),
Code::SMUAD_A1 => SmuadA1::condition(instr),
Code::SMULBB_A1 => SmulbbA1::condition(instr),
Code::SMULBT_A1 => SmulbtA1::condition(instr),
Code::SMULLS_A1 => SmullsA1::condition(instr),
Code::SMULL_A1 => SmullA1::condition(instr),
Code::SMULTB_A1 => SmultbA1::condition(instr),
Code::SMULTT_A1 => SmulttA1::condition(instr),
Code::SMULWB_A1 => SmulwbA1::condition(instr),
Code::SMULWT_A1 => SmulwtA1::condition(instr),
Code::SMUSDX_A1 => SmusdxA1::condition(instr),
Code::SMUSD_A1 => SmusdA1::condition(instr),
Code::SRSDA_A1_AS => SrsdaA1As::condition(instr),
Code::SRSDB_A1_AS => SrsdbA1As::condition(instr),
Code::SRSIA_A1_AS => SrsiaA1As::condition(instr),
Code::SRSIB_A1_AS => SrsibA1As::condition(instr),
Code::SSAT16_A1 => Ssat16A1::condition(instr),
Code::SSAT_A1_ASR => SsatA1Asr::condition(instr),
Code::SSAT_A1_LSL => SsatA1Lsl::condition(instr),
Code::SSAX_A1 => SsaxA1::condition(instr),
Code::SSBB_A1 => SsbbA1::condition(instr),
Code::SSUB16_A1 => Ssub16A1::condition(instr),
Code::SSUB8_A1 => Ssub8A1::condition(instr),
Code::STC_A1_off => StcA1Off::condition(instr),
Code::STC_A1_post => StcA1Post::condition(instr),
Code::STC_A1_pre => StcA1Pre::condition(instr),
Code::STC_A1_unind => StcA1Unind::condition(instr),
Code::STLB_A1 => StlbA1::condition(instr),
Code::STLEXB_A1 => StlexbA1::condition(instr),
Code::STLEXD_A1 => StlexdA1::condition(instr),
Code::STLEXH_A1 => StlexhA1::condition(instr),
Code::STLEX_A1 => StlexA1::condition(instr),
Code::STLH_A1 => StlhA1::condition(instr),
Code::STL_A1 => StlA1::condition(instr),
Code::STMDA_A1 => StmdaA1::condition(instr),
Code::STMDB_A1 => StmdbA1::condition(instr),
Code::STMIB_A1 => StmibA1::condition(instr),
Code::STM_A1 => StmA1::condition(instr),
Code::STM_u_A1_AS => StmUA1As::condition(instr),
Code::STRBT_A1 => StrbtA1::condition(instr),
Code::STRBT_A2 => StrbtA2::condition(instr),
Code::STRB_i_A1_off => StrbIA1Off::condition(instr),
Code::STRB_i_A1_post => StrbIA1Post::condition(instr),
Code::STRB_i_A1_pre => StrbIA1Pre::condition(instr),
Code::STRB_r_A1_off => StrbRA1Off::condition(instr),
Code::STRB_r_A1_post => StrbRA1Post::condition(instr),
Code::STRB_r_A1_pre => StrbRA1Pre::condition(instr),
Code::STRD_i_A1_off => StrdIA1Off::condition(instr),
Code::STRD_i_A1_post => StrdIA1Post::condition(instr),
Code::STRD_i_A1_pre => StrdIA1Pre::condition(instr),
Code::STRD_r_A1_off => StrdRA1Off::condition(instr),
Code::STRD_r_A1_post => StrdRA1Post::condition(instr),
Code::STRD_r_A1_pre => StrdRA1Pre::condition(instr),
Code::STREXB_A1 => StrexbA1::condition(instr),
Code::STREXD_A1 => StrexdA1::condition(instr),
Code::STREXH_A1 => StrexhA1::condition(instr),
Code::STREX_A1 => StrexA1::condition(instr),
Code::STRHT_A1 => StrhtA1::condition(instr),
Code::STRHT_A2 => StrhtA2::condition(instr),
Code::STRH_i_A1_off => StrhIA1Off::condition(instr),
Code::STRH_i_A1_post => StrhIA1Post::condition(instr),
Code::STRH_i_A1_pre => StrhIA1Pre::condition(instr),
Code::STRH_r_A1_off => StrhRA1Off::condition(instr),
Code::STRH_r_A1_post => StrhRA1Post::condition(instr),
Code::STRH_r_A1_pre => StrhRA1Pre::condition(instr),
Code::STRT_A1 => StrtA1::condition(instr),
Code::STRT_A2 => StrtA2::condition(instr),
Code::STR_i_A1_off => StrIA1Off::condition(instr),
Code::STR_i_A1_post => StrIA1Post::condition(instr),
Code::STR_i_A1_pre => StrIA1Pre::condition(instr),
Code::STR_r_A1_off => StrRA1Off::condition(instr),
Code::STR_r_A1_post => StrRA1Post::condition(instr),
Code::STR_r_A1_pre => StrRA1Pre::condition(instr),
Code::SUBS_SP_i_A1 => SubsSpIA1::condition(instr),
Code::SUBS_SP_r_A1 => SubsSpRA1::condition(instr),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::condition(instr),
Code::SUBS_i_A1 => SubsIA1::condition(instr),
Code::SUBS_r_A1 => SubsRA1::condition(instr),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::condition(instr),
Code::SUBS_rr_A1 => SubsRrA1::condition(instr),
Code::SUB_ADR_A2 => SubAdrA2::condition(instr),
Code::SUB_SP_i_A1 => SubSpIA1::condition(instr),
Code::SUB_SP_r_A1 => SubSpRA1::condition(instr),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::condition(instr),
Code::SUB_i_A1 => SubIA1::condition(instr),
Code::SUB_r_A1 => SubRA1::condition(instr),
Code::SUB_r_A1_RRX => SubRA1Rrx::condition(instr),
Code::SUB_rr_A1 => SubRrA1::condition(instr),
Code::SVC_A1 => SvcA1::condition(instr),
Code::SXTAB16_A1 => Sxtab16A1::condition(instr),
Code::SXTAB_A1 => SxtabA1::condition(instr),
Code::SXTAH_A1 => SxtahA1::condition(instr),
Code::SXTB16_A1 => Sxtb16A1::condition(instr),
Code::SXTB_A1 => SxtbA1::condition(instr),
Code::SXTH_A1 => SxthA1::condition(instr),
Code::TEQ_i_A1 => TeqIA1::condition(instr),
Code::TEQ_r_A1 => TeqRA1::condition(instr),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::condition(instr),
Code::TEQ_rr_A1 => TeqRrA1::condition(instr),
Code::TSB_A1 => TsbA1::condition(instr),
Code::TST_i_A1 => TstIA1::condition(instr),
Code::TST_r_A1 => TstRA1::condition(instr),
Code::TST_r_A1_RRX => TstRA1Rrx::condition(instr),
Code::TST_rr_A1 => TstRrA1::condition(instr),
Code::UADD16_A1 => Uadd16A1::condition(instr),
Code::UADD8_A1 => Uadd8A1::condition(instr),
Code::UASX_A1 => UasxA1::condition(instr),
Code::UBFX_A1 => UbfxA1::condition(instr),
Code::UDF_A1 => UdfA1::condition(instr),
Code::UDIV_A1 => UdivA1::condition(instr),
Code::UHADD16_A1 => Uhadd16A1::condition(instr),
Code::UHADD8_A1 => Uhadd8A1::condition(instr),
Code::UHASX_A1 => UhasxA1::condition(instr),
Code::UHSAX_A1 => UhsaxA1::condition(instr),
Code::UHSUB16_A1 => Uhsub16A1::condition(instr),
Code::UHSUB8_A1 => Uhsub8A1::condition(instr),
Code::UMAAL_A1 => UmaalA1::condition(instr),
Code::UMLALS_A1 => UmlalsA1::condition(instr),
Code::UMLAL_A1 => UmlalA1::condition(instr),
Code::UMULLS_A1 => UmullsA1::condition(instr),
Code::UMULL_A1 => UmullA1::condition(instr),
Code::UQADD16_A1 => Uqadd16A1::condition(instr),
Code::UQADD8_A1 => Uqadd8A1::condition(instr),
Code::UQASX_A1 => UqasxA1::condition(instr),
Code::UQSAX_A1 => UqsaxA1::condition(instr),
Code::UQSUB16_A1 => Uqsub16A1::condition(instr),
Code::UQSUB8_A1 => Uqsub8A1::condition(instr),
Code::USAD8_A1 => Usad8A1::condition(instr),
Code::USADA8_A1 => Usada8A1::condition(instr),
Code::USAT16_A1 => Usat16A1::condition(instr),
Code::USAT_A1_ASR => UsatA1Asr::condition(instr),
Code::USAT_A1_LSL => UsatA1Lsl::condition(instr),
Code::USAX_A1 => UsaxA1::condition(instr),
Code::USUB16_A1 => Usub16A1::condition(instr),
Code::USUB8_A1 => Usub8A1::condition(instr),
Code::UXTAB16_A1 => Uxtab16A1::condition(instr),
Code::UXTAB_A1 => UxtabA1::condition(instr),
Code::UXTAH_A1 => UxtahA1::condition(instr),
Code::UXTB16_A1 => Uxtb16A1::condition(instr),
Code::UXTB_A1 => UxtbA1::condition(instr),
Code::UXTH_A1 => UxthA1::condition(instr),
Code::WFE_A1 => WfeA1::condition(instr),
Code::WFI_A1 => WfiA1::condition(instr),
Code::YIELD_A1 => YieldA1::condition(instr),
}
}
pub fn check_op(&self, index: usize, instr: &Instruction, op: &Operand) -> Result<()> {
match index {
0 => self.check_op0(instr, op),
1 => self.check_op1(instr, op),
2 => self.check_op2(instr, op),
3 => self.check_op3(instr, op),
4 => self.check_op4(instr, op),
5 => self.check_op5(instr, op),
6 => self.check_op6(instr, op),
_ => todo!(),
}
}
pub fn check_op0(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op0(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op0(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op0(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op0(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op0(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op0(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op0(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op0(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op0(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op0(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op0(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op0(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op0(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op0(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op0(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op0(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op0(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op0(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op0(instr, op),
Code::ADD_i_A1 => AddIA1::check_op0(instr, op),
Code::ADD_r_A1 => AddRA1::check_op0(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op0(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op0(instr, op),
Code::ADR_A1 => AdrA1::check_op0(instr, op),
Code::ADR_A2 => AdrA2::check_op0(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op0(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op0(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op0(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op0(instr, op),
Code::AND_i_A1 => AndIA1::check_op0(instr, op),
Code::AND_r_A1 => AndRA1::check_op0(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op0(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op0(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op0(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op0(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op0(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op0(instr, op),
Code::BFC_A1 => BfcA1::check_op0(instr, op),
Code::BFI_A1 => BfiA1::check_op0(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op0(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op0(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op0(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op0(instr, op),
Code::BIC_i_A1 => BicIA1::check_op0(instr, op),
Code::BIC_r_A1 => BicRA1::check_op0(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op0(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op0(instr, op),
Code::BKPT_A1 => BkptA1::check_op0(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op0(instr, op),
Code::BL_i_A1 => BlIA1::check_op0(instr, op),
Code::BL_i_A2 => BlIA2::check_op0(instr, op),
Code::BXJ_A1 => BxjA1::check_op0(instr, op),
Code::BX_A1 => BxA1::check_op0(instr, op),
Code::B_A1 => BA1::check_op0(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op0(instr, op),
Code::CLREX_A1 => ClrexA1::check_op0(instr, op),
Code::CLZ_A1 => ClzA1::check_op0(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op0(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op0(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op0(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op0(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op0(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op0(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op0(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op0(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op0(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op0(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op0(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op0(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op0(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op0(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op0(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op0(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op0(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op0(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op0(instr, op),
Code::CSDB_A1 => CsdbA1::check_op0(instr, op),
Code::DBG_A1 => DbgA1::check_op0(instr, op),
Code::DMB_A1 => DmbA1::check_op0(instr, op),
Code::DSB_A1 => DsbA1::check_op0(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op0(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op0(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op0(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op0(instr, op),
Code::EOR_i_A1 => EorIA1::check_op0(instr, op),
Code::EOR_r_A1 => EorRA1::check_op0(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op0(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op0(instr, op),
Code::ERET_A1 => EretA1::check_op0(instr, op),
Code::ESB_A1 => EsbA1::check_op0(instr, op),
Code::HLT_A1 => HltA1::check_op0(instr, op),
Code::HVC_A1 => HvcA1::check_op0(instr, op),
Code::ISB_A1 => IsbA1::check_op0(instr, op),
Code::LDAB_A1 => LdabA1::check_op0(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op0(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op0(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op0(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op0(instr, op),
Code::LDAH_A1 => LdahA1::check_op0(instr, op),
Code::LDA_A1 => LdaA1::check_op0(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op0(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op0(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op0(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op0(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op0(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op0(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op0(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op0(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op0(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op0(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op0(instr, op),
Code::LDM_A1 => LdmA1::check_op0(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op0(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op0(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op0(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op0(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op0(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op0(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op0(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op0(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op0(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op0(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op0(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op0(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op0(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op0(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op0(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op0(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op0(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op0(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op0(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op0(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op0(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op0(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op0(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op0(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op0(instr, op),
Code::LDREX_A1 => LdrexA1::check_op0(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op0(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op0(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op0(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op0(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op0(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op0(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op0(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op0(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op0(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op0(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op0(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op0(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op0(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op0(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op0(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op0(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op0(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op0(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op0(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op0(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op0(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op0(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op0(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op0(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op0(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op0(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op0(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op0(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op0(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op0(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op0(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op0(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op0(instr, op),
Code::LDRT_A1 => LdrtA1::check_op0(instr, op),
Code::LDRT_A2 => LdrtA2::check_op0(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op0(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op0(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op0(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op0(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op0(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op0(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op0(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op0(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op0(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op0(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op0(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op0(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op0(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op0(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op0(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op0(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op0(instr, op),
Code::MCRR_A1 => McrrA1::check_op0(instr, op),
Code::MCR_A1 => McrA1::check_op0(instr, op),
Code::MLAS_A1 => MlasA1::check_op0(instr, op),
Code::MLA_A1 => MlaA1::check_op0(instr, op),
Code::MLS_A1 => MlsA1::check_op0(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op0(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op0(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op0(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op0(instr, op),
Code::MOVT_A1 => MovtA1::check_op0(instr, op),
Code::MOV_i_A1 => MovIA1::check_op0(instr, op),
Code::MOV_i_A2 => MovIA2::check_op0(instr, op),
Code::MOV_r_A1 => MovRA1::check_op0(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op0(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op0(instr, op),
Code::MRC_A1 => MrcA1::check_op0(instr, op),
Code::MRRC_A1 => MrrcA1::check_op0(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op0(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op0(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op0(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op0(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op0(instr, op),
Code::MULS_A1 => MulsA1::check_op0(instr, op),
Code::MUL_A1 => MulA1::check_op0(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op0(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op0(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op0(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op0(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op0(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op0(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op0(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op0(instr, op),
Code::NOP_A1 => NopA1::check_op0(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op0(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op0(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op0(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op0(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op0(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op0(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op0(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op0(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op0(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op0(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op0(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op0(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op0(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op0(instr, op),
Code::PLD_i_A1 => PldIA1::check_op0(instr, op),
Code::PLD_l_A1 => PldLA1::check_op0(instr, op),
Code::PLD_r_A1 => PldRA1::check_op0(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op0(instr, op),
Code::PLI_i_A1 => PliIA1::check_op0(instr, op),
Code::PLI_r_A1 => PliRA1::check_op0(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op0(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op0(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op0(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op0(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op0(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op0(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op0(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op0(instr, op),
Code::QADD_A1 => QaddA1::check_op0(instr, op),
Code::QASX_A1 => QasxA1::check_op0(instr, op),
Code::QDADD_A1 => QdaddA1::check_op0(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op0(instr, op),
Code::QSAX_A1 => QsaxA1::check_op0(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op0(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op0(instr, op),
Code::QSUB_A1 => QsubA1::check_op0(instr, op),
Code::RBIT_A1 => RbitA1::check_op0(instr, op),
Code::REV16_A1 => Rev16A1::check_op0(instr, op),
Code::REVSH_A1 => RevshA1::check_op0(instr, op),
Code::REV_A1 => RevA1::check_op0(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op0(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op0(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op0(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op0(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op0(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op0(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op0(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op0(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op0(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op0(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op0(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op0(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op0(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op0(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op0(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op0(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op0(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op0(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op0(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op0(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op0(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op0(instr, op),
Code::RSC_i_A1 => RscIA1::check_op0(instr, op),
Code::RSC_r_A1 => RscRA1::check_op0(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op0(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op0(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op0(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op0(instr, op),
Code::SASX_A1 => SasxA1::check_op0(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op0(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op0(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op0(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op0(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op0(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op0(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op0(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op0(instr, op),
Code::SBFX_A1 => SbfxA1::check_op0(instr, op),
Code::SB_A1 => SbA1::check_op0(instr, op),
Code::SDIV_A1 => SdivA1::check_op0(instr, op),
Code::SEL_A1 => SelA1::check_op0(instr, op),
Code::SETEND_A1 => SetendA1::check_op0(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op0(instr, op),
Code::SEVL_A1 => SevlA1::check_op0(instr, op),
Code::SEV_A1 => SevA1::check_op0(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op0(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op0(instr, op),
Code::SHASX_A1 => ShasxA1::check_op0(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op0(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op0(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op0(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op0(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op0(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op0(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op0(instr, op),
Code::SMLAD_A1 => SmladA1::check_op0(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op0(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op0(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op0(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op0(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op0(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op0(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op0(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op0(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op0(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op0(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op0(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op0(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op0(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op0(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op0(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op0(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op0(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op0(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op0(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op0(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op0(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op0(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op0(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op0(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op0(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op0(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op0(instr, op),
Code::SMULL_A1 => SmullA1::check_op0(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op0(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op0(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op0(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op0(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op0(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op0(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op0(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op0(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op0(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op0(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op0(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op0(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op0(instr, op),
Code::SSAX_A1 => SsaxA1::check_op0(instr, op),
Code::SSBB_A1 => SsbbA1::check_op0(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op0(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op0(instr, op),
Code::STC_A1_off => StcA1Off::check_op0(instr, op),
Code::STC_A1_post => StcA1Post::check_op0(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op0(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op0(instr, op),
Code::STLB_A1 => StlbA1::check_op0(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op0(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op0(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op0(instr, op),
Code::STLEX_A1 => StlexA1::check_op0(instr, op),
Code::STLH_A1 => StlhA1::check_op0(instr, op),
Code::STL_A1 => StlA1::check_op0(instr, op),
Code::STMDA_A1 => StmdaA1::check_op0(instr, op),
Code::STMDB_A1 => StmdbA1::check_op0(instr, op),
Code::STMIB_A1 => StmibA1::check_op0(instr, op),
Code::STM_A1 => StmA1::check_op0(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op0(instr, op),
Code::STRBT_A1 => StrbtA1::check_op0(instr, op),
Code::STRBT_A2 => StrbtA2::check_op0(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op0(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op0(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op0(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op0(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op0(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op0(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op0(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op0(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op0(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op0(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op0(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op0(instr, op),
Code::STREXB_A1 => StrexbA1::check_op0(instr, op),
Code::STREXD_A1 => StrexdA1::check_op0(instr, op),
Code::STREXH_A1 => StrexhA1::check_op0(instr, op),
Code::STREX_A1 => StrexA1::check_op0(instr, op),
Code::STRHT_A1 => StrhtA1::check_op0(instr, op),
Code::STRHT_A2 => StrhtA2::check_op0(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op0(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op0(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op0(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op0(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op0(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op0(instr, op),
Code::STRT_A1 => StrtA1::check_op0(instr, op),
Code::STRT_A2 => StrtA2::check_op0(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op0(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op0(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op0(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op0(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op0(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op0(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op0(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op0(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op0(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op0(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op0(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op0(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op0(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op0(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op0(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op0(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op0(instr, op),
Code::SUB_i_A1 => SubIA1::check_op0(instr, op),
Code::SUB_r_A1 => SubRA1::check_op0(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op0(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op0(instr, op),
Code::SVC_A1 => SvcA1::check_op0(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op0(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op0(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op0(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op0(instr, op),
Code::SXTB_A1 => SxtbA1::check_op0(instr, op),
Code::SXTH_A1 => SxthA1::check_op0(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op0(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op0(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op0(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op0(instr, op),
Code::TSB_A1 => TsbA1::check_op0(instr, op),
Code::TST_i_A1 => TstIA1::check_op0(instr, op),
Code::TST_r_A1 => TstRA1::check_op0(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op0(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op0(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op0(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op0(instr, op),
Code::UASX_A1 => UasxA1::check_op0(instr, op),
Code::UBFX_A1 => UbfxA1::check_op0(instr, op),
Code::UDF_A1 => UdfA1::check_op0(instr, op),
Code::UDIV_A1 => UdivA1::check_op0(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op0(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op0(instr, op),
Code::UHASX_A1 => UhasxA1::check_op0(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op0(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op0(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op0(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op0(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op0(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op0(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op0(instr, op),
Code::UMULL_A1 => UmullA1::check_op0(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op0(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op0(instr, op),
Code::UQASX_A1 => UqasxA1::check_op0(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op0(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op0(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op0(instr, op),
Code::USAD8_A1 => Usad8A1::check_op0(instr, op),
Code::USADA8_A1 => Usada8A1::check_op0(instr, op),
Code::USAT16_A1 => Usat16A1::check_op0(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op0(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op0(instr, op),
Code::USAX_A1 => UsaxA1::check_op0(instr, op),
Code::USUB16_A1 => Usub16A1::check_op0(instr, op),
Code::USUB8_A1 => Usub8A1::check_op0(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op0(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op0(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op0(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op0(instr, op),
Code::UXTB_A1 => UxtbA1::check_op0(instr, op),
Code::UXTH_A1 => UxthA1::check_op0(instr, op),
Code::WFE_A1 => WfeA1::check_op0(instr, op),
Code::WFI_A1 => WfiA1::check_op0(instr, op),
Code::YIELD_A1 => YieldA1::check_op0(instr, op),
}
}
pub fn check_op1(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op1(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op1(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op1(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op1(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op1(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op1(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op1(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op1(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op1(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op1(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op1(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op1(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op1(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op1(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op1(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op1(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op1(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op1(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op1(instr, op),
Code::ADD_i_A1 => AddIA1::check_op1(instr, op),
Code::ADD_r_A1 => AddRA1::check_op1(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op1(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op1(instr, op),
Code::ADR_A1 => AdrA1::check_op1(instr, op),
Code::ADR_A2 => AdrA2::check_op1(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op1(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op1(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op1(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op1(instr, op),
Code::AND_i_A1 => AndIA1::check_op1(instr, op),
Code::AND_r_A1 => AndRA1::check_op1(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op1(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op1(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op1(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op1(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op1(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op1(instr, op),
Code::BFC_A1 => BfcA1::check_op1(instr, op),
Code::BFI_A1 => BfiA1::check_op1(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op1(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op1(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op1(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op1(instr, op),
Code::BIC_i_A1 => BicIA1::check_op1(instr, op),
Code::BIC_r_A1 => BicRA1::check_op1(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op1(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op1(instr, op),
Code::BKPT_A1 => BkptA1::check_op1(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op1(instr, op),
Code::BL_i_A1 => BlIA1::check_op1(instr, op),
Code::BL_i_A2 => BlIA2::check_op1(instr, op),
Code::BXJ_A1 => BxjA1::check_op1(instr, op),
Code::BX_A1 => BxA1::check_op1(instr, op),
Code::B_A1 => BA1::check_op1(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op1(instr, op),
Code::CLREX_A1 => ClrexA1::check_op1(instr, op),
Code::CLZ_A1 => ClzA1::check_op1(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op1(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op1(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op1(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op1(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op1(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op1(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op1(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op1(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op1(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op1(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op1(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op1(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op1(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op1(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op1(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op1(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op1(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op1(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op1(instr, op),
Code::CSDB_A1 => CsdbA1::check_op1(instr, op),
Code::DBG_A1 => DbgA1::check_op1(instr, op),
Code::DMB_A1 => DmbA1::check_op1(instr, op),
Code::DSB_A1 => DsbA1::check_op1(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op1(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op1(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op1(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op1(instr, op),
Code::EOR_i_A1 => EorIA1::check_op1(instr, op),
Code::EOR_r_A1 => EorRA1::check_op1(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op1(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op1(instr, op),
Code::ERET_A1 => EretA1::check_op1(instr, op),
Code::ESB_A1 => EsbA1::check_op1(instr, op),
Code::HLT_A1 => HltA1::check_op1(instr, op),
Code::HVC_A1 => HvcA1::check_op1(instr, op),
Code::ISB_A1 => IsbA1::check_op1(instr, op),
Code::LDAB_A1 => LdabA1::check_op1(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op1(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op1(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op1(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op1(instr, op),
Code::LDAH_A1 => LdahA1::check_op1(instr, op),
Code::LDA_A1 => LdaA1::check_op1(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op1(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op1(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op1(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op1(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op1(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op1(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op1(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op1(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op1(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op1(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op1(instr, op),
Code::LDM_A1 => LdmA1::check_op1(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op1(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op1(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op1(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op1(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op1(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op1(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op1(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op1(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op1(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op1(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op1(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op1(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op1(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op1(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op1(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op1(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op1(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op1(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op1(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op1(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op1(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op1(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op1(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op1(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op1(instr, op),
Code::LDREX_A1 => LdrexA1::check_op1(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op1(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op1(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op1(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op1(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op1(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op1(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op1(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op1(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op1(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op1(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op1(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op1(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op1(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op1(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op1(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op1(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op1(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op1(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op1(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op1(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op1(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op1(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op1(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op1(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op1(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op1(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op1(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op1(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op1(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op1(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op1(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op1(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op1(instr, op),
Code::LDRT_A1 => LdrtA1::check_op1(instr, op),
Code::LDRT_A2 => LdrtA2::check_op1(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op1(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op1(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op1(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op1(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op1(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op1(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op1(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op1(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op1(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op1(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op1(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op1(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op1(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op1(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op1(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op1(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op1(instr, op),
Code::MCRR_A1 => McrrA1::check_op1(instr, op),
Code::MCR_A1 => McrA1::check_op1(instr, op),
Code::MLAS_A1 => MlasA1::check_op1(instr, op),
Code::MLA_A1 => MlaA1::check_op1(instr, op),
Code::MLS_A1 => MlsA1::check_op1(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op1(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op1(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op1(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op1(instr, op),
Code::MOVT_A1 => MovtA1::check_op1(instr, op),
Code::MOV_i_A1 => MovIA1::check_op1(instr, op),
Code::MOV_i_A2 => MovIA2::check_op1(instr, op),
Code::MOV_r_A1 => MovRA1::check_op1(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op1(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op1(instr, op),
Code::MRC_A1 => MrcA1::check_op1(instr, op),
Code::MRRC_A1 => MrrcA1::check_op1(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op1(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op1(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op1(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op1(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op1(instr, op),
Code::MULS_A1 => MulsA1::check_op1(instr, op),
Code::MUL_A1 => MulA1::check_op1(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op1(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op1(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op1(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op1(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op1(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op1(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op1(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op1(instr, op),
Code::NOP_A1 => NopA1::check_op1(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op1(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op1(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op1(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op1(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op1(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op1(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op1(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op1(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op1(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op1(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op1(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op1(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op1(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op1(instr, op),
Code::PLD_i_A1 => PldIA1::check_op1(instr, op),
Code::PLD_l_A1 => PldLA1::check_op1(instr, op),
Code::PLD_r_A1 => PldRA1::check_op1(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op1(instr, op),
Code::PLI_i_A1 => PliIA1::check_op1(instr, op),
Code::PLI_r_A1 => PliRA1::check_op1(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op1(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op1(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op1(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op1(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op1(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op1(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op1(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op1(instr, op),
Code::QADD_A1 => QaddA1::check_op1(instr, op),
Code::QASX_A1 => QasxA1::check_op1(instr, op),
Code::QDADD_A1 => QdaddA1::check_op1(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op1(instr, op),
Code::QSAX_A1 => QsaxA1::check_op1(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op1(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op1(instr, op),
Code::QSUB_A1 => QsubA1::check_op1(instr, op),
Code::RBIT_A1 => RbitA1::check_op1(instr, op),
Code::REV16_A1 => Rev16A1::check_op1(instr, op),
Code::REVSH_A1 => RevshA1::check_op1(instr, op),
Code::REV_A1 => RevA1::check_op1(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op1(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op1(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op1(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op1(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op1(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op1(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op1(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op1(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op1(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op1(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op1(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op1(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op1(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op1(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op1(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op1(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op1(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op1(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op1(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op1(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op1(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op1(instr, op),
Code::RSC_i_A1 => RscIA1::check_op1(instr, op),
Code::RSC_r_A1 => RscRA1::check_op1(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op1(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op1(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op1(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op1(instr, op),
Code::SASX_A1 => SasxA1::check_op1(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op1(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op1(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op1(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op1(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op1(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op1(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op1(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op1(instr, op),
Code::SBFX_A1 => SbfxA1::check_op1(instr, op),
Code::SB_A1 => SbA1::check_op1(instr, op),
Code::SDIV_A1 => SdivA1::check_op1(instr, op),
Code::SEL_A1 => SelA1::check_op1(instr, op),
Code::SETEND_A1 => SetendA1::check_op1(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op1(instr, op),
Code::SEVL_A1 => SevlA1::check_op1(instr, op),
Code::SEV_A1 => SevA1::check_op1(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op1(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op1(instr, op),
Code::SHASX_A1 => ShasxA1::check_op1(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op1(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op1(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op1(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op1(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op1(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op1(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op1(instr, op),
Code::SMLAD_A1 => SmladA1::check_op1(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op1(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op1(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op1(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op1(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op1(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op1(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op1(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op1(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op1(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op1(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op1(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op1(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op1(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op1(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op1(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op1(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op1(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op1(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op1(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op1(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op1(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op1(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op1(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op1(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op1(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op1(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op1(instr, op),
Code::SMULL_A1 => SmullA1::check_op1(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op1(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op1(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op1(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op1(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op1(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op1(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op1(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op1(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op1(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op1(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op1(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op1(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op1(instr, op),
Code::SSAX_A1 => SsaxA1::check_op1(instr, op),
Code::SSBB_A1 => SsbbA1::check_op1(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op1(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op1(instr, op),
Code::STC_A1_off => StcA1Off::check_op1(instr, op),
Code::STC_A1_post => StcA1Post::check_op1(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op1(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op1(instr, op),
Code::STLB_A1 => StlbA1::check_op1(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op1(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op1(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op1(instr, op),
Code::STLEX_A1 => StlexA1::check_op1(instr, op),
Code::STLH_A1 => StlhA1::check_op1(instr, op),
Code::STL_A1 => StlA1::check_op1(instr, op),
Code::STMDA_A1 => StmdaA1::check_op1(instr, op),
Code::STMDB_A1 => StmdbA1::check_op1(instr, op),
Code::STMIB_A1 => StmibA1::check_op1(instr, op),
Code::STM_A1 => StmA1::check_op1(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op1(instr, op),
Code::STRBT_A1 => StrbtA1::check_op1(instr, op),
Code::STRBT_A2 => StrbtA2::check_op1(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op1(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op1(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op1(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op1(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op1(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op1(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op1(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op1(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op1(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op1(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op1(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op1(instr, op),
Code::STREXB_A1 => StrexbA1::check_op1(instr, op),
Code::STREXD_A1 => StrexdA1::check_op1(instr, op),
Code::STREXH_A1 => StrexhA1::check_op1(instr, op),
Code::STREX_A1 => StrexA1::check_op1(instr, op),
Code::STRHT_A1 => StrhtA1::check_op1(instr, op),
Code::STRHT_A2 => StrhtA2::check_op1(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op1(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op1(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op1(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op1(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op1(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op1(instr, op),
Code::STRT_A1 => StrtA1::check_op1(instr, op),
Code::STRT_A2 => StrtA2::check_op1(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op1(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op1(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op1(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op1(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op1(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op1(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op1(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op1(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op1(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op1(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op1(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op1(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op1(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op1(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op1(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op1(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op1(instr, op),
Code::SUB_i_A1 => SubIA1::check_op1(instr, op),
Code::SUB_r_A1 => SubRA1::check_op1(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op1(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op1(instr, op),
Code::SVC_A1 => SvcA1::check_op1(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op1(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op1(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op1(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op1(instr, op),
Code::SXTB_A1 => SxtbA1::check_op1(instr, op),
Code::SXTH_A1 => SxthA1::check_op1(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op1(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op1(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op1(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op1(instr, op),
Code::TSB_A1 => TsbA1::check_op1(instr, op),
Code::TST_i_A1 => TstIA1::check_op1(instr, op),
Code::TST_r_A1 => TstRA1::check_op1(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op1(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op1(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op1(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op1(instr, op),
Code::UASX_A1 => UasxA1::check_op1(instr, op),
Code::UBFX_A1 => UbfxA1::check_op1(instr, op),
Code::UDF_A1 => UdfA1::check_op1(instr, op),
Code::UDIV_A1 => UdivA1::check_op1(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op1(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op1(instr, op),
Code::UHASX_A1 => UhasxA1::check_op1(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op1(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op1(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op1(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op1(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op1(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op1(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op1(instr, op),
Code::UMULL_A1 => UmullA1::check_op1(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op1(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op1(instr, op),
Code::UQASX_A1 => UqasxA1::check_op1(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op1(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op1(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op1(instr, op),
Code::USAD8_A1 => Usad8A1::check_op1(instr, op),
Code::USADA8_A1 => Usada8A1::check_op1(instr, op),
Code::USAT16_A1 => Usat16A1::check_op1(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op1(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op1(instr, op),
Code::USAX_A1 => UsaxA1::check_op1(instr, op),
Code::USUB16_A1 => Usub16A1::check_op1(instr, op),
Code::USUB8_A1 => Usub8A1::check_op1(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op1(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op1(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op1(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op1(instr, op),
Code::UXTB_A1 => UxtbA1::check_op1(instr, op),
Code::UXTH_A1 => UxthA1::check_op1(instr, op),
Code::WFE_A1 => WfeA1::check_op1(instr, op),
Code::WFI_A1 => WfiA1::check_op1(instr, op),
Code::YIELD_A1 => YieldA1::check_op1(instr, op),
}
}
pub fn check_op2(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op2(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op2(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op2(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op2(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op2(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op2(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op2(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op2(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op2(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op2(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op2(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op2(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op2(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op2(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op2(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op2(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op2(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op2(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op2(instr, op),
Code::ADD_i_A1 => AddIA1::check_op2(instr, op),
Code::ADD_r_A1 => AddRA1::check_op2(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op2(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op2(instr, op),
Code::ADR_A1 => AdrA1::check_op2(instr, op),
Code::ADR_A2 => AdrA2::check_op2(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op2(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op2(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op2(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op2(instr, op),
Code::AND_i_A1 => AndIA1::check_op2(instr, op),
Code::AND_r_A1 => AndRA1::check_op2(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op2(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op2(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op2(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op2(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op2(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op2(instr, op),
Code::BFC_A1 => BfcA1::check_op2(instr, op),
Code::BFI_A1 => BfiA1::check_op2(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op2(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op2(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op2(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op2(instr, op),
Code::BIC_i_A1 => BicIA1::check_op2(instr, op),
Code::BIC_r_A1 => BicRA1::check_op2(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op2(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op2(instr, op),
Code::BKPT_A1 => BkptA1::check_op2(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op2(instr, op),
Code::BL_i_A1 => BlIA1::check_op2(instr, op),
Code::BL_i_A2 => BlIA2::check_op2(instr, op),
Code::BXJ_A1 => BxjA1::check_op2(instr, op),
Code::BX_A1 => BxA1::check_op2(instr, op),
Code::B_A1 => BA1::check_op2(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op2(instr, op),
Code::CLREX_A1 => ClrexA1::check_op2(instr, op),
Code::CLZ_A1 => ClzA1::check_op2(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op2(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op2(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op2(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op2(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op2(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op2(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op2(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op2(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op2(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op2(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op2(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op2(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op2(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op2(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op2(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op2(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op2(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op2(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op2(instr, op),
Code::CSDB_A1 => CsdbA1::check_op2(instr, op),
Code::DBG_A1 => DbgA1::check_op2(instr, op),
Code::DMB_A1 => DmbA1::check_op2(instr, op),
Code::DSB_A1 => DsbA1::check_op2(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op2(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op2(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op2(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op2(instr, op),
Code::EOR_i_A1 => EorIA1::check_op2(instr, op),
Code::EOR_r_A1 => EorRA1::check_op2(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op2(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op2(instr, op),
Code::ERET_A1 => EretA1::check_op2(instr, op),
Code::ESB_A1 => EsbA1::check_op2(instr, op),
Code::HLT_A1 => HltA1::check_op2(instr, op),
Code::HVC_A1 => HvcA1::check_op2(instr, op),
Code::ISB_A1 => IsbA1::check_op2(instr, op),
Code::LDAB_A1 => LdabA1::check_op2(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op2(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op2(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op2(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op2(instr, op),
Code::LDAH_A1 => LdahA1::check_op2(instr, op),
Code::LDA_A1 => LdaA1::check_op2(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op2(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op2(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op2(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op2(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op2(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op2(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op2(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op2(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op2(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op2(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op2(instr, op),
Code::LDM_A1 => LdmA1::check_op2(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op2(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op2(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op2(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op2(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op2(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op2(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op2(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op2(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op2(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op2(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op2(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op2(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op2(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op2(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op2(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op2(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op2(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op2(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op2(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op2(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op2(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op2(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op2(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op2(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op2(instr, op),
Code::LDREX_A1 => LdrexA1::check_op2(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op2(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op2(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op2(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op2(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op2(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op2(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op2(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op2(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op2(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op2(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op2(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op2(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op2(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op2(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op2(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op2(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op2(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op2(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op2(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op2(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op2(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op2(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op2(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op2(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op2(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op2(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op2(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op2(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op2(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op2(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op2(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op2(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op2(instr, op),
Code::LDRT_A1 => LdrtA1::check_op2(instr, op),
Code::LDRT_A2 => LdrtA2::check_op2(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op2(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op2(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op2(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op2(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op2(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op2(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op2(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op2(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op2(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op2(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op2(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op2(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op2(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op2(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op2(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op2(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op2(instr, op),
Code::MCRR_A1 => McrrA1::check_op2(instr, op),
Code::MCR_A1 => McrA1::check_op2(instr, op),
Code::MLAS_A1 => MlasA1::check_op2(instr, op),
Code::MLA_A1 => MlaA1::check_op2(instr, op),
Code::MLS_A1 => MlsA1::check_op2(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op2(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op2(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op2(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op2(instr, op),
Code::MOVT_A1 => MovtA1::check_op2(instr, op),
Code::MOV_i_A1 => MovIA1::check_op2(instr, op),
Code::MOV_i_A2 => MovIA2::check_op2(instr, op),
Code::MOV_r_A1 => MovRA1::check_op2(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op2(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op2(instr, op),
Code::MRC_A1 => MrcA1::check_op2(instr, op),
Code::MRRC_A1 => MrrcA1::check_op2(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op2(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op2(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op2(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op2(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op2(instr, op),
Code::MULS_A1 => MulsA1::check_op2(instr, op),
Code::MUL_A1 => MulA1::check_op2(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op2(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op2(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op2(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op2(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op2(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op2(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op2(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op2(instr, op),
Code::NOP_A1 => NopA1::check_op2(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op2(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op2(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op2(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op2(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op2(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op2(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op2(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op2(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op2(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op2(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op2(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op2(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op2(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op2(instr, op),
Code::PLD_i_A1 => PldIA1::check_op2(instr, op),
Code::PLD_l_A1 => PldLA1::check_op2(instr, op),
Code::PLD_r_A1 => PldRA1::check_op2(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op2(instr, op),
Code::PLI_i_A1 => PliIA1::check_op2(instr, op),
Code::PLI_r_A1 => PliRA1::check_op2(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op2(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op2(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op2(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op2(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op2(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op2(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op2(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op2(instr, op),
Code::QADD_A1 => QaddA1::check_op2(instr, op),
Code::QASX_A1 => QasxA1::check_op2(instr, op),
Code::QDADD_A1 => QdaddA1::check_op2(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op2(instr, op),
Code::QSAX_A1 => QsaxA1::check_op2(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op2(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op2(instr, op),
Code::QSUB_A1 => QsubA1::check_op2(instr, op),
Code::RBIT_A1 => RbitA1::check_op2(instr, op),
Code::REV16_A1 => Rev16A1::check_op2(instr, op),
Code::REVSH_A1 => RevshA1::check_op2(instr, op),
Code::REV_A1 => RevA1::check_op2(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op2(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op2(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op2(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op2(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op2(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op2(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op2(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op2(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op2(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op2(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op2(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op2(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op2(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op2(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op2(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op2(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op2(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op2(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op2(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op2(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op2(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op2(instr, op),
Code::RSC_i_A1 => RscIA1::check_op2(instr, op),
Code::RSC_r_A1 => RscRA1::check_op2(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op2(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op2(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op2(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op2(instr, op),
Code::SASX_A1 => SasxA1::check_op2(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op2(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op2(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op2(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op2(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op2(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op2(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op2(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op2(instr, op),
Code::SBFX_A1 => SbfxA1::check_op2(instr, op),
Code::SB_A1 => SbA1::check_op2(instr, op),
Code::SDIV_A1 => SdivA1::check_op2(instr, op),
Code::SEL_A1 => SelA1::check_op2(instr, op),
Code::SETEND_A1 => SetendA1::check_op2(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op2(instr, op),
Code::SEVL_A1 => SevlA1::check_op2(instr, op),
Code::SEV_A1 => SevA1::check_op2(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op2(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op2(instr, op),
Code::SHASX_A1 => ShasxA1::check_op2(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op2(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op2(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op2(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op2(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op2(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op2(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op2(instr, op),
Code::SMLAD_A1 => SmladA1::check_op2(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op2(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op2(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op2(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op2(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op2(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op2(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op2(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op2(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op2(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op2(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op2(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op2(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op2(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op2(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op2(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op2(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op2(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op2(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op2(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op2(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op2(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op2(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op2(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op2(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op2(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op2(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op2(instr, op),
Code::SMULL_A1 => SmullA1::check_op2(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op2(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op2(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op2(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op2(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op2(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op2(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op2(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op2(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op2(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op2(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op2(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op2(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op2(instr, op),
Code::SSAX_A1 => SsaxA1::check_op2(instr, op),
Code::SSBB_A1 => SsbbA1::check_op2(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op2(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op2(instr, op),
Code::STC_A1_off => StcA1Off::check_op2(instr, op),
Code::STC_A1_post => StcA1Post::check_op2(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op2(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op2(instr, op),
Code::STLB_A1 => StlbA1::check_op2(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op2(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op2(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op2(instr, op),
Code::STLEX_A1 => StlexA1::check_op2(instr, op),
Code::STLH_A1 => StlhA1::check_op2(instr, op),
Code::STL_A1 => StlA1::check_op2(instr, op),
Code::STMDA_A1 => StmdaA1::check_op2(instr, op),
Code::STMDB_A1 => StmdbA1::check_op2(instr, op),
Code::STMIB_A1 => StmibA1::check_op2(instr, op),
Code::STM_A1 => StmA1::check_op2(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op2(instr, op),
Code::STRBT_A1 => StrbtA1::check_op2(instr, op),
Code::STRBT_A2 => StrbtA2::check_op2(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op2(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op2(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op2(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op2(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op2(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op2(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op2(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op2(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op2(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op2(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op2(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op2(instr, op),
Code::STREXB_A1 => StrexbA1::check_op2(instr, op),
Code::STREXD_A1 => StrexdA1::check_op2(instr, op),
Code::STREXH_A1 => StrexhA1::check_op2(instr, op),
Code::STREX_A1 => StrexA1::check_op2(instr, op),
Code::STRHT_A1 => StrhtA1::check_op2(instr, op),
Code::STRHT_A2 => StrhtA2::check_op2(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op2(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op2(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op2(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op2(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op2(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op2(instr, op),
Code::STRT_A1 => StrtA1::check_op2(instr, op),
Code::STRT_A2 => StrtA2::check_op2(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op2(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op2(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op2(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op2(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op2(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op2(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op2(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op2(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op2(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op2(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op2(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op2(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op2(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op2(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op2(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op2(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op2(instr, op),
Code::SUB_i_A1 => SubIA1::check_op2(instr, op),
Code::SUB_r_A1 => SubRA1::check_op2(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op2(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op2(instr, op),
Code::SVC_A1 => SvcA1::check_op2(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op2(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op2(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op2(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op2(instr, op),
Code::SXTB_A1 => SxtbA1::check_op2(instr, op),
Code::SXTH_A1 => SxthA1::check_op2(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op2(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op2(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op2(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op2(instr, op),
Code::TSB_A1 => TsbA1::check_op2(instr, op),
Code::TST_i_A1 => TstIA1::check_op2(instr, op),
Code::TST_r_A1 => TstRA1::check_op2(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op2(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op2(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op2(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op2(instr, op),
Code::UASX_A1 => UasxA1::check_op2(instr, op),
Code::UBFX_A1 => UbfxA1::check_op2(instr, op),
Code::UDF_A1 => UdfA1::check_op2(instr, op),
Code::UDIV_A1 => UdivA1::check_op2(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op2(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op2(instr, op),
Code::UHASX_A1 => UhasxA1::check_op2(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op2(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op2(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op2(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op2(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op2(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op2(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op2(instr, op),
Code::UMULL_A1 => UmullA1::check_op2(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op2(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op2(instr, op),
Code::UQASX_A1 => UqasxA1::check_op2(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op2(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op2(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op2(instr, op),
Code::USAD8_A1 => Usad8A1::check_op2(instr, op),
Code::USADA8_A1 => Usada8A1::check_op2(instr, op),
Code::USAT16_A1 => Usat16A1::check_op2(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op2(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op2(instr, op),
Code::USAX_A1 => UsaxA1::check_op2(instr, op),
Code::USUB16_A1 => Usub16A1::check_op2(instr, op),
Code::USUB8_A1 => Usub8A1::check_op2(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op2(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op2(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op2(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op2(instr, op),
Code::UXTB_A1 => UxtbA1::check_op2(instr, op),
Code::UXTH_A1 => UxthA1::check_op2(instr, op),
Code::WFE_A1 => WfeA1::check_op2(instr, op),
Code::WFI_A1 => WfiA1::check_op2(instr, op),
Code::YIELD_A1 => YieldA1::check_op2(instr, op),
}
}
pub fn check_op3(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op3(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op3(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op3(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op3(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op3(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op3(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op3(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op3(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op3(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op3(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op3(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op3(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op3(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op3(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op3(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op3(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op3(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op3(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op3(instr, op),
Code::ADD_i_A1 => AddIA1::check_op3(instr, op),
Code::ADD_r_A1 => AddRA1::check_op3(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op3(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op3(instr, op),
Code::ADR_A1 => AdrA1::check_op3(instr, op),
Code::ADR_A2 => AdrA2::check_op3(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op3(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op3(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op3(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op3(instr, op),
Code::AND_i_A1 => AndIA1::check_op3(instr, op),
Code::AND_r_A1 => AndRA1::check_op3(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op3(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op3(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op3(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op3(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op3(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op3(instr, op),
Code::BFC_A1 => BfcA1::check_op3(instr, op),
Code::BFI_A1 => BfiA1::check_op3(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op3(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op3(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op3(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op3(instr, op),
Code::BIC_i_A1 => BicIA1::check_op3(instr, op),
Code::BIC_r_A1 => BicRA1::check_op3(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op3(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op3(instr, op),
Code::BKPT_A1 => BkptA1::check_op3(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op3(instr, op),
Code::BL_i_A1 => BlIA1::check_op3(instr, op),
Code::BL_i_A2 => BlIA2::check_op3(instr, op),
Code::BXJ_A1 => BxjA1::check_op3(instr, op),
Code::BX_A1 => BxA1::check_op3(instr, op),
Code::B_A1 => BA1::check_op3(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op3(instr, op),
Code::CLREX_A1 => ClrexA1::check_op3(instr, op),
Code::CLZ_A1 => ClzA1::check_op3(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op3(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op3(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op3(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op3(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op3(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op3(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op3(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op3(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op3(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op3(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op3(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op3(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op3(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op3(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op3(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op3(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op3(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op3(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op3(instr, op),
Code::CSDB_A1 => CsdbA1::check_op3(instr, op),
Code::DBG_A1 => DbgA1::check_op3(instr, op),
Code::DMB_A1 => DmbA1::check_op3(instr, op),
Code::DSB_A1 => DsbA1::check_op3(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op3(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op3(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op3(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op3(instr, op),
Code::EOR_i_A1 => EorIA1::check_op3(instr, op),
Code::EOR_r_A1 => EorRA1::check_op3(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op3(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op3(instr, op),
Code::ERET_A1 => EretA1::check_op3(instr, op),
Code::ESB_A1 => EsbA1::check_op3(instr, op),
Code::HLT_A1 => HltA1::check_op3(instr, op),
Code::HVC_A1 => HvcA1::check_op3(instr, op),
Code::ISB_A1 => IsbA1::check_op3(instr, op),
Code::LDAB_A1 => LdabA1::check_op3(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op3(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op3(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op3(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op3(instr, op),
Code::LDAH_A1 => LdahA1::check_op3(instr, op),
Code::LDA_A1 => LdaA1::check_op3(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op3(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op3(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op3(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op3(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op3(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op3(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op3(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op3(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op3(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op3(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op3(instr, op),
Code::LDM_A1 => LdmA1::check_op3(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op3(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op3(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op3(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op3(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op3(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op3(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op3(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op3(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op3(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op3(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op3(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op3(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op3(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op3(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op3(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op3(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op3(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op3(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op3(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op3(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op3(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op3(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op3(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op3(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op3(instr, op),
Code::LDREX_A1 => LdrexA1::check_op3(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op3(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op3(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op3(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op3(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op3(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op3(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op3(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op3(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op3(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op3(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op3(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op3(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op3(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op3(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op3(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op3(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op3(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op3(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op3(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op3(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op3(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op3(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op3(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op3(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op3(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op3(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op3(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op3(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op3(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op3(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op3(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op3(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op3(instr, op),
Code::LDRT_A1 => LdrtA1::check_op3(instr, op),
Code::LDRT_A2 => LdrtA2::check_op3(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op3(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op3(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op3(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op3(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op3(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op3(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op3(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op3(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op3(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op3(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op3(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op3(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op3(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op3(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op3(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op3(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op3(instr, op),
Code::MCRR_A1 => McrrA1::check_op3(instr, op),
Code::MCR_A1 => McrA1::check_op3(instr, op),
Code::MLAS_A1 => MlasA1::check_op3(instr, op),
Code::MLA_A1 => MlaA1::check_op3(instr, op),
Code::MLS_A1 => MlsA1::check_op3(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op3(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op3(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op3(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op3(instr, op),
Code::MOVT_A1 => MovtA1::check_op3(instr, op),
Code::MOV_i_A1 => MovIA1::check_op3(instr, op),
Code::MOV_i_A2 => MovIA2::check_op3(instr, op),
Code::MOV_r_A1 => MovRA1::check_op3(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op3(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op3(instr, op),
Code::MRC_A1 => MrcA1::check_op3(instr, op),
Code::MRRC_A1 => MrrcA1::check_op3(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op3(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op3(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op3(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op3(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op3(instr, op),
Code::MULS_A1 => MulsA1::check_op3(instr, op),
Code::MUL_A1 => MulA1::check_op3(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op3(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op3(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op3(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op3(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op3(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op3(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op3(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op3(instr, op),
Code::NOP_A1 => NopA1::check_op3(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op3(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op3(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op3(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op3(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op3(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op3(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op3(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op3(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op3(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op3(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op3(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op3(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op3(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op3(instr, op),
Code::PLD_i_A1 => PldIA1::check_op3(instr, op),
Code::PLD_l_A1 => PldLA1::check_op3(instr, op),
Code::PLD_r_A1 => PldRA1::check_op3(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op3(instr, op),
Code::PLI_i_A1 => PliIA1::check_op3(instr, op),
Code::PLI_r_A1 => PliRA1::check_op3(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op3(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op3(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op3(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op3(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op3(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op3(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op3(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op3(instr, op),
Code::QADD_A1 => QaddA1::check_op3(instr, op),
Code::QASX_A1 => QasxA1::check_op3(instr, op),
Code::QDADD_A1 => QdaddA1::check_op3(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op3(instr, op),
Code::QSAX_A1 => QsaxA1::check_op3(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op3(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op3(instr, op),
Code::QSUB_A1 => QsubA1::check_op3(instr, op),
Code::RBIT_A1 => RbitA1::check_op3(instr, op),
Code::REV16_A1 => Rev16A1::check_op3(instr, op),
Code::REVSH_A1 => RevshA1::check_op3(instr, op),
Code::REV_A1 => RevA1::check_op3(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op3(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op3(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op3(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op3(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op3(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op3(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op3(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op3(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op3(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op3(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op3(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op3(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op3(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op3(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op3(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op3(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op3(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op3(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op3(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op3(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op3(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op3(instr, op),
Code::RSC_i_A1 => RscIA1::check_op3(instr, op),
Code::RSC_r_A1 => RscRA1::check_op3(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op3(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op3(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op3(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op3(instr, op),
Code::SASX_A1 => SasxA1::check_op3(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op3(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op3(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op3(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op3(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op3(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op3(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op3(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op3(instr, op),
Code::SBFX_A1 => SbfxA1::check_op3(instr, op),
Code::SB_A1 => SbA1::check_op3(instr, op),
Code::SDIV_A1 => SdivA1::check_op3(instr, op),
Code::SEL_A1 => SelA1::check_op3(instr, op),
Code::SETEND_A1 => SetendA1::check_op3(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op3(instr, op),
Code::SEVL_A1 => SevlA1::check_op3(instr, op),
Code::SEV_A1 => SevA1::check_op3(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op3(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op3(instr, op),
Code::SHASX_A1 => ShasxA1::check_op3(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op3(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op3(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op3(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op3(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op3(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op3(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op3(instr, op),
Code::SMLAD_A1 => SmladA1::check_op3(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op3(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op3(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op3(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op3(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op3(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op3(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op3(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op3(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op3(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op3(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op3(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op3(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op3(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op3(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op3(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op3(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op3(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op3(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op3(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op3(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op3(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op3(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op3(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op3(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op3(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op3(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op3(instr, op),
Code::SMULL_A1 => SmullA1::check_op3(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op3(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op3(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op3(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op3(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op3(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op3(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op3(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op3(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op3(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op3(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op3(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op3(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op3(instr, op),
Code::SSAX_A1 => SsaxA1::check_op3(instr, op),
Code::SSBB_A1 => SsbbA1::check_op3(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op3(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op3(instr, op),
Code::STC_A1_off => StcA1Off::check_op3(instr, op),
Code::STC_A1_post => StcA1Post::check_op3(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op3(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op3(instr, op),
Code::STLB_A1 => StlbA1::check_op3(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op3(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op3(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op3(instr, op),
Code::STLEX_A1 => StlexA1::check_op3(instr, op),
Code::STLH_A1 => StlhA1::check_op3(instr, op),
Code::STL_A1 => StlA1::check_op3(instr, op),
Code::STMDA_A1 => StmdaA1::check_op3(instr, op),
Code::STMDB_A1 => StmdbA1::check_op3(instr, op),
Code::STMIB_A1 => StmibA1::check_op3(instr, op),
Code::STM_A1 => StmA1::check_op3(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op3(instr, op),
Code::STRBT_A1 => StrbtA1::check_op3(instr, op),
Code::STRBT_A2 => StrbtA2::check_op3(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op3(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op3(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op3(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op3(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op3(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op3(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op3(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op3(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op3(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op3(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op3(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op3(instr, op),
Code::STREXB_A1 => StrexbA1::check_op3(instr, op),
Code::STREXD_A1 => StrexdA1::check_op3(instr, op),
Code::STREXH_A1 => StrexhA1::check_op3(instr, op),
Code::STREX_A1 => StrexA1::check_op3(instr, op),
Code::STRHT_A1 => StrhtA1::check_op3(instr, op),
Code::STRHT_A2 => StrhtA2::check_op3(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op3(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op3(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op3(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op3(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op3(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op3(instr, op),
Code::STRT_A1 => StrtA1::check_op3(instr, op),
Code::STRT_A2 => StrtA2::check_op3(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op3(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op3(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op3(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op3(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op3(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op3(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op3(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op3(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op3(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op3(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op3(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op3(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op3(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op3(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op3(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op3(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op3(instr, op),
Code::SUB_i_A1 => SubIA1::check_op3(instr, op),
Code::SUB_r_A1 => SubRA1::check_op3(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op3(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op3(instr, op),
Code::SVC_A1 => SvcA1::check_op3(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op3(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op3(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op3(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op3(instr, op),
Code::SXTB_A1 => SxtbA1::check_op3(instr, op),
Code::SXTH_A1 => SxthA1::check_op3(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op3(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op3(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op3(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op3(instr, op),
Code::TSB_A1 => TsbA1::check_op3(instr, op),
Code::TST_i_A1 => TstIA1::check_op3(instr, op),
Code::TST_r_A1 => TstRA1::check_op3(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op3(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op3(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op3(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op3(instr, op),
Code::UASX_A1 => UasxA1::check_op3(instr, op),
Code::UBFX_A1 => UbfxA1::check_op3(instr, op),
Code::UDF_A1 => UdfA1::check_op3(instr, op),
Code::UDIV_A1 => UdivA1::check_op3(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op3(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op3(instr, op),
Code::UHASX_A1 => UhasxA1::check_op3(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op3(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op3(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op3(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op3(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op3(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op3(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op3(instr, op),
Code::UMULL_A1 => UmullA1::check_op3(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op3(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op3(instr, op),
Code::UQASX_A1 => UqasxA1::check_op3(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op3(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op3(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op3(instr, op),
Code::USAD8_A1 => Usad8A1::check_op3(instr, op),
Code::USADA8_A1 => Usada8A1::check_op3(instr, op),
Code::USAT16_A1 => Usat16A1::check_op3(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op3(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op3(instr, op),
Code::USAX_A1 => UsaxA1::check_op3(instr, op),
Code::USUB16_A1 => Usub16A1::check_op3(instr, op),
Code::USUB8_A1 => Usub8A1::check_op3(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op3(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op3(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op3(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op3(instr, op),
Code::UXTB_A1 => UxtbA1::check_op3(instr, op),
Code::UXTH_A1 => UxthA1::check_op3(instr, op),
Code::WFE_A1 => WfeA1::check_op3(instr, op),
Code::WFI_A1 => WfiA1::check_op3(instr, op),
Code::YIELD_A1 => YieldA1::check_op3(instr, op),
}
}
pub fn check_op4(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op4(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op4(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op4(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op4(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op4(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op4(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op4(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op4(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op4(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op4(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op4(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op4(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op4(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op4(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op4(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op4(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op4(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op4(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op4(instr, op),
Code::ADD_i_A1 => AddIA1::check_op4(instr, op),
Code::ADD_r_A1 => AddRA1::check_op4(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op4(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op4(instr, op),
Code::ADR_A1 => AdrA1::check_op4(instr, op),
Code::ADR_A2 => AdrA2::check_op4(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op4(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op4(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op4(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op4(instr, op),
Code::AND_i_A1 => AndIA1::check_op4(instr, op),
Code::AND_r_A1 => AndRA1::check_op4(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op4(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op4(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op4(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op4(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op4(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op4(instr, op),
Code::BFC_A1 => BfcA1::check_op4(instr, op),
Code::BFI_A1 => BfiA1::check_op4(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op4(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op4(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op4(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op4(instr, op),
Code::BIC_i_A1 => BicIA1::check_op4(instr, op),
Code::BIC_r_A1 => BicRA1::check_op4(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op4(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op4(instr, op),
Code::BKPT_A1 => BkptA1::check_op4(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op4(instr, op),
Code::BL_i_A1 => BlIA1::check_op4(instr, op),
Code::BL_i_A2 => BlIA2::check_op4(instr, op),
Code::BXJ_A1 => BxjA1::check_op4(instr, op),
Code::BX_A1 => BxA1::check_op4(instr, op),
Code::B_A1 => BA1::check_op4(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op4(instr, op),
Code::CLREX_A1 => ClrexA1::check_op4(instr, op),
Code::CLZ_A1 => ClzA1::check_op4(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op4(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op4(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op4(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op4(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op4(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op4(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op4(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op4(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op4(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op4(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op4(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op4(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op4(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op4(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op4(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op4(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op4(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op4(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op4(instr, op),
Code::CSDB_A1 => CsdbA1::check_op4(instr, op),
Code::DBG_A1 => DbgA1::check_op4(instr, op),
Code::DMB_A1 => DmbA1::check_op4(instr, op),
Code::DSB_A1 => DsbA1::check_op4(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op4(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op4(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op4(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op4(instr, op),
Code::EOR_i_A1 => EorIA1::check_op4(instr, op),
Code::EOR_r_A1 => EorRA1::check_op4(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op4(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op4(instr, op),
Code::ERET_A1 => EretA1::check_op4(instr, op),
Code::ESB_A1 => EsbA1::check_op4(instr, op),
Code::HLT_A1 => HltA1::check_op4(instr, op),
Code::HVC_A1 => HvcA1::check_op4(instr, op),
Code::ISB_A1 => IsbA1::check_op4(instr, op),
Code::LDAB_A1 => LdabA1::check_op4(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op4(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op4(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op4(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op4(instr, op),
Code::LDAH_A1 => LdahA1::check_op4(instr, op),
Code::LDA_A1 => LdaA1::check_op4(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op4(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op4(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op4(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op4(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op4(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op4(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op4(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op4(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op4(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op4(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op4(instr, op),
Code::LDM_A1 => LdmA1::check_op4(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op4(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op4(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op4(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op4(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op4(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op4(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op4(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op4(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op4(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op4(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op4(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op4(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op4(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op4(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op4(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op4(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op4(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op4(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op4(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op4(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op4(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op4(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op4(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op4(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op4(instr, op),
Code::LDREX_A1 => LdrexA1::check_op4(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op4(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op4(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op4(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op4(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op4(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op4(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op4(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op4(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op4(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op4(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op4(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op4(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op4(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op4(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op4(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op4(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op4(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op4(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op4(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op4(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op4(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op4(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op4(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op4(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op4(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op4(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op4(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op4(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op4(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op4(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op4(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op4(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op4(instr, op),
Code::LDRT_A1 => LdrtA1::check_op4(instr, op),
Code::LDRT_A2 => LdrtA2::check_op4(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op4(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op4(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op4(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op4(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op4(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op4(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op4(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op4(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op4(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op4(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op4(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op4(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op4(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op4(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op4(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op4(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op4(instr, op),
Code::MCRR_A1 => McrrA1::check_op4(instr, op),
Code::MCR_A1 => McrA1::check_op4(instr, op),
Code::MLAS_A1 => MlasA1::check_op4(instr, op),
Code::MLA_A1 => MlaA1::check_op4(instr, op),
Code::MLS_A1 => MlsA1::check_op4(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op4(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op4(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op4(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op4(instr, op),
Code::MOVT_A1 => MovtA1::check_op4(instr, op),
Code::MOV_i_A1 => MovIA1::check_op4(instr, op),
Code::MOV_i_A2 => MovIA2::check_op4(instr, op),
Code::MOV_r_A1 => MovRA1::check_op4(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op4(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op4(instr, op),
Code::MRC_A1 => MrcA1::check_op4(instr, op),
Code::MRRC_A1 => MrrcA1::check_op4(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op4(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op4(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op4(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op4(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op4(instr, op),
Code::MULS_A1 => MulsA1::check_op4(instr, op),
Code::MUL_A1 => MulA1::check_op4(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op4(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op4(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op4(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op4(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op4(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op4(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op4(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op4(instr, op),
Code::NOP_A1 => NopA1::check_op4(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op4(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op4(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op4(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op4(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op4(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op4(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op4(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op4(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op4(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op4(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op4(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op4(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op4(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op4(instr, op),
Code::PLD_i_A1 => PldIA1::check_op4(instr, op),
Code::PLD_l_A1 => PldLA1::check_op4(instr, op),
Code::PLD_r_A1 => PldRA1::check_op4(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op4(instr, op),
Code::PLI_i_A1 => PliIA1::check_op4(instr, op),
Code::PLI_r_A1 => PliRA1::check_op4(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op4(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op4(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op4(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op4(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op4(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op4(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op4(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op4(instr, op),
Code::QADD_A1 => QaddA1::check_op4(instr, op),
Code::QASX_A1 => QasxA1::check_op4(instr, op),
Code::QDADD_A1 => QdaddA1::check_op4(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op4(instr, op),
Code::QSAX_A1 => QsaxA1::check_op4(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op4(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op4(instr, op),
Code::QSUB_A1 => QsubA1::check_op4(instr, op),
Code::RBIT_A1 => RbitA1::check_op4(instr, op),
Code::REV16_A1 => Rev16A1::check_op4(instr, op),
Code::REVSH_A1 => RevshA1::check_op4(instr, op),
Code::REV_A1 => RevA1::check_op4(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op4(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op4(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op4(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op4(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op4(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op4(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op4(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op4(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op4(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op4(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op4(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op4(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op4(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op4(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op4(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op4(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op4(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op4(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op4(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op4(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op4(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op4(instr, op),
Code::RSC_i_A1 => RscIA1::check_op4(instr, op),
Code::RSC_r_A1 => RscRA1::check_op4(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op4(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op4(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op4(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op4(instr, op),
Code::SASX_A1 => SasxA1::check_op4(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op4(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op4(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op4(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op4(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op4(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op4(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op4(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op4(instr, op),
Code::SBFX_A1 => SbfxA1::check_op4(instr, op),
Code::SB_A1 => SbA1::check_op4(instr, op),
Code::SDIV_A1 => SdivA1::check_op4(instr, op),
Code::SEL_A1 => SelA1::check_op4(instr, op),
Code::SETEND_A1 => SetendA1::check_op4(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op4(instr, op),
Code::SEVL_A1 => SevlA1::check_op4(instr, op),
Code::SEV_A1 => SevA1::check_op4(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op4(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op4(instr, op),
Code::SHASX_A1 => ShasxA1::check_op4(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op4(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op4(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op4(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op4(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op4(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op4(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op4(instr, op),
Code::SMLAD_A1 => SmladA1::check_op4(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op4(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op4(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op4(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op4(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op4(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op4(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op4(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op4(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op4(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op4(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op4(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op4(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op4(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op4(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op4(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op4(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op4(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op4(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op4(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op4(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op4(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op4(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op4(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op4(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op4(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op4(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op4(instr, op),
Code::SMULL_A1 => SmullA1::check_op4(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op4(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op4(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op4(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op4(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op4(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op4(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op4(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op4(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op4(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op4(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op4(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op4(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op4(instr, op),
Code::SSAX_A1 => SsaxA1::check_op4(instr, op),
Code::SSBB_A1 => SsbbA1::check_op4(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op4(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op4(instr, op),
Code::STC_A1_off => StcA1Off::check_op4(instr, op),
Code::STC_A1_post => StcA1Post::check_op4(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op4(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op4(instr, op),
Code::STLB_A1 => StlbA1::check_op4(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op4(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op4(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op4(instr, op),
Code::STLEX_A1 => StlexA1::check_op4(instr, op),
Code::STLH_A1 => StlhA1::check_op4(instr, op),
Code::STL_A1 => StlA1::check_op4(instr, op),
Code::STMDA_A1 => StmdaA1::check_op4(instr, op),
Code::STMDB_A1 => StmdbA1::check_op4(instr, op),
Code::STMIB_A1 => StmibA1::check_op4(instr, op),
Code::STM_A1 => StmA1::check_op4(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op4(instr, op),
Code::STRBT_A1 => StrbtA1::check_op4(instr, op),
Code::STRBT_A2 => StrbtA2::check_op4(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op4(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op4(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op4(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op4(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op4(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op4(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op4(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op4(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op4(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op4(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op4(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op4(instr, op),
Code::STREXB_A1 => StrexbA1::check_op4(instr, op),
Code::STREXD_A1 => StrexdA1::check_op4(instr, op),
Code::STREXH_A1 => StrexhA1::check_op4(instr, op),
Code::STREX_A1 => StrexA1::check_op4(instr, op),
Code::STRHT_A1 => StrhtA1::check_op4(instr, op),
Code::STRHT_A2 => StrhtA2::check_op4(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op4(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op4(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op4(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op4(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op4(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op4(instr, op),
Code::STRT_A1 => StrtA1::check_op4(instr, op),
Code::STRT_A2 => StrtA2::check_op4(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op4(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op4(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op4(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op4(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op4(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op4(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op4(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op4(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op4(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op4(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op4(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op4(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op4(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op4(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op4(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op4(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op4(instr, op),
Code::SUB_i_A1 => SubIA1::check_op4(instr, op),
Code::SUB_r_A1 => SubRA1::check_op4(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op4(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op4(instr, op),
Code::SVC_A1 => SvcA1::check_op4(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op4(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op4(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op4(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op4(instr, op),
Code::SXTB_A1 => SxtbA1::check_op4(instr, op),
Code::SXTH_A1 => SxthA1::check_op4(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op4(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op4(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op4(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op4(instr, op),
Code::TSB_A1 => TsbA1::check_op4(instr, op),
Code::TST_i_A1 => TstIA1::check_op4(instr, op),
Code::TST_r_A1 => TstRA1::check_op4(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op4(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op4(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op4(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op4(instr, op),
Code::UASX_A1 => UasxA1::check_op4(instr, op),
Code::UBFX_A1 => UbfxA1::check_op4(instr, op),
Code::UDF_A1 => UdfA1::check_op4(instr, op),
Code::UDIV_A1 => UdivA1::check_op4(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op4(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op4(instr, op),
Code::UHASX_A1 => UhasxA1::check_op4(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op4(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op4(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op4(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op4(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op4(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op4(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op4(instr, op),
Code::UMULL_A1 => UmullA1::check_op4(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op4(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op4(instr, op),
Code::UQASX_A1 => UqasxA1::check_op4(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op4(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op4(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op4(instr, op),
Code::USAD8_A1 => Usad8A1::check_op4(instr, op),
Code::USADA8_A1 => Usada8A1::check_op4(instr, op),
Code::USAT16_A1 => Usat16A1::check_op4(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op4(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op4(instr, op),
Code::USAX_A1 => UsaxA1::check_op4(instr, op),
Code::USUB16_A1 => Usub16A1::check_op4(instr, op),
Code::USUB8_A1 => Usub8A1::check_op4(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op4(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op4(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op4(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op4(instr, op),
Code::UXTB_A1 => UxtbA1::check_op4(instr, op),
Code::UXTH_A1 => UxthA1::check_op4(instr, op),
Code::WFE_A1 => WfeA1::check_op4(instr, op),
Code::WFI_A1 => WfiA1::check_op4(instr, op),
Code::YIELD_A1 => YieldA1::check_op4(instr, op),
}
}
pub fn check_op5(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op5(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op5(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op5(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op5(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op5(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op5(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op5(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op5(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op5(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op5(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op5(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op5(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op5(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op5(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op5(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op5(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op5(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op5(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op5(instr, op),
Code::ADD_i_A1 => AddIA1::check_op5(instr, op),
Code::ADD_r_A1 => AddRA1::check_op5(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op5(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op5(instr, op),
Code::ADR_A1 => AdrA1::check_op5(instr, op),
Code::ADR_A2 => AdrA2::check_op5(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op5(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op5(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op5(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op5(instr, op),
Code::AND_i_A1 => AndIA1::check_op5(instr, op),
Code::AND_r_A1 => AndRA1::check_op5(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op5(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op5(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op5(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op5(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op5(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op5(instr, op),
Code::BFC_A1 => BfcA1::check_op5(instr, op),
Code::BFI_A1 => BfiA1::check_op5(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op5(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op5(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op5(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op5(instr, op),
Code::BIC_i_A1 => BicIA1::check_op5(instr, op),
Code::BIC_r_A1 => BicRA1::check_op5(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op5(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op5(instr, op),
Code::BKPT_A1 => BkptA1::check_op5(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op5(instr, op),
Code::BL_i_A1 => BlIA1::check_op5(instr, op),
Code::BL_i_A2 => BlIA2::check_op5(instr, op),
Code::BXJ_A1 => BxjA1::check_op5(instr, op),
Code::BX_A1 => BxA1::check_op5(instr, op),
Code::B_A1 => BA1::check_op5(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op5(instr, op),
Code::CLREX_A1 => ClrexA1::check_op5(instr, op),
Code::CLZ_A1 => ClzA1::check_op5(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op5(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op5(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op5(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op5(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op5(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op5(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op5(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op5(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op5(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op5(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op5(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op5(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op5(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op5(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op5(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op5(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op5(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op5(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op5(instr, op),
Code::CSDB_A1 => CsdbA1::check_op5(instr, op),
Code::DBG_A1 => DbgA1::check_op5(instr, op),
Code::DMB_A1 => DmbA1::check_op5(instr, op),
Code::DSB_A1 => DsbA1::check_op5(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op5(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op5(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op5(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op5(instr, op),
Code::EOR_i_A1 => EorIA1::check_op5(instr, op),
Code::EOR_r_A1 => EorRA1::check_op5(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op5(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op5(instr, op),
Code::ERET_A1 => EretA1::check_op5(instr, op),
Code::ESB_A1 => EsbA1::check_op5(instr, op),
Code::HLT_A1 => HltA1::check_op5(instr, op),
Code::HVC_A1 => HvcA1::check_op5(instr, op),
Code::ISB_A1 => IsbA1::check_op5(instr, op),
Code::LDAB_A1 => LdabA1::check_op5(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op5(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op5(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op5(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op5(instr, op),
Code::LDAH_A1 => LdahA1::check_op5(instr, op),
Code::LDA_A1 => LdaA1::check_op5(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op5(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op5(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op5(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op5(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op5(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op5(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op5(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op5(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op5(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op5(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op5(instr, op),
Code::LDM_A1 => LdmA1::check_op5(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op5(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op5(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op5(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op5(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op5(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op5(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op5(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op5(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op5(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op5(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op5(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op5(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op5(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op5(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op5(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op5(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op5(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op5(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op5(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op5(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op5(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op5(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op5(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op5(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op5(instr, op),
Code::LDREX_A1 => LdrexA1::check_op5(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op5(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op5(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op5(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op5(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op5(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op5(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op5(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op5(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op5(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op5(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op5(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op5(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op5(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op5(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op5(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op5(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op5(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op5(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op5(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op5(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op5(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op5(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op5(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op5(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op5(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op5(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op5(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op5(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op5(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op5(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op5(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op5(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op5(instr, op),
Code::LDRT_A1 => LdrtA1::check_op5(instr, op),
Code::LDRT_A2 => LdrtA2::check_op5(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op5(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op5(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op5(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op5(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op5(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op5(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op5(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op5(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op5(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op5(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op5(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op5(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op5(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op5(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op5(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op5(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op5(instr, op),
Code::MCRR_A1 => McrrA1::check_op5(instr, op),
Code::MCR_A1 => McrA1::check_op5(instr, op),
Code::MLAS_A1 => MlasA1::check_op5(instr, op),
Code::MLA_A1 => MlaA1::check_op5(instr, op),
Code::MLS_A1 => MlsA1::check_op5(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op5(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op5(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op5(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op5(instr, op),
Code::MOVT_A1 => MovtA1::check_op5(instr, op),
Code::MOV_i_A1 => MovIA1::check_op5(instr, op),
Code::MOV_i_A2 => MovIA2::check_op5(instr, op),
Code::MOV_r_A1 => MovRA1::check_op5(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op5(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op5(instr, op),
Code::MRC_A1 => MrcA1::check_op5(instr, op),
Code::MRRC_A1 => MrrcA1::check_op5(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op5(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op5(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op5(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op5(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op5(instr, op),
Code::MULS_A1 => MulsA1::check_op5(instr, op),
Code::MUL_A1 => MulA1::check_op5(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op5(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op5(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op5(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op5(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op5(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op5(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op5(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op5(instr, op),
Code::NOP_A1 => NopA1::check_op5(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op5(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op5(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op5(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op5(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op5(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op5(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op5(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op5(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op5(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op5(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op5(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op5(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op5(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op5(instr, op),
Code::PLD_i_A1 => PldIA1::check_op5(instr, op),
Code::PLD_l_A1 => PldLA1::check_op5(instr, op),
Code::PLD_r_A1 => PldRA1::check_op5(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op5(instr, op),
Code::PLI_i_A1 => PliIA1::check_op5(instr, op),
Code::PLI_r_A1 => PliRA1::check_op5(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op5(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op5(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op5(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op5(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op5(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op5(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op5(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op5(instr, op),
Code::QADD_A1 => QaddA1::check_op5(instr, op),
Code::QASX_A1 => QasxA1::check_op5(instr, op),
Code::QDADD_A1 => QdaddA1::check_op5(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op5(instr, op),
Code::QSAX_A1 => QsaxA1::check_op5(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op5(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op5(instr, op),
Code::QSUB_A1 => QsubA1::check_op5(instr, op),
Code::RBIT_A1 => RbitA1::check_op5(instr, op),
Code::REV16_A1 => Rev16A1::check_op5(instr, op),
Code::REVSH_A1 => RevshA1::check_op5(instr, op),
Code::REV_A1 => RevA1::check_op5(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op5(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op5(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op5(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op5(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op5(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op5(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op5(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op5(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op5(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op5(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op5(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op5(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op5(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op5(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op5(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op5(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op5(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op5(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op5(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op5(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op5(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op5(instr, op),
Code::RSC_i_A1 => RscIA1::check_op5(instr, op),
Code::RSC_r_A1 => RscRA1::check_op5(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op5(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op5(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op5(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op5(instr, op),
Code::SASX_A1 => SasxA1::check_op5(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op5(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op5(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op5(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op5(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op5(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op5(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op5(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op5(instr, op),
Code::SBFX_A1 => SbfxA1::check_op5(instr, op),
Code::SB_A1 => SbA1::check_op5(instr, op),
Code::SDIV_A1 => SdivA1::check_op5(instr, op),
Code::SEL_A1 => SelA1::check_op5(instr, op),
Code::SETEND_A1 => SetendA1::check_op5(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op5(instr, op),
Code::SEVL_A1 => SevlA1::check_op5(instr, op),
Code::SEV_A1 => SevA1::check_op5(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op5(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op5(instr, op),
Code::SHASX_A1 => ShasxA1::check_op5(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op5(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op5(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op5(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op5(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op5(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op5(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op5(instr, op),
Code::SMLAD_A1 => SmladA1::check_op5(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op5(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op5(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op5(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op5(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op5(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op5(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op5(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op5(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op5(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op5(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op5(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op5(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op5(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op5(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op5(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op5(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op5(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op5(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op5(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op5(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op5(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op5(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op5(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op5(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op5(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op5(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op5(instr, op),
Code::SMULL_A1 => SmullA1::check_op5(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op5(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op5(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op5(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op5(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op5(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op5(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op5(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op5(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op5(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op5(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op5(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op5(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op5(instr, op),
Code::SSAX_A1 => SsaxA1::check_op5(instr, op),
Code::SSBB_A1 => SsbbA1::check_op5(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op5(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op5(instr, op),
Code::STC_A1_off => StcA1Off::check_op5(instr, op),
Code::STC_A1_post => StcA1Post::check_op5(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op5(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op5(instr, op),
Code::STLB_A1 => StlbA1::check_op5(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op5(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op5(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op5(instr, op),
Code::STLEX_A1 => StlexA1::check_op5(instr, op),
Code::STLH_A1 => StlhA1::check_op5(instr, op),
Code::STL_A1 => StlA1::check_op5(instr, op),
Code::STMDA_A1 => StmdaA1::check_op5(instr, op),
Code::STMDB_A1 => StmdbA1::check_op5(instr, op),
Code::STMIB_A1 => StmibA1::check_op5(instr, op),
Code::STM_A1 => StmA1::check_op5(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op5(instr, op),
Code::STRBT_A1 => StrbtA1::check_op5(instr, op),
Code::STRBT_A2 => StrbtA2::check_op5(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op5(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op5(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op5(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op5(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op5(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op5(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op5(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op5(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op5(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op5(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op5(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op5(instr, op),
Code::STREXB_A1 => StrexbA1::check_op5(instr, op),
Code::STREXD_A1 => StrexdA1::check_op5(instr, op),
Code::STREXH_A1 => StrexhA1::check_op5(instr, op),
Code::STREX_A1 => StrexA1::check_op5(instr, op),
Code::STRHT_A1 => StrhtA1::check_op5(instr, op),
Code::STRHT_A2 => StrhtA2::check_op5(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op5(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op5(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op5(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op5(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op5(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op5(instr, op),
Code::STRT_A1 => StrtA1::check_op5(instr, op),
Code::STRT_A2 => StrtA2::check_op5(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op5(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op5(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op5(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op5(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op5(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op5(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op5(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op5(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op5(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op5(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op5(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op5(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op5(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op5(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op5(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op5(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op5(instr, op),
Code::SUB_i_A1 => SubIA1::check_op5(instr, op),
Code::SUB_r_A1 => SubRA1::check_op5(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op5(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op5(instr, op),
Code::SVC_A1 => SvcA1::check_op5(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op5(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op5(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op5(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op5(instr, op),
Code::SXTB_A1 => SxtbA1::check_op5(instr, op),
Code::SXTH_A1 => SxthA1::check_op5(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op5(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op5(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op5(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op5(instr, op),
Code::TSB_A1 => TsbA1::check_op5(instr, op),
Code::TST_i_A1 => TstIA1::check_op5(instr, op),
Code::TST_r_A1 => TstRA1::check_op5(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op5(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op5(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op5(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op5(instr, op),
Code::UASX_A1 => UasxA1::check_op5(instr, op),
Code::UBFX_A1 => UbfxA1::check_op5(instr, op),
Code::UDF_A1 => UdfA1::check_op5(instr, op),
Code::UDIV_A1 => UdivA1::check_op5(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op5(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op5(instr, op),
Code::UHASX_A1 => UhasxA1::check_op5(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op5(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op5(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op5(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op5(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op5(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op5(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op5(instr, op),
Code::UMULL_A1 => UmullA1::check_op5(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op5(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op5(instr, op),
Code::UQASX_A1 => UqasxA1::check_op5(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op5(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op5(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op5(instr, op),
Code::USAD8_A1 => Usad8A1::check_op5(instr, op),
Code::USADA8_A1 => Usada8A1::check_op5(instr, op),
Code::USAT16_A1 => Usat16A1::check_op5(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op5(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op5(instr, op),
Code::USAX_A1 => UsaxA1::check_op5(instr, op),
Code::USUB16_A1 => Usub16A1::check_op5(instr, op),
Code::USUB8_A1 => Usub8A1::check_op5(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op5(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op5(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op5(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op5(instr, op),
Code::UXTB_A1 => UxtbA1::check_op5(instr, op),
Code::UXTH_A1 => UxthA1::check_op5(instr, op),
Code::WFE_A1 => WfeA1::check_op5(instr, op),
Code::WFI_A1 => WfiA1::check_op5(instr, op),
Code::YIELD_A1 => YieldA1::check_op5(instr, op),
}
}
pub fn check_op6(&self, instr: &Instruction, op: &Operand) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::check_op6(instr, op),
Code::ADCS_r_A1 => AdcsRA1::check_op6(instr, op),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::check_op6(instr, op),
Code::ADCS_rr_A1 => AdcsRrA1::check_op6(instr, op),
Code::ADC_i_A1 => AdcIA1::check_op6(instr, op),
Code::ADC_r_A1 => AdcRA1::check_op6(instr, op),
Code::ADC_r_A1_RRX => AdcRA1Rrx::check_op6(instr, op),
Code::ADC_rr_A1 => AdcRrA1::check_op6(instr, op),
Code::ADDS_SP_i_A1 => AddsSpIA1::check_op6(instr, op),
Code::ADDS_SP_r_A1 => AddsSpRA1::check_op6(instr, op),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::check_op6(instr, op),
Code::ADDS_i_A1 => AddsIA1::check_op6(instr, op),
Code::ADDS_r_A1 => AddsRA1::check_op6(instr, op),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::check_op6(instr, op),
Code::ADDS_rr_A1 => AddsRrA1::check_op6(instr, op),
Code::ADD_ADR_A1 => AddAdrA1::check_op6(instr, op),
Code::ADD_SP_i_A1 => AddSpIA1::check_op6(instr, op),
Code::ADD_SP_r_A1 => AddSpRA1::check_op6(instr, op),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::check_op6(instr, op),
Code::ADD_i_A1 => AddIA1::check_op6(instr, op),
Code::ADD_r_A1 => AddRA1::check_op6(instr, op),
Code::ADD_r_A1_RRX => AddRA1Rrx::check_op6(instr, op),
Code::ADD_rr_A1 => AddRrA1::check_op6(instr, op),
Code::ADR_A1 => AdrA1::check_op6(instr, op),
Code::ADR_A2 => AdrA2::check_op6(instr, op),
Code::ANDS_i_A1 => AndsIA1::check_op6(instr, op),
Code::ANDS_r_A1 => AndsRA1::check_op6(instr, op),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::check_op6(instr, op),
Code::ANDS_rr_A1 => AndsRrA1::check_op6(instr, op),
Code::AND_i_A1 => AndIA1::check_op6(instr, op),
Code::AND_r_A1 => AndRA1::check_op6(instr, op),
Code::AND_r_A1_RRX => AndRA1Rrx::check_op6(instr, op),
Code::AND_rr_A1 => AndRrA1::check_op6(instr, op),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::check_op6(instr, op),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::check_op6(instr, op),
Code::ASR_MOV_r_A1 => AsrMovRA1::check_op6(instr, op),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::check_op6(instr, op),
Code::BFC_A1 => BfcA1::check_op6(instr, op),
Code::BFI_A1 => BfiA1::check_op6(instr, op),
Code::BICS_i_A1 => BicsIA1::check_op6(instr, op),
Code::BICS_r_A1 => BicsRA1::check_op6(instr, op),
Code::BICS_r_A1_RRX => BicsRA1Rrx::check_op6(instr, op),
Code::BICS_rr_A1 => BicsRrA1::check_op6(instr, op),
Code::BIC_i_A1 => BicIA1::check_op6(instr, op),
Code::BIC_r_A1 => BicRA1::check_op6(instr, op),
Code::BIC_r_A1_RRX => BicRA1Rrx::check_op6(instr, op),
Code::BIC_rr_A1 => BicRrA1::check_op6(instr, op),
Code::BKPT_A1 => BkptA1::check_op6(instr, op),
Code::BLX_r_A1 => BlxRA1::check_op6(instr, op),
Code::BL_i_A1 => BlIA1::check_op6(instr, op),
Code::BL_i_A2 => BlIA2::check_op6(instr, op),
Code::BXJ_A1 => BxjA1::check_op6(instr, op),
Code::BX_A1 => BxA1::check_op6(instr, op),
Code::B_A1 => BA1::check_op6(instr, op),
Code::CLRBHB_A1 => ClrbhbA1::check_op6(instr, op),
Code::CLREX_A1 => ClrexA1::check_op6(instr, op),
Code::CLZ_A1 => ClzA1::check_op6(instr, op),
Code::CMN_i_A1 => CmnIA1::check_op6(instr, op),
Code::CMN_r_A1 => CmnRA1::check_op6(instr, op),
Code::CMN_r_A1_RRX => CmnRA1Rrx::check_op6(instr, op),
Code::CMN_rr_A1 => CmnRrA1::check_op6(instr, op),
Code::CMP_i_A1 => CmpIA1::check_op6(instr, op),
Code::CMP_r_A1 => CmpRA1::check_op6(instr, op),
Code::CMP_r_A1_RRX => CmpRA1Rrx::check_op6(instr, op),
Code::CMP_rr_A1 => CmpRrA1::check_op6(instr, op),
Code::CPSID_A1_AS => CpsidA1As::check_op6(instr, op),
Code::CPSID_A1_ASM => CpsidA1Asm::check_op6(instr, op),
Code::CPSIE_A1_AS => CpsieA1As::check_op6(instr, op),
Code::CPSIE_A1_ASM => CpsieA1Asm::check_op6(instr, op),
Code::CPS_A1_AS => CpsA1As::check_op6(instr, op),
Code::CRC32B_A1 => Crc32bA1::check_op6(instr, op),
Code::CRC32CB_A1 => Crc32cbA1::check_op6(instr, op),
Code::CRC32CH_A1 => Crc32chA1::check_op6(instr, op),
Code::CRC32CW_A1 => Crc32cwA1::check_op6(instr, op),
Code::CRC32H_A1 => Crc32hA1::check_op6(instr, op),
Code::CRC32W_A1 => Crc32wA1::check_op6(instr, op),
Code::CSDB_A1 => CsdbA1::check_op6(instr, op),
Code::DBG_A1 => DbgA1::check_op6(instr, op),
Code::DMB_A1 => DmbA1::check_op6(instr, op),
Code::DSB_A1 => DsbA1::check_op6(instr, op),
Code::EORS_i_A1 => EorsIA1::check_op6(instr, op),
Code::EORS_r_A1 => EorsRA1::check_op6(instr, op),
Code::EORS_r_A1_RRX => EorsRA1Rrx::check_op6(instr, op),
Code::EORS_rr_A1 => EorsRrA1::check_op6(instr, op),
Code::EOR_i_A1 => EorIA1::check_op6(instr, op),
Code::EOR_r_A1 => EorRA1::check_op6(instr, op),
Code::EOR_r_A1_RRX => EorRA1Rrx::check_op6(instr, op),
Code::EOR_rr_A1 => EorRrA1::check_op6(instr, op),
Code::ERET_A1 => EretA1::check_op6(instr, op),
Code::ESB_A1 => EsbA1::check_op6(instr, op),
Code::HLT_A1 => HltA1::check_op6(instr, op),
Code::HVC_A1 => HvcA1::check_op6(instr, op),
Code::ISB_A1 => IsbA1::check_op6(instr, op),
Code::LDAB_A1 => LdabA1::check_op6(instr, op),
Code::LDAEXB_A1 => LdaexbA1::check_op6(instr, op),
Code::LDAEXD_A1 => LdaexdA1::check_op6(instr, op),
Code::LDAEXH_A1 => LdaexhA1::check_op6(instr, op),
Code::LDAEX_A1 => LdaexA1::check_op6(instr, op),
Code::LDAH_A1 => LdahA1::check_op6(instr, op),
Code::LDA_A1 => LdaA1::check_op6(instr, op),
Code::LDC_i_A1_off => LdcIA1Off::check_op6(instr, op),
Code::LDC_i_A1_post => LdcIA1Post::check_op6(instr, op),
Code::LDC_i_A1_pre => LdcIA1Pre::check_op6(instr, op),
Code::LDC_i_A1_unind => LdcIA1Unind::check_op6(instr, op),
Code::LDC_l_A1_off => LdcLA1Off::check_op6(instr, op),
Code::LDC_l_A1_post => LdcLA1Post::check_op6(instr, op),
Code::LDC_l_A1_pre => LdcLA1Pre::check_op6(instr, op),
Code::LDC_l_A1_unind => LdcLA1Unind::check_op6(instr, op),
Code::LDMDA_A1 => LdmdaA1::check_op6(instr, op),
Code::LDMDB_A1 => LdmdbA1::check_op6(instr, op),
Code::LDMIB_A1 => LdmibA1::check_op6(instr, op),
Code::LDM_A1 => LdmA1::check_op6(instr, op),
Code::LDM_e_A1_AS => LdmEA1As::check_op6(instr, op),
Code::LDM_u_A1_AS => LdmUA1As::check_op6(instr, op),
Code::LDRBT_A1 => LdrbtA1::check_op6(instr, op),
Code::LDRBT_A2 => LdrbtA2::check_op6(instr, op),
Code::LDRB_i_A1_off => LdrbIA1Off::check_op6(instr, op),
Code::LDRB_i_A1_post => LdrbIA1Post::check_op6(instr, op),
Code::LDRB_i_A1_pre => LdrbIA1Pre::check_op6(instr, op),
Code::LDRB_l_A1_off => LdrbLA1Off::check_op6(instr, op),
Code::LDRB_l_A1_post => LdrbLA1Post::check_op6(instr, op),
Code::LDRB_l_A1_pre => LdrbLA1Pre::check_op6(instr, op),
Code::LDRB_r_A1_off => LdrbRA1Off::check_op6(instr, op),
Code::LDRB_r_A1_post => LdrbRA1Post::check_op6(instr, op),
Code::LDRB_r_A1_pre => LdrbRA1Pre::check_op6(instr, op),
Code::LDRD_i_A1_off => LdrdIA1Off::check_op6(instr, op),
Code::LDRD_i_A1_post => LdrdIA1Post::check_op6(instr, op),
Code::LDRD_i_A1_pre => LdrdIA1Pre::check_op6(instr, op),
Code::LDRD_l_A1_off => LdrdLA1Off::check_op6(instr, op),
Code::LDRD_l_A1_post => LdrdLA1Post::check_op6(instr, op),
Code::LDRD_l_A1_pre => LdrdLA1Pre::check_op6(instr, op),
Code::LDRD_r_A1_off => LdrdRA1Off::check_op6(instr, op),
Code::LDRD_r_A1_post => LdrdRA1Post::check_op6(instr, op),
Code::LDRD_r_A1_pre => LdrdRA1Pre::check_op6(instr, op),
Code::LDREXB_A1 => LdrexbA1::check_op6(instr, op),
Code::LDREXD_A1 => LdrexdA1::check_op6(instr, op),
Code::LDREXH_A1 => LdrexhA1::check_op6(instr, op),
Code::LDREX_A1 => LdrexA1::check_op6(instr, op),
Code::LDRHT_A1 => LdrhtA1::check_op6(instr, op),
Code::LDRHT_A2 => LdrhtA2::check_op6(instr, op),
Code::LDRH_i_A1_off => LdrhIA1Off::check_op6(instr, op),
Code::LDRH_i_A1_post => LdrhIA1Post::check_op6(instr, op),
Code::LDRH_i_A1_pre => LdrhIA1Pre::check_op6(instr, op),
Code::LDRH_l_A1_off => LdrhLA1Off::check_op6(instr, op),
Code::LDRH_l_A1_post => LdrhLA1Post::check_op6(instr, op),
Code::LDRH_l_A1_pre => LdrhLA1Pre::check_op6(instr, op),
Code::LDRH_r_A1_off => LdrhRA1Off::check_op6(instr, op),
Code::LDRH_r_A1_post => LdrhRA1Post::check_op6(instr, op),
Code::LDRH_r_A1_pre => LdrhRA1Pre::check_op6(instr, op),
Code::LDRSBT_A1 => LdrsbtA1::check_op6(instr, op),
Code::LDRSBT_A2 => LdrsbtA2::check_op6(instr, op),
Code::LDRSB_i_A1_off => LdrsbIA1Off::check_op6(instr, op),
Code::LDRSB_i_A1_post => LdrsbIA1Post::check_op6(instr, op),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::check_op6(instr, op),
Code::LDRSB_l_A1_off => LdrsbLA1Off::check_op6(instr, op),
Code::LDRSB_l_A1_post => LdrsbLA1Post::check_op6(instr, op),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::check_op6(instr, op),
Code::LDRSB_r_A1_off => LdrsbRA1Off::check_op6(instr, op),
Code::LDRSB_r_A1_post => LdrsbRA1Post::check_op6(instr, op),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::check_op6(instr, op),
Code::LDRSHT_A1 => LdrshtA1::check_op6(instr, op),
Code::LDRSHT_A2 => LdrshtA2::check_op6(instr, op),
Code::LDRSH_i_A1_off => LdrshIA1Off::check_op6(instr, op),
Code::LDRSH_i_A1_post => LdrshIA1Post::check_op6(instr, op),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::check_op6(instr, op),
Code::LDRSH_l_A1_off => LdrshLA1Off::check_op6(instr, op),
Code::LDRSH_l_A1_post => LdrshLA1Post::check_op6(instr, op),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::check_op6(instr, op),
Code::LDRSH_r_A1_off => LdrshRA1Off::check_op6(instr, op),
Code::LDRSH_r_A1_post => LdrshRA1Post::check_op6(instr, op),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::check_op6(instr, op),
Code::LDRT_A1 => LdrtA1::check_op6(instr, op),
Code::LDRT_A2 => LdrtA2::check_op6(instr, op),
Code::LDR_i_A1_off => LdrIA1Off::check_op6(instr, op),
Code::LDR_i_A1_post => LdrIA1Post::check_op6(instr, op),
Code::LDR_i_A1_pre => LdrIA1Pre::check_op6(instr, op),
Code::LDR_l_A1_off => LdrLA1Off::check_op6(instr, op),
Code::LDR_l_A1_post => LdrLA1Post::check_op6(instr, op),
Code::LDR_l_A1_pre => LdrLA1Pre::check_op6(instr, op),
Code::LDR_r_A1_off => LdrRA1Off::check_op6(instr, op),
Code::LDR_r_A1_post => LdrRA1Post::check_op6(instr, op),
Code::LDR_r_A1_pre => LdrRA1Pre::check_op6(instr, op),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::check_op6(instr, op),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::check_op6(instr, op),
Code::LSL_MOV_r_A1 => LslMovRA1::check_op6(instr, op),
Code::LSL_MOV_rr_A1 => LslMovRrA1::check_op6(instr, op),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::check_op6(instr, op),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::check_op6(instr, op),
Code::LSR_MOV_r_A1 => LsrMovRA1::check_op6(instr, op),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::check_op6(instr, op),
Code::MCRR_A1 => McrrA1::check_op6(instr, op),
Code::MCR_A1 => McrA1::check_op6(instr, op),
Code::MLAS_A1 => MlasA1::check_op6(instr, op),
Code::MLA_A1 => MlaA1::check_op6(instr, op),
Code::MLS_A1 => MlsA1::check_op6(instr, op),
Code::MOVS_i_A1 => MovsIA1::check_op6(instr, op),
Code::MOVS_r_A1 => MovsRA1::check_op6(instr, op),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::check_op6(instr, op),
Code::MOVS_rr_A1 => MovsRrA1::check_op6(instr, op),
Code::MOVT_A1 => MovtA1::check_op6(instr, op),
Code::MOV_i_A1 => MovIA1::check_op6(instr, op),
Code::MOV_i_A2 => MovIA2::check_op6(instr, op),
Code::MOV_r_A1 => MovRA1::check_op6(instr, op),
Code::MOV_r_A1_RRX => MovRA1Rrx::check_op6(instr, op),
Code::MOV_rr_A1 => MovRrA1::check_op6(instr, op),
Code::MRC_A1 => MrcA1::check_op6(instr, op),
Code::MRRC_A1 => MrrcA1::check_op6(instr, op),
Code::MRS_A1_AS => MrsA1As::check_op6(instr, op),
Code::MRS_br_A1_AS => MrsBrA1As::check_op6(instr, op),
Code::MSR_br_A1_AS => MsrBrA1As::check_op6(instr, op),
Code::MSR_i_A1_AS => MsrIA1As::check_op6(instr, op),
Code::MSR_r_A1_AS => MsrRA1As::check_op6(instr, op),
Code::MULS_A1 => MulsA1::check_op6(instr, op),
Code::MUL_A1 => MulA1::check_op6(instr, op),
Code::MVNS_i_A1 => MvnsIA1::check_op6(instr, op),
Code::MVNS_r_A1 => MvnsRA1::check_op6(instr, op),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::check_op6(instr, op),
Code::MVNS_rr_A1 => MvnsRrA1::check_op6(instr, op),
Code::MVN_i_A1 => MvnIA1::check_op6(instr, op),
Code::MVN_r_A1 => MvnRA1::check_op6(instr, op),
Code::MVN_r_A1_RRX => MvnRA1Rrx::check_op6(instr, op),
Code::MVN_rr_A1 => MvnRrA1::check_op6(instr, op),
Code::NOP_A1 => NopA1::check_op6(instr, op),
Code::ORRS_i_A1 => OrrsIA1::check_op6(instr, op),
Code::ORRS_r_A1 => OrrsRA1::check_op6(instr, op),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::check_op6(instr, op),
Code::ORRS_rr_A1 => OrrsRrA1::check_op6(instr, op),
Code::ORR_i_A1 => OrrIA1::check_op6(instr, op),
Code::ORR_r_A1 => OrrRA1::check_op6(instr, op),
Code::ORR_r_A1_RRX => OrrRA1Rrx::check_op6(instr, op),
Code::ORR_rr_A1 => OrrRrA1::check_op6(instr, op),
Code::PKHBT_A1 => PkhbtA1::check_op6(instr, op),
Code::PKHTB_A1 => PkhtbA1::check_op6(instr, op),
Code::PLDW_i_A1 => PldwIA1::check_op6(instr, op),
Code::PLDW_l_A1 => PldwLA1::check_op6(instr, op),
Code::PLDW_r_A1 => PldwRA1::check_op6(instr, op),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::check_op6(instr, op),
Code::PLD_i_A1 => PldIA1::check_op6(instr, op),
Code::PLD_l_A1 => PldLA1::check_op6(instr, op),
Code::PLD_r_A1 => PldRA1::check_op6(instr, op),
Code::PLD_r_A1_RRX => PldRA1Rrx::check_op6(instr, op),
Code::PLI_i_A1 => PliIA1::check_op6(instr, op),
Code::PLI_r_A1 => PliRA1::check_op6(instr, op),
Code::PLI_r_A1_RRX => PliRA1Rrx::check_op6(instr, op),
Code::POP_LDM_A1 => PopLdmA1::check_op6(instr, op),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::check_op6(instr, op),
Code::PSSBB_A1 => PssbbA1::check_op6(instr, op),
Code::PUSH_STMDB_A1 => PushStmdbA1::check_op6(instr, op),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::check_op6(instr, op),
Code::QADD16_A1 => Qadd16A1::check_op6(instr, op),
Code::QADD8_A1 => Qadd8A1::check_op6(instr, op),
Code::QADD_A1 => QaddA1::check_op6(instr, op),
Code::QASX_A1 => QasxA1::check_op6(instr, op),
Code::QDADD_A1 => QdaddA1::check_op6(instr, op),
Code::QDSUB_A1 => QdsubA1::check_op6(instr, op),
Code::QSAX_A1 => QsaxA1::check_op6(instr, op),
Code::QSUB16_A1 => Qsub16A1::check_op6(instr, op),
Code::QSUB8_A1 => Qsub8A1::check_op6(instr, op),
Code::QSUB_A1 => QsubA1::check_op6(instr, op),
Code::RBIT_A1 => RbitA1::check_op6(instr, op),
Code::REV16_A1 => Rev16A1::check_op6(instr, op),
Code::REVSH_A1 => RevshA1::check_op6(instr, op),
Code::REV_A1 => RevA1::check_op6(instr, op),
Code::RFEDA_A1_AS => RfedaA1As::check_op6(instr, op),
Code::RFEDB_A1_AS => RfedbA1As::check_op6(instr, op),
Code::RFEIA_A1_AS => RfeiaA1As::check_op6(instr, op),
Code::RFEIB_A1_AS => RfeibA1As::check_op6(instr, op),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::check_op6(instr, op),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::check_op6(instr, op),
Code::ROR_MOV_r_A1 => RorMovRA1::check_op6(instr, op),
Code::ROR_MOV_rr_A1 => RorMovRrA1::check_op6(instr, op),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::check_op6(instr, op),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::check_op6(instr, op),
Code::RSBS_i_A1 => RsbsIA1::check_op6(instr, op),
Code::RSBS_r_A1 => RsbsRA1::check_op6(instr, op),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::check_op6(instr, op),
Code::RSBS_rr_A1 => RsbsRrA1::check_op6(instr, op),
Code::RSB_i_A1 => RsbIA1::check_op6(instr, op),
Code::RSB_r_A1 => RsbRA1::check_op6(instr, op),
Code::RSB_r_A1_RRX => RsbRA1Rrx::check_op6(instr, op),
Code::RSB_rr_A1 => RsbRrA1::check_op6(instr, op),
Code::RSCS_i_A1 => RscsIA1::check_op6(instr, op),
Code::RSCS_r_A1 => RscsRA1::check_op6(instr, op),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::check_op6(instr, op),
Code::RSCS_rr_A1 => RscsRrA1::check_op6(instr, op),
Code::RSC_i_A1 => RscIA1::check_op6(instr, op),
Code::RSC_r_A1 => RscRA1::check_op6(instr, op),
Code::RSC_r_A1_RRX => RscRA1Rrx::check_op6(instr, op),
Code::RSC_rr_A1 => RscRrA1::check_op6(instr, op),
Code::SADD16_A1 => Sadd16A1::check_op6(instr, op),
Code::SADD8_A1 => Sadd8A1::check_op6(instr, op),
Code::SASX_A1 => SasxA1::check_op6(instr, op),
Code::SBCS_i_A1 => SbcsIA1::check_op6(instr, op),
Code::SBCS_r_A1 => SbcsRA1::check_op6(instr, op),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::check_op6(instr, op),
Code::SBCS_rr_A1 => SbcsRrA1::check_op6(instr, op),
Code::SBC_i_A1 => SbcIA1::check_op6(instr, op),
Code::SBC_r_A1 => SbcRA1::check_op6(instr, op),
Code::SBC_r_A1_RRX => SbcRA1Rrx::check_op6(instr, op),
Code::SBC_rr_A1 => SbcRrA1::check_op6(instr, op),
Code::SBFX_A1 => SbfxA1::check_op6(instr, op),
Code::SB_A1 => SbA1::check_op6(instr, op),
Code::SDIV_A1 => SdivA1::check_op6(instr, op),
Code::SEL_A1 => SelA1::check_op6(instr, op),
Code::SETEND_A1 => SetendA1::check_op6(instr, op),
Code::SETPAN_A1 => SetpanA1::check_op6(instr, op),
Code::SEVL_A1 => SevlA1::check_op6(instr, op),
Code::SEV_A1 => SevA1::check_op6(instr, op),
Code::SHADD16_A1 => Shadd16A1::check_op6(instr, op),
Code::SHADD8_A1 => Shadd8A1::check_op6(instr, op),
Code::SHASX_A1 => ShasxA1::check_op6(instr, op),
Code::SHSAX_A1 => ShsaxA1::check_op6(instr, op),
Code::SHSUB16_A1 => Shsub16A1::check_op6(instr, op),
Code::SHSUB8_A1 => Shsub8A1::check_op6(instr, op),
Code::SMC_A1_AS => SmcA1As::check_op6(instr, op),
Code::SMLABB_A1 => SmlabbA1::check_op6(instr, op),
Code::SMLABT_A1 => SmlabtA1::check_op6(instr, op),
Code::SMLADX_A1 => SmladxA1::check_op6(instr, op),
Code::SMLAD_A1 => SmladA1::check_op6(instr, op),
Code::SMLALBB_A1 => SmlalbbA1::check_op6(instr, op),
Code::SMLALBT_A1 => SmlalbtA1::check_op6(instr, op),
Code::SMLALDX_A1 => SmlaldxA1::check_op6(instr, op),
Code::SMLALD_A1 => SmlaldA1::check_op6(instr, op),
Code::SMLALS_A1 => SmlalsA1::check_op6(instr, op),
Code::SMLALTB_A1 => SmlaltbA1::check_op6(instr, op),
Code::SMLALTT_A1 => SmlalttA1::check_op6(instr, op),
Code::SMLAL_A1 => SmlalA1::check_op6(instr, op),
Code::SMLATB_A1 => SmlatbA1::check_op6(instr, op),
Code::SMLATT_A1 => SmlattA1::check_op6(instr, op),
Code::SMLAWB_A1 => SmlawbA1::check_op6(instr, op),
Code::SMLAWT_A1 => SmlawtA1::check_op6(instr, op),
Code::SMLSDX_A1 => SmlsdxA1::check_op6(instr, op),
Code::SMLSD_A1 => SmlsdA1::check_op6(instr, op),
Code::SMLSLDX_A1 => SmlsldxA1::check_op6(instr, op),
Code::SMLSLD_A1 => SmlsldA1::check_op6(instr, op),
Code::SMMLAR_A1 => SmmlarA1::check_op6(instr, op),
Code::SMMLA_A1 => SmmlaA1::check_op6(instr, op),
Code::SMMLSR_A1 => SmmlsrA1::check_op6(instr, op),
Code::SMMLS_A1 => SmmlsA1::check_op6(instr, op),
Code::SMMULR_A1 => SmmulrA1::check_op6(instr, op),
Code::SMMUL_A1 => SmmulA1::check_op6(instr, op),
Code::SMUADX_A1 => SmuadxA1::check_op6(instr, op),
Code::SMUAD_A1 => SmuadA1::check_op6(instr, op),
Code::SMULBB_A1 => SmulbbA1::check_op6(instr, op),
Code::SMULBT_A1 => SmulbtA1::check_op6(instr, op),
Code::SMULLS_A1 => SmullsA1::check_op6(instr, op),
Code::SMULL_A1 => SmullA1::check_op6(instr, op),
Code::SMULTB_A1 => SmultbA1::check_op6(instr, op),
Code::SMULTT_A1 => SmulttA1::check_op6(instr, op),
Code::SMULWB_A1 => SmulwbA1::check_op6(instr, op),
Code::SMULWT_A1 => SmulwtA1::check_op6(instr, op),
Code::SMUSDX_A1 => SmusdxA1::check_op6(instr, op),
Code::SMUSD_A1 => SmusdA1::check_op6(instr, op),
Code::SRSDA_A1_AS => SrsdaA1As::check_op6(instr, op),
Code::SRSDB_A1_AS => SrsdbA1As::check_op6(instr, op),
Code::SRSIA_A1_AS => SrsiaA1As::check_op6(instr, op),
Code::SRSIB_A1_AS => SrsibA1As::check_op6(instr, op),
Code::SSAT16_A1 => Ssat16A1::check_op6(instr, op),
Code::SSAT_A1_ASR => SsatA1Asr::check_op6(instr, op),
Code::SSAT_A1_LSL => SsatA1Lsl::check_op6(instr, op),
Code::SSAX_A1 => SsaxA1::check_op6(instr, op),
Code::SSBB_A1 => SsbbA1::check_op6(instr, op),
Code::SSUB16_A1 => Ssub16A1::check_op6(instr, op),
Code::SSUB8_A1 => Ssub8A1::check_op6(instr, op),
Code::STC_A1_off => StcA1Off::check_op6(instr, op),
Code::STC_A1_post => StcA1Post::check_op6(instr, op),
Code::STC_A1_pre => StcA1Pre::check_op6(instr, op),
Code::STC_A1_unind => StcA1Unind::check_op6(instr, op),
Code::STLB_A1 => StlbA1::check_op6(instr, op),
Code::STLEXB_A1 => StlexbA1::check_op6(instr, op),
Code::STLEXD_A1 => StlexdA1::check_op6(instr, op),
Code::STLEXH_A1 => StlexhA1::check_op6(instr, op),
Code::STLEX_A1 => StlexA1::check_op6(instr, op),
Code::STLH_A1 => StlhA1::check_op6(instr, op),
Code::STL_A1 => StlA1::check_op6(instr, op),
Code::STMDA_A1 => StmdaA1::check_op6(instr, op),
Code::STMDB_A1 => StmdbA1::check_op6(instr, op),
Code::STMIB_A1 => StmibA1::check_op6(instr, op),
Code::STM_A1 => StmA1::check_op6(instr, op),
Code::STM_u_A1_AS => StmUA1As::check_op6(instr, op),
Code::STRBT_A1 => StrbtA1::check_op6(instr, op),
Code::STRBT_A2 => StrbtA2::check_op6(instr, op),
Code::STRB_i_A1_off => StrbIA1Off::check_op6(instr, op),
Code::STRB_i_A1_post => StrbIA1Post::check_op6(instr, op),
Code::STRB_i_A1_pre => StrbIA1Pre::check_op6(instr, op),
Code::STRB_r_A1_off => StrbRA1Off::check_op6(instr, op),
Code::STRB_r_A1_post => StrbRA1Post::check_op6(instr, op),
Code::STRB_r_A1_pre => StrbRA1Pre::check_op6(instr, op),
Code::STRD_i_A1_off => StrdIA1Off::check_op6(instr, op),
Code::STRD_i_A1_post => StrdIA1Post::check_op6(instr, op),
Code::STRD_i_A1_pre => StrdIA1Pre::check_op6(instr, op),
Code::STRD_r_A1_off => StrdRA1Off::check_op6(instr, op),
Code::STRD_r_A1_post => StrdRA1Post::check_op6(instr, op),
Code::STRD_r_A1_pre => StrdRA1Pre::check_op6(instr, op),
Code::STREXB_A1 => StrexbA1::check_op6(instr, op),
Code::STREXD_A1 => StrexdA1::check_op6(instr, op),
Code::STREXH_A1 => StrexhA1::check_op6(instr, op),
Code::STREX_A1 => StrexA1::check_op6(instr, op),
Code::STRHT_A1 => StrhtA1::check_op6(instr, op),
Code::STRHT_A2 => StrhtA2::check_op6(instr, op),
Code::STRH_i_A1_off => StrhIA1Off::check_op6(instr, op),
Code::STRH_i_A1_post => StrhIA1Post::check_op6(instr, op),
Code::STRH_i_A1_pre => StrhIA1Pre::check_op6(instr, op),
Code::STRH_r_A1_off => StrhRA1Off::check_op6(instr, op),
Code::STRH_r_A1_post => StrhRA1Post::check_op6(instr, op),
Code::STRH_r_A1_pre => StrhRA1Pre::check_op6(instr, op),
Code::STRT_A1 => StrtA1::check_op6(instr, op),
Code::STRT_A2 => StrtA2::check_op6(instr, op),
Code::STR_i_A1_off => StrIA1Off::check_op6(instr, op),
Code::STR_i_A1_post => StrIA1Post::check_op6(instr, op),
Code::STR_i_A1_pre => StrIA1Pre::check_op6(instr, op),
Code::STR_r_A1_off => StrRA1Off::check_op6(instr, op),
Code::STR_r_A1_post => StrRA1Post::check_op6(instr, op),
Code::STR_r_A1_pre => StrRA1Pre::check_op6(instr, op),
Code::SUBS_SP_i_A1 => SubsSpIA1::check_op6(instr, op),
Code::SUBS_SP_r_A1 => SubsSpRA1::check_op6(instr, op),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::check_op6(instr, op),
Code::SUBS_i_A1 => SubsIA1::check_op6(instr, op),
Code::SUBS_r_A1 => SubsRA1::check_op6(instr, op),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::check_op6(instr, op),
Code::SUBS_rr_A1 => SubsRrA1::check_op6(instr, op),
Code::SUB_ADR_A2 => SubAdrA2::check_op6(instr, op),
Code::SUB_SP_i_A1 => SubSpIA1::check_op6(instr, op),
Code::SUB_SP_r_A1 => SubSpRA1::check_op6(instr, op),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::check_op6(instr, op),
Code::SUB_i_A1 => SubIA1::check_op6(instr, op),
Code::SUB_r_A1 => SubRA1::check_op6(instr, op),
Code::SUB_r_A1_RRX => SubRA1Rrx::check_op6(instr, op),
Code::SUB_rr_A1 => SubRrA1::check_op6(instr, op),
Code::SVC_A1 => SvcA1::check_op6(instr, op),
Code::SXTAB16_A1 => Sxtab16A1::check_op6(instr, op),
Code::SXTAB_A1 => SxtabA1::check_op6(instr, op),
Code::SXTAH_A1 => SxtahA1::check_op6(instr, op),
Code::SXTB16_A1 => Sxtb16A1::check_op6(instr, op),
Code::SXTB_A1 => SxtbA1::check_op6(instr, op),
Code::SXTH_A1 => SxthA1::check_op6(instr, op),
Code::TEQ_i_A1 => TeqIA1::check_op6(instr, op),
Code::TEQ_r_A1 => TeqRA1::check_op6(instr, op),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::check_op6(instr, op),
Code::TEQ_rr_A1 => TeqRrA1::check_op6(instr, op),
Code::TSB_A1 => TsbA1::check_op6(instr, op),
Code::TST_i_A1 => TstIA1::check_op6(instr, op),
Code::TST_r_A1 => TstRA1::check_op6(instr, op),
Code::TST_r_A1_RRX => TstRA1Rrx::check_op6(instr, op),
Code::TST_rr_A1 => TstRrA1::check_op6(instr, op),
Code::UADD16_A1 => Uadd16A1::check_op6(instr, op),
Code::UADD8_A1 => Uadd8A1::check_op6(instr, op),
Code::UASX_A1 => UasxA1::check_op6(instr, op),
Code::UBFX_A1 => UbfxA1::check_op6(instr, op),
Code::UDF_A1 => UdfA1::check_op6(instr, op),
Code::UDIV_A1 => UdivA1::check_op6(instr, op),
Code::UHADD16_A1 => Uhadd16A1::check_op6(instr, op),
Code::UHADD8_A1 => Uhadd8A1::check_op6(instr, op),
Code::UHASX_A1 => UhasxA1::check_op6(instr, op),
Code::UHSAX_A1 => UhsaxA1::check_op6(instr, op),
Code::UHSUB16_A1 => Uhsub16A1::check_op6(instr, op),
Code::UHSUB8_A1 => Uhsub8A1::check_op6(instr, op),
Code::UMAAL_A1 => UmaalA1::check_op6(instr, op),
Code::UMLALS_A1 => UmlalsA1::check_op6(instr, op),
Code::UMLAL_A1 => UmlalA1::check_op6(instr, op),
Code::UMULLS_A1 => UmullsA1::check_op6(instr, op),
Code::UMULL_A1 => UmullA1::check_op6(instr, op),
Code::UQADD16_A1 => Uqadd16A1::check_op6(instr, op),
Code::UQADD8_A1 => Uqadd8A1::check_op6(instr, op),
Code::UQASX_A1 => UqasxA1::check_op6(instr, op),
Code::UQSAX_A1 => UqsaxA1::check_op6(instr, op),
Code::UQSUB16_A1 => Uqsub16A1::check_op6(instr, op),
Code::UQSUB8_A1 => Uqsub8A1::check_op6(instr, op),
Code::USAD8_A1 => Usad8A1::check_op6(instr, op),
Code::USADA8_A1 => Usada8A1::check_op6(instr, op),
Code::USAT16_A1 => Usat16A1::check_op6(instr, op),
Code::USAT_A1_ASR => UsatA1Asr::check_op6(instr, op),
Code::USAT_A1_LSL => UsatA1Lsl::check_op6(instr, op),
Code::USAX_A1 => UsaxA1::check_op6(instr, op),
Code::USUB16_A1 => Usub16A1::check_op6(instr, op),
Code::USUB8_A1 => Usub8A1::check_op6(instr, op),
Code::UXTAB16_A1 => Uxtab16A1::check_op6(instr, op),
Code::UXTAB_A1 => UxtabA1::check_op6(instr, op),
Code::UXTAH_A1 => UxtahA1::check_op6(instr, op),
Code::UXTB16_A1 => Uxtb16A1::check_op6(instr, op),
Code::UXTB_A1 => UxtbA1::check_op6(instr, op),
Code::UXTH_A1 => UxthA1::check_op6(instr, op),
Code::WFE_A1 => WfeA1::check_op6(instr, op),
Code::WFI_A1 => WfiA1::check_op6(instr, op),
Code::YIELD_A1 => YieldA1::check_op6(instr, op),
}
}
pub fn format(&self, instr: &Instruction, fmt: &mut impl Formatter, output: &mut impl FormatterOutput, config: &Config) -> Result<()> {
match self {
Code::Invalid => todo!(),
Code::ADCS_i_A1 => AdcsIA1::format(instr, fmt, output, config),
Code::ADCS_r_A1 => AdcsRA1::format(instr, fmt, output, config),
Code::ADCS_r_A1_RRX => AdcsRA1Rrx::format(instr, fmt, output, config),
Code::ADCS_rr_A1 => AdcsRrA1::format(instr, fmt, output, config),
Code::ADC_i_A1 => AdcIA1::format(instr, fmt, output, config),
Code::ADC_r_A1 => AdcRA1::format(instr, fmt, output, config),
Code::ADC_r_A1_RRX => AdcRA1Rrx::format(instr, fmt, output, config),
Code::ADC_rr_A1 => AdcRrA1::format(instr, fmt, output, config),
Code::ADDS_SP_i_A1 => AddsSpIA1::format(instr, fmt, output, config),
Code::ADDS_SP_r_A1 => AddsSpRA1::format(instr, fmt, output, config),
Code::ADDS_SP_r_A1_RRX => AddsSpRA1Rrx::format(instr, fmt, output, config),
Code::ADDS_i_A1 => AddsIA1::format(instr, fmt, output, config),
Code::ADDS_r_A1 => AddsRA1::format(instr, fmt, output, config),
Code::ADDS_r_A1_RRX => AddsRA1Rrx::format(instr, fmt, output, config),
Code::ADDS_rr_A1 => AddsRrA1::format(instr, fmt, output, config),
Code::ADD_ADR_A1 => AddAdrA1::format(instr, fmt, output, config),
Code::ADD_SP_i_A1 => AddSpIA1::format(instr, fmt, output, config),
Code::ADD_SP_r_A1 => AddSpRA1::format(instr, fmt, output, config),
Code::ADD_SP_r_A1_RRX => AddSpRA1Rrx::format(instr, fmt, output, config),
Code::ADD_i_A1 => AddIA1::format(instr, fmt, output, config),
Code::ADD_r_A1 => AddRA1::format(instr, fmt, output, config),
Code::ADD_r_A1_RRX => AddRA1Rrx::format(instr, fmt, output, config),
Code::ADD_rr_A1 => AddRrA1::format(instr, fmt, output, config),
Code::ADR_A1 => AdrA1::format(instr, fmt, output, config),
Code::ADR_A2 => AdrA2::format(instr, fmt, output, config),
Code::ANDS_i_A1 => AndsIA1::format(instr, fmt, output, config),
Code::ANDS_r_A1 => AndsRA1::format(instr, fmt, output, config),
Code::ANDS_r_A1_RRX => AndsRA1Rrx::format(instr, fmt, output, config),
Code::ANDS_rr_A1 => AndsRrA1::format(instr, fmt, output, config),
Code::AND_i_A1 => AndIA1::format(instr, fmt, output, config),
Code::AND_r_A1 => AndRA1::format(instr, fmt, output, config),
Code::AND_r_A1_RRX => AndRA1Rrx::format(instr, fmt, output, config),
Code::AND_rr_A1 => AndRrA1::format(instr, fmt, output, config),
Code::ASRS_MOVS_r_A1 => AsrsMovsRA1::format(instr, fmt, output, config),
Code::ASRS_MOVS_rr_A1 => AsrsMovsRrA1::format(instr, fmt, output, config),
Code::ASR_MOV_r_A1 => AsrMovRA1::format(instr, fmt, output, config),
Code::ASR_MOV_rr_A1 => AsrMovRrA1::format(instr, fmt, output, config),
Code::BFC_A1 => BfcA1::format(instr, fmt, output, config),
Code::BFI_A1 => BfiA1::format(instr, fmt, output, config),
Code::BICS_i_A1 => BicsIA1::format(instr, fmt, output, config),
Code::BICS_r_A1 => BicsRA1::format(instr, fmt, output, config),
Code::BICS_r_A1_RRX => BicsRA1Rrx::format(instr, fmt, output, config),
Code::BICS_rr_A1 => BicsRrA1::format(instr, fmt, output, config),
Code::BIC_i_A1 => BicIA1::format(instr, fmt, output, config),
Code::BIC_r_A1 => BicRA1::format(instr, fmt, output, config),
Code::BIC_r_A1_RRX => BicRA1Rrx::format(instr, fmt, output, config),
Code::BIC_rr_A1 => BicRrA1::format(instr, fmt, output, config),
Code::BKPT_A1 => BkptA1::format(instr, fmt, output, config),
Code::BLX_r_A1 => BlxRA1::format(instr, fmt, output, config),
Code::BL_i_A1 => BlIA1::format(instr, fmt, output, config),
Code::BL_i_A2 => BlIA2::format(instr, fmt, output, config),
Code::BXJ_A1 => BxjA1::format(instr, fmt, output, config),
Code::BX_A1 => BxA1::format(instr, fmt, output, config),
Code::B_A1 => BA1::format(instr, fmt, output, config),
Code::CLRBHB_A1 => ClrbhbA1::format(instr, fmt, output, config),
Code::CLREX_A1 => ClrexA1::format(instr, fmt, output, config),
Code::CLZ_A1 => ClzA1::format(instr, fmt, output, config),
Code::CMN_i_A1 => CmnIA1::format(instr, fmt, output, config),
Code::CMN_r_A1 => CmnRA1::format(instr, fmt, output, config),
Code::CMN_r_A1_RRX => CmnRA1Rrx::format(instr, fmt, output, config),
Code::CMN_rr_A1 => CmnRrA1::format(instr, fmt, output, config),
Code::CMP_i_A1 => CmpIA1::format(instr, fmt, output, config),
Code::CMP_r_A1 => CmpRA1::format(instr, fmt, output, config),
Code::CMP_r_A1_RRX => CmpRA1Rrx::format(instr, fmt, output, config),
Code::CMP_rr_A1 => CmpRrA1::format(instr, fmt, output, config),
Code::CPSID_A1_AS => CpsidA1As::format(instr, fmt, output, config),
Code::CPSID_A1_ASM => CpsidA1Asm::format(instr, fmt, output, config),
Code::CPSIE_A1_AS => CpsieA1As::format(instr, fmt, output, config),
Code::CPSIE_A1_ASM => CpsieA1Asm::format(instr, fmt, output, config),
Code::CPS_A1_AS => CpsA1As::format(instr, fmt, output, config),
Code::CRC32B_A1 => Crc32bA1::format(instr, fmt, output, config),
Code::CRC32CB_A1 => Crc32cbA1::format(instr, fmt, output, config),
Code::CRC32CH_A1 => Crc32chA1::format(instr, fmt, output, config),
Code::CRC32CW_A1 => Crc32cwA1::format(instr, fmt, output, config),
Code::CRC32H_A1 => Crc32hA1::format(instr, fmt, output, config),
Code::CRC32W_A1 => Crc32wA1::format(instr, fmt, output, config),
Code::CSDB_A1 => CsdbA1::format(instr, fmt, output, config),
Code::DBG_A1 => DbgA1::format(instr, fmt, output, config),
Code::DMB_A1 => DmbA1::format(instr, fmt, output, config),
Code::DSB_A1 => DsbA1::format(instr, fmt, output, config),
Code::EORS_i_A1 => EorsIA1::format(instr, fmt, output, config),
Code::EORS_r_A1 => EorsRA1::format(instr, fmt, output, config),
Code::EORS_r_A1_RRX => EorsRA1Rrx::format(instr, fmt, output, config),
Code::EORS_rr_A1 => EorsRrA1::format(instr, fmt, output, config),
Code::EOR_i_A1 => EorIA1::format(instr, fmt, output, config),
Code::EOR_r_A1 => EorRA1::format(instr, fmt, output, config),
Code::EOR_r_A1_RRX => EorRA1Rrx::format(instr, fmt, output, config),
Code::EOR_rr_A1 => EorRrA1::format(instr, fmt, output, config),
Code::ERET_A1 => EretA1::format(instr, fmt, output, config),
Code::ESB_A1 => EsbA1::format(instr, fmt, output, config),
Code::HLT_A1 => HltA1::format(instr, fmt, output, config),
Code::HVC_A1 => HvcA1::format(instr, fmt, output, config),
Code::ISB_A1 => IsbA1::format(instr, fmt, output, config),
Code::LDAB_A1 => LdabA1::format(instr, fmt, output, config),
Code::LDAEXB_A1 => LdaexbA1::format(instr, fmt, output, config),
Code::LDAEXD_A1 => LdaexdA1::format(instr, fmt, output, config),
Code::LDAEXH_A1 => LdaexhA1::format(instr, fmt, output, config),
Code::LDAEX_A1 => LdaexA1::format(instr, fmt, output, config),
Code::LDAH_A1 => LdahA1::format(instr, fmt, output, config),
Code::LDA_A1 => LdaA1::format(instr, fmt, output, config),
Code::LDC_i_A1_off => LdcIA1Off::format(instr, fmt, output, config),
Code::LDC_i_A1_post => LdcIA1Post::format(instr, fmt, output, config),
Code::LDC_i_A1_pre => LdcIA1Pre::format(instr, fmt, output, config),
Code::LDC_i_A1_unind => LdcIA1Unind::format(instr, fmt, output, config),
Code::LDC_l_A1_off => LdcLA1Off::format(instr, fmt, output, config),
Code::LDC_l_A1_post => LdcLA1Post::format(instr, fmt, output, config),
Code::LDC_l_A1_pre => LdcLA1Pre::format(instr, fmt, output, config),
Code::LDC_l_A1_unind => LdcLA1Unind::format(instr, fmt, output, config),
Code::LDMDA_A1 => LdmdaA1::format(instr, fmt, output, config),
Code::LDMDB_A1 => LdmdbA1::format(instr, fmt, output, config),
Code::LDMIB_A1 => LdmibA1::format(instr, fmt, output, config),
Code::LDM_A1 => LdmA1::format(instr, fmt, output, config),
Code::LDM_e_A1_AS => LdmEA1As::format(instr, fmt, output, config),
Code::LDM_u_A1_AS => LdmUA1As::format(instr, fmt, output, config),
Code::LDRBT_A1 => LdrbtA1::format(instr, fmt, output, config),
Code::LDRBT_A2 => LdrbtA2::format(instr, fmt, output, config),
Code::LDRB_i_A1_off => LdrbIA1Off::format(instr, fmt, output, config),
Code::LDRB_i_A1_post => LdrbIA1Post::format(instr, fmt, output, config),
Code::LDRB_i_A1_pre => LdrbIA1Pre::format(instr, fmt, output, config),
Code::LDRB_l_A1_off => LdrbLA1Off::format(instr, fmt, output, config),
Code::LDRB_l_A1_post => LdrbLA1Post::format(instr, fmt, output, config),
Code::LDRB_l_A1_pre => LdrbLA1Pre::format(instr, fmt, output, config),
Code::LDRB_r_A1_off => LdrbRA1Off::format(instr, fmt, output, config),
Code::LDRB_r_A1_post => LdrbRA1Post::format(instr, fmt, output, config),
Code::LDRB_r_A1_pre => LdrbRA1Pre::format(instr, fmt, output, config),
Code::LDRD_i_A1_off => LdrdIA1Off::format(instr, fmt, output, config),
Code::LDRD_i_A1_post => LdrdIA1Post::format(instr, fmt, output, config),
Code::LDRD_i_A1_pre => LdrdIA1Pre::format(instr, fmt, output, config),
Code::LDRD_l_A1_off => LdrdLA1Off::format(instr, fmt, output, config),
Code::LDRD_l_A1_post => LdrdLA1Post::format(instr, fmt, output, config),
Code::LDRD_l_A1_pre => LdrdLA1Pre::format(instr, fmt, output, config),
Code::LDRD_r_A1_off => LdrdRA1Off::format(instr, fmt, output, config),
Code::LDRD_r_A1_post => LdrdRA1Post::format(instr, fmt, output, config),
Code::LDRD_r_A1_pre => LdrdRA1Pre::format(instr, fmt, output, config),
Code::LDREXB_A1 => LdrexbA1::format(instr, fmt, output, config),
Code::LDREXD_A1 => LdrexdA1::format(instr, fmt, output, config),
Code::LDREXH_A1 => LdrexhA1::format(instr, fmt, output, config),
Code::LDREX_A1 => LdrexA1::format(instr, fmt, output, config),
Code::LDRHT_A1 => LdrhtA1::format(instr, fmt, output, config),
Code::LDRHT_A2 => LdrhtA2::format(instr, fmt, output, config),
Code::LDRH_i_A1_off => LdrhIA1Off::format(instr, fmt, output, config),
Code::LDRH_i_A1_post => LdrhIA1Post::format(instr, fmt, output, config),
Code::LDRH_i_A1_pre => LdrhIA1Pre::format(instr, fmt, output, config),
Code::LDRH_l_A1_off => LdrhLA1Off::format(instr, fmt, output, config),
Code::LDRH_l_A1_post => LdrhLA1Post::format(instr, fmt, output, config),
Code::LDRH_l_A1_pre => LdrhLA1Pre::format(instr, fmt, output, config),
Code::LDRH_r_A1_off => LdrhRA1Off::format(instr, fmt, output, config),
Code::LDRH_r_A1_post => LdrhRA1Post::format(instr, fmt, output, config),
Code::LDRH_r_A1_pre => LdrhRA1Pre::format(instr, fmt, output, config),
Code::LDRSBT_A1 => LdrsbtA1::format(instr, fmt, output, config),
Code::LDRSBT_A2 => LdrsbtA2::format(instr, fmt, output, config),
Code::LDRSB_i_A1_off => LdrsbIA1Off::format(instr, fmt, output, config),
Code::LDRSB_i_A1_post => LdrsbIA1Post::format(instr, fmt, output, config),
Code::LDRSB_i_A1_pre => LdrsbIA1Pre::format(instr, fmt, output, config),
Code::LDRSB_l_A1_off => LdrsbLA1Off::format(instr, fmt, output, config),
Code::LDRSB_l_A1_post => LdrsbLA1Post::format(instr, fmt, output, config),
Code::LDRSB_l_A1_pre => LdrsbLA1Pre::format(instr, fmt, output, config),
Code::LDRSB_r_A1_off => LdrsbRA1Off::format(instr, fmt, output, config),
Code::LDRSB_r_A1_post => LdrsbRA1Post::format(instr, fmt, output, config),
Code::LDRSB_r_A1_pre => LdrsbRA1Pre::format(instr, fmt, output, config),
Code::LDRSHT_A1 => LdrshtA1::format(instr, fmt, output, config),
Code::LDRSHT_A2 => LdrshtA2::format(instr, fmt, output, config),
Code::LDRSH_i_A1_off => LdrshIA1Off::format(instr, fmt, output, config),
Code::LDRSH_i_A1_post => LdrshIA1Post::format(instr, fmt, output, config),
Code::LDRSH_i_A1_pre => LdrshIA1Pre::format(instr, fmt, output, config),
Code::LDRSH_l_A1_off => LdrshLA1Off::format(instr, fmt, output, config),
Code::LDRSH_l_A1_post => LdrshLA1Post::format(instr, fmt, output, config),
Code::LDRSH_l_A1_pre => LdrshLA1Pre::format(instr, fmt, output, config),
Code::LDRSH_r_A1_off => LdrshRA1Off::format(instr, fmt, output, config),
Code::LDRSH_r_A1_post => LdrshRA1Post::format(instr, fmt, output, config),
Code::LDRSH_r_A1_pre => LdrshRA1Pre::format(instr, fmt, output, config),
Code::LDRT_A1 => LdrtA1::format(instr, fmt, output, config),
Code::LDRT_A2 => LdrtA2::format(instr, fmt, output, config),
Code::LDR_i_A1_off => LdrIA1Off::format(instr, fmt, output, config),
Code::LDR_i_A1_post => LdrIA1Post::format(instr, fmt, output, config),
Code::LDR_i_A1_pre => LdrIA1Pre::format(instr, fmt, output, config),
Code::LDR_l_A1_off => LdrLA1Off::format(instr, fmt, output, config),
Code::LDR_l_A1_post => LdrLA1Post::format(instr, fmt, output, config),
Code::LDR_l_A1_pre => LdrLA1Pre::format(instr, fmt, output, config),
Code::LDR_r_A1_off => LdrRA1Off::format(instr, fmt, output, config),
Code::LDR_r_A1_post => LdrRA1Post::format(instr, fmt, output, config),
Code::LDR_r_A1_pre => LdrRA1Pre::format(instr, fmt, output, config),
Code::LSLS_MOVS_r_A1 => LslsMovsRA1::format(instr, fmt, output, config),
Code::LSLS_MOVS_rr_A1 => LslsMovsRrA1::format(instr, fmt, output, config),
Code::LSL_MOV_r_A1 => LslMovRA1::format(instr, fmt, output, config),
Code::LSL_MOV_rr_A1 => LslMovRrA1::format(instr, fmt, output, config),
Code::LSRS_MOVS_r_A1 => LsrsMovsRA1::format(instr, fmt, output, config),
Code::LSRS_MOVS_rr_A1 => LsrsMovsRrA1::format(instr, fmt, output, config),
Code::LSR_MOV_r_A1 => LsrMovRA1::format(instr, fmt, output, config),
Code::LSR_MOV_rr_A1 => LsrMovRrA1::format(instr, fmt, output, config),
Code::MCRR_A1 => McrrA1::format(instr, fmt, output, config),
Code::MCR_A1 => McrA1::format(instr, fmt, output, config),
Code::MLAS_A1 => MlasA1::format(instr, fmt, output, config),
Code::MLA_A1 => MlaA1::format(instr, fmt, output, config),
Code::MLS_A1 => MlsA1::format(instr, fmt, output, config),
Code::MOVS_i_A1 => MovsIA1::format(instr, fmt, output, config),
Code::MOVS_r_A1 => MovsRA1::format(instr, fmt, output, config),
Code::MOVS_r_A1_RRX => MovsRA1Rrx::format(instr, fmt, output, config),
Code::MOVS_rr_A1 => MovsRrA1::format(instr, fmt, output, config),
Code::MOVT_A1 => MovtA1::format(instr, fmt, output, config),
Code::MOV_i_A1 => MovIA1::format(instr, fmt, output, config),
Code::MOV_i_A2 => MovIA2::format(instr, fmt, output, config),
Code::MOV_r_A1 => MovRA1::format(instr, fmt, output, config),
Code::MOV_r_A1_RRX => MovRA1Rrx::format(instr, fmt, output, config),
Code::MOV_rr_A1 => MovRrA1::format(instr, fmt, output, config),
Code::MRC_A1 => MrcA1::format(instr, fmt, output, config),
Code::MRRC_A1 => MrrcA1::format(instr, fmt, output, config),
Code::MRS_A1_AS => MrsA1As::format(instr, fmt, output, config),
Code::MRS_br_A1_AS => MrsBrA1As::format(instr, fmt, output, config),
Code::MSR_br_A1_AS => MsrBrA1As::format(instr, fmt, output, config),
Code::MSR_i_A1_AS => MsrIA1As::format(instr, fmt, output, config),
Code::MSR_r_A1_AS => MsrRA1As::format(instr, fmt, output, config),
Code::MULS_A1 => MulsA1::format(instr, fmt, output, config),
Code::MUL_A1 => MulA1::format(instr, fmt, output, config),
Code::MVNS_i_A1 => MvnsIA1::format(instr, fmt, output, config),
Code::MVNS_r_A1 => MvnsRA1::format(instr, fmt, output, config),
Code::MVNS_r_A1_RRX => MvnsRA1Rrx::format(instr, fmt, output, config),
Code::MVNS_rr_A1 => MvnsRrA1::format(instr, fmt, output, config),
Code::MVN_i_A1 => MvnIA1::format(instr, fmt, output, config),
Code::MVN_r_A1 => MvnRA1::format(instr, fmt, output, config),
Code::MVN_r_A1_RRX => MvnRA1Rrx::format(instr, fmt, output, config),
Code::MVN_rr_A1 => MvnRrA1::format(instr, fmt, output, config),
Code::NOP_A1 => NopA1::format(instr, fmt, output, config),
Code::ORRS_i_A1 => OrrsIA1::format(instr, fmt, output, config),
Code::ORRS_r_A1 => OrrsRA1::format(instr, fmt, output, config),
Code::ORRS_r_A1_RRX => OrrsRA1Rrx::format(instr, fmt, output, config),
Code::ORRS_rr_A1 => OrrsRrA1::format(instr, fmt, output, config),
Code::ORR_i_A1 => OrrIA1::format(instr, fmt, output, config),
Code::ORR_r_A1 => OrrRA1::format(instr, fmt, output, config),
Code::ORR_r_A1_RRX => OrrRA1Rrx::format(instr, fmt, output, config),
Code::ORR_rr_A1 => OrrRrA1::format(instr, fmt, output, config),
Code::PKHBT_A1 => PkhbtA1::format(instr, fmt, output, config),
Code::PKHTB_A1 => PkhtbA1::format(instr, fmt, output, config),
Code::PLDW_i_A1 => PldwIA1::format(instr, fmt, output, config),
Code::PLDW_l_A1 => PldwLA1::format(instr, fmt, output, config),
Code::PLDW_r_A1 => PldwRA1::format(instr, fmt, output, config),
Code::PLDW_r_A1_RRX => PldwRA1Rrx::format(instr, fmt, output, config),
Code::PLD_i_A1 => PldIA1::format(instr, fmt, output, config),
Code::PLD_l_A1 => PldLA1::format(instr, fmt, output, config),
Code::PLD_r_A1 => PldRA1::format(instr, fmt, output, config),
Code::PLD_r_A1_RRX => PldRA1Rrx::format(instr, fmt, output, config),
Code::PLI_i_A1 => PliIA1::format(instr, fmt, output, config),
Code::PLI_r_A1 => PliRA1::format(instr, fmt, output, config),
Code::PLI_r_A1_RRX => PliRA1Rrx::format(instr, fmt, output, config),
Code::POP_LDM_A1 => PopLdmA1::format(instr, fmt, output, config),
Code::POP_LDR_i_A1_post => PopLdrIA1Post::format(instr, fmt, output, config),
Code::PSSBB_A1 => PssbbA1::format(instr, fmt, output, config),
Code::PUSH_STMDB_A1 => PushStmdbA1::format(instr, fmt, output, config),
Code::PUSH_STR_i_A1_pre => PushStrIA1Pre::format(instr, fmt, output, config),
Code::QADD16_A1 => Qadd16A1::format(instr, fmt, output, config),
Code::QADD8_A1 => Qadd8A1::format(instr, fmt, output, config),
Code::QADD_A1 => QaddA1::format(instr, fmt, output, config),
Code::QASX_A1 => QasxA1::format(instr, fmt, output, config),
Code::QDADD_A1 => QdaddA1::format(instr, fmt, output, config),
Code::QDSUB_A1 => QdsubA1::format(instr, fmt, output, config),
Code::QSAX_A1 => QsaxA1::format(instr, fmt, output, config),
Code::QSUB16_A1 => Qsub16A1::format(instr, fmt, output, config),
Code::QSUB8_A1 => Qsub8A1::format(instr, fmt, output, config),
Code::QSUB_A1 => QsubA1::format(instr, fmt, output, config),
Code::RBIT_A1 => RbitA1::format(instr, fmt, output, config),
Code::REV16_A1 => Rev16A1::format(instr, fmt, output, config),
Code::REVSH_A1 => RevshA1::format(instr, fmt, output, config),
Code::REV_A1 => RevA1::format(instr, fmt, output, config),
Code::RFEDA_A1_AS => RfedaA1As::format(instr, fmt, output, config),
Code::RFEDB_A1_AS => RfedbA1As::format(instr, fmt, output, config),
Code::RFEIA_A1_AS => RfeiaA1As::format(instr, fmt, output, config),
Code::RFEIB_A1_AS => RfeibA1As::format(instr, fmt, output, config),
Code::RORS_MOVS_r_A1 => RorsMovsRA1::format(instr, fmt, output, config),
Code::RORS_MOVS_rr_A1 => RorsMovsRrA1::format(instr, fmt, output, config),
Code::ROR_MOV_r_A1 => RorMovRA1::format(instr, fmt, output, config),
Code::ROR_MOV_rr_A1 => RorMovRrA1::format(instr, fmt, output, config),
Code::RRXS_MOVS_r_A1_RRX => RrxsMovsRA1Rrx::format(instr, fmt, output, config),
Code::RRX_MOV_r_A1_RRX => RrxMovRA1Rrx::format(instr, fmt, output, config),
Code::RSBS_i_A1 => RsbsIA1::format(instr, fmt, output, config),
Code::RSBS_r_A1 => RsbsRA1::format(instr, fmt, output, config),
Code::RSBS_r_A1_RRX => RsbsRA1Rrx::format(instr, fmt, output, config),
Code::RSBS_rr_A1 => RsbsRrA1::format(instr, fmt, output, config),
Code::RSB_i_A1 => RsbIA1::format(instr, fmt, output, config),
Code::RSB_r_A1 => RsbRA1::format(instr, fmt, output, config),
Code::RSB_r_A1_RRX => RsbRA1Rrx::format(instr, fmt, output, config),
Code::RSB_rr_A1 => RsbRrA1::format(instr, fmt, output, config),
Code::RSCS_i_A1 => RscsIA1::format(instr, fmt, output, config),
Code::RSCS_r_A1 => RscsRA1::format(instr, fmt, output, config),
Code::RSCS_r_A1_RRX => RscsRA1Rrx::format(instr, fmt, output, config),
Code::RSCS_rr_A1 => RscsRrA1::format(instr, fmt, output, config),
Code::RSC_i_A1 => RscIA1::format(instr, fmt, output, config),
Code::RSC_r_A1 => RscRA1::format(instr, fmt, output, config),
Code::RSC_r_A1_RRX => RscRA1Rrx::format(instr, fmt, output, config),
Code::RSC_rr_A1 => RscRrA1::format(instr, fmt, output, config),
Code::SADD16_A1 => Sadd16A1::format(instr, fmt, output, config),
Code::SADD8_A1 => Sadd8A1::format(instr, fmt, output, config),
Code::SASX_A1 => SasxA1::format(instr, fmt, output, config),
Code::SBCS_i_A1 => SbcsIA1::format(instr, fmt, output, config),
Code::SBCS_r_A1 => SbcsRA1::format(instr, fmt, output, config),
Code::SBCS_r_A1_RRX => SbcsRA1Rrx::format(instr, fmt, output, config),
Code::SBCS_rr_A1 => SbcsRrA1::format(instr, fmt, output, config),
Code::SBC_i_A1 => SbcIA1::format(instr, fmt, output, config),
Code::SBC_r_A1 => SbcRA1::format(instr, fmt, output, config),
Code::SBC_r_A1_RRX => SbcRA1Rrx::format(instr, fmt, output, config),
Code::SBC_rr_A1 => SbcRrA1::format(instr, fmt, output, config),
Code::SBFX_A1 => SbfxA1::format(instr, fmt, output, config),
Code::SB_A1 => SbA1::format(instr, fmt, output, config),
Code::SDIV_A1 => SdivA1::format(instr, fmt, output, config),
Code::SEL_A1 => SelA1::format(instr, fmt, output, config),
Code::SETEND_A1 => SetendA1::format(instr, fmt, output, config),
Code::SETPAN_A1 => SetpanA1::format(instr, fmt, output, config),
Code::SEVL_A1 => SevlA1::format(instr, fmt, output, config),
Code::SEV_A1 => SevA1::format(instr, fmt, output, config),
Code::SHADD16_A1 => Shadd16A1::format(instr, fmt, output, config),
Code::SHADD8_A1 => Shadd8A1::format(instr, fmt, output, config),
Code::SHASX_A1 => ShasxA1::format(instr, fmt, output, config),
Code::SHSAX_A1 => ShsaxA1::format(instr, fmt, output, config),
Code::SHSUB16_A1 => Shsub16A1::format(instr, fmt, output, config),
Code::SHSUB8_A1 => Shsub8A1::format(instr, fmt, output, config),
Code::SMC_A1_AS => SmcA1As::format(instr, fmt, output, config),
Code::SMLABB_A1 => SmlabbA1::format(instr, fmt, output, config),
Code::SMLABT_A1 => SmlabtA1::format(instr, fmt, output, config),
Code::SMLADX_A1 => SmladxA1::format(instr, fmt, output, config),
Code::SMLAD_A1 => SmladA1::format(instr, fmt, output, config),
Code::SMLALBB_A1 => SmlalbbA1::format(instr, fmt, output, config),
Code::SMLALBT_A1 => SmlalbtA1::format(instr, fmt, output, config),
Code::SMLALDX_A1 => SmlaldxA1::format(instr, fmt, output, config),
Code::SMLALD_A1 => SmlaldA1::format(instr, fmt, output, config),
Code::SMLALS_A1 => SmlalsA1::format(instr, fmt, output, config),
Code::SMLALTB_A1 => SmlaltbA1::format(instr, fmt, output, config),
Code::SMLALTT_A1 => SmlalttA1::format(instr, fmt, output, config),
Code::SMLAL_A1 => SmlalA1::format(instr, fmt, output, config),
Code::SMLATB_A1 => SmlatbA1::format(instr, fmt, output, config),
Code::SMLATT_A1 => SmlattA1::format(instr, fmt, output, config),
Code::SMLAWB_A1 => SmlawbA1::format(instr, fmt, output, config),
Code::SMLAWT_A1 => SmlawtA1::format(instr, fmt, output, config),
Code::SMLSDX_A1 => SmlsdxA1::format(instr, fmt, output, config),
Code::SMLSD_A1 => SmlsdA1::format(instr, fmt, output, config),
Code::SMLSLDX_A1 => SmlsldxA1::format(instr, fmt, output, config),
Code::SMLSLD_A1 => SmlsldA1::format(instr, fmt, output, config),
Code::SMMLAR_A1 => SmmlarA1::format(instr, fmt, output, config),
Code::SMMLA_A1 => SmmlaA1::format(instr, fmt, output, config),
Code::SMMLSR_A1 => SmmlsrA1::format(instr, fmt, output, config),
Code::SMMLS_A1 => SmmlsA1::format(instr, fmt, output, config),
Code::SMMULR_A1 => SmmulrA1::format(instr, fmt, output, config),
Code::SMMUL_A1 => SmmulA1::format(instr, fmt, output, config),
Code::SMUADX_A1 => SmuadxA1::format(instr, fmt, output, config),
Code::SMUAD_A1 => SmuadA1::format(instr, fmt, output, config),
Code::SMULBB_A1 => SmulbbA1::format(instr, fmt, output, config),
Code::SMULBT_A1 => SmulbtA1::format(instr, fmt, output, config),
Code::SMULLS_A1 => SmullsA1::format(instr, fmt, output, config),
Code::SMULL_A1 => SmullA1::format(instr, fmt, output, config),
Code::SMULTB_A1 => SmultbA1::format(instr, fmt, output, config),
Code::SMULTT_A1 => SmulttA1::format(instr, fmt, output, config),
Code::SMULWB_A1 => SmulwbA1::format(instr, fmt, output, config),
Code::SMULWT_A1 => SmulwtA1::format(instr, fmt, output, config),
Code::SMUSDX_A1 => SmusdxA1::format(instr, fmt, output, config),
Code::SMUSD_A1 => SmusdA1::format(instr, fmt, output, config),
Code::SRSDA_A1_AS => SrsdaA1As::format(instr, fmt, output, config),
Code::SRSDB_A1_AS => SrsdbA1As::format(instr, fmt, output, config),
Code::SRSIA_A1_AS => SrsiaA1As::format(instr, fmt, output, config),
Code::SRSIB_A1_AS => SrsibA1As::format(instr, fmt, output, config),
Code::SSAT16_A1 => Ssat16A1::format(instr, fmt, output, config),
Code::SSAT_A1_ASR => SsatA1Asr::format(instr, fmt, output, config),
Code::SSAT_A1_LSL => SsatA1Lsl::format(instr, fmt, output, config),
Code::SSAX_A1 => SsaxA1::format(instr, fmt, output, config),
Code::SSBB_A1 => SsbbA1::format(instr, fmt, output, config),
Code::SSUB16_A1 => Ssub16A1::format(instr, fmt, output, config),
Code::SSUB8_A1 => Ssub8A1::format(instr, fmt, output, config),
Code::STC_A1_off => StcA1Off::format(instr, fmt, output, config),
Code::STC_A1_post => StcA1Post::format(instr, fmt, output, config),
Code::STC_A1_pre => StcA1Pre::format(instr, fmt, output, config),
Code::STC_A1_unind => StcA1Unind::format(instr, fmt, output, config),
Code::STLB_A1 => StlbA1::format(instr, fmt, output, config),
Code::STLEXB_A1 => StlexbA1::format(instr, fmt, output, config),
Code::STLEXD_A1 => StlexdA1::format(instr, fmt, output, config),
Code::STLEXH_A1 => StlexhA1::format(instr, fmt, output, config),
Code::STLEX_A1 => StlexA1::format(instr, fmt, output, config),
Code::STLH_A1 => StlhA1::format(instr, fmt, output, config),
Code::STL_A1 => StlA1::format(instr, fmt, output, config),
Code::STMDA_A1 => StmdaA1::format(instr, fmt, output, config),
Code::STMDB_A1 => StmdbA1::format(instr, fmt, output, config),
Code::STMIB_A1 => StmibA1::format(instr, fmt, output, config),
Code::STM_A1 => StmA1::format(instr, fmt, output, config),
Code::STM_u_A1_AS => StmUA1As::format(instr, fmt, output, config),
Code::STRBT_A1 => StrbtA1::format(instr, fmt, output, config),
Code::STRBT_A2 => StrbtA2::format(instr, fmt, output, config),
Code::STRB_i_A1_off => StrbIA1Off::format(instr, fmt, output, config),
Code::STRB_i_A1_post => StrbIA1Post::format(instr, fmt, output, config),
Code::STRB_i_A1_pre => StrbIA1Pre::format(instr, fmt, output, config),
Code::STRB_r_A1_off => StrbRA1Off::format(instr, fmt, output, config),
Code::STRB_r_A1_post => StrbRA1Post::format(instr, fmt, output, config),
Code::STRB_r_A1_pre => StrbRA1Pre::format(instr, fmt, output, config),
Code::STRD_i_A1_off => StrdIA1Off::format(instr, fmt, output, config),
Code::STRD_i_A1_post => StrdIA1Post::format(instr, fmt, output, config),
Code::STRD_i_A1_pre => StrdIA1Pre::format(instr, fmt, output, config),
Code::STRD_r_A1_off => StrdRA1Off::format(instr, fmt, output, config),
Code::STRD_r_A1_post => StrdRA1Post::format(instr, fmt, output, config),
Code::STRD_r_A1_pre => StrdRA1Pre::format(instr, fmt, output, config),
Code::STREXB_A1 => StrexbA1::format(instr, fmt, output, config),
Code::STREXD_A1 => StrexdA1::format(instr, fmt, output, config),
Code::STREXH_A1 => StrexhA1::format(instr, fmt, output, config),
Code::STREX_A1 => StrexA1::format(instr, fmt, output, config),
Code::STRHT_A1 => StrhtA1::format(instr, fmt, output, config),
Code::STRHT_A2 => StrhtA2::format(instr, fmt, output, config),
Code::STRH_i_A1_off => StrhIA1Off::format(instr, fmt, output, config),
Code::STRH_i_A1_post => StrhIA1Post::format(instr, fmt, output, config),
Code::STRH_i_A1_pre => StrhIA1Pre::format(instr, fmt, output, config),
Code::STRH_r_A1_off => StrhRA1Off::format(instr, fmt, output, config),
Code::STRH_r_A1_post => StrhRA1Post::format(instr, fmt, output, config),
Code::STRH_r_A1_pre => StrhRA1Pre::format(instr, fmt, output, config),
Code::STRT_A1 => StrtA1::format(instr, fmt, output, config),
Code::STRT_A2 => StrtA2::format(instr, fmt, output, config),
Code::STR_i_A1_off => StrIA1Off::format(instr, fmt, output, config),
Code::STR_i_A1_post => StrIA1Post::format(instr, fmt, output, config),
Code::STR_i_A1_pre => StrIA1Pre::format(instr, fmt, output, config),
Code::STR_r_A1_off => StrRA1Off::format(instr, fmt, output, config),
Code::STR_r_A1_post => StrRA1Post::format(instr, fmt, output, config),
Code::STR_r_A1_pre => StrRA1Pre::format(instr, fmt, output, config),
Code::SUBS_SP_i_A1 => SubsSpIA1::format(instr, fmt, output, config),
Code::SUBS_SP_r_A1 => SubsSpRA1::format(instr, fmt, output, config),
Code::SUBS_SP_r_A1_RRX => SubsSpRA1Rrx::format(instr, fmt, output, config),
Code::SUBS_i_A1 => SubsIA1::format(instr, fmt, output, config),
Code::SUBS_r_A1 => SubsRA1::format(instr, fmt, output, config),
Code::SUBS_r_A1_RRX => SubsRA1Rrx::format(instr, fmt, output, config),
Code::SUBS_rr_A1 => SubsRrA1::format(instr, fmt, output, config),
Code::SUB_ADR_A2 => SubAdrA2::format(instr, fmt, output, config),
Code::SUB_SP_i_A1 => SubSpIA1::format(instr, fmt, output, config),
Code::SUB_SP_r_A1 => SubSpRA1::format(instr, fmt, output, config),
Code::SUB_SP_r_A1_RRX => SubSpRA1Rrx::format(instr, fmt, output, config),
Code::SUB_i_A1 => SubIA1::format(instr, fmt, output, config),
Code::SUB_r_A1 => SubRA1::format(instr, fmt, output, config),
Code::SUB_r_A1_RRX => SubRA1Rrx::format(instr, fmt, output, config),
Code::SUB_rr_A1 => SubRrA1::format(instr, fmt, output, config),
Code::SVC_A1 => SvcA1::format(instr, fmt, output, config),
Code::SXTAB16_A1 => Sxtab16A1::format(instr, fmt, output, config),
Code::SXTAB_A1 => SxtabA1::format(instr, fmt, output, config),
Code::SXTAH_A1 => SxtahA1::format(instr, fmt, output, config),
Code::SXTB16_A1 => Sxtb16A1::format(instr, fmt, output, config),
Code::SXTB_A1 => SxtbA1::format(instr, fmt, output, config),
Code::SXTH_A1 => SxthA1::format(instr, fmt, output, config),
Code::TEQ_i_A1 => TeqIA1::format(instr, fmt, output, config),
Code::TEQ_r_A1 => TeqRA1::format(instr, fmt, output, config),
Code::TEQ_r_A1_RRX => TeqRA1Rrx::format(instr, fmt, output, config),
Code::TEQ_rr_A1 => TeqRrA1::format(instr, fmt, output, config),
Code::TSB_A1 => TsbA1::format(instr, fmt, output, config),
Code::TST_i_A1 => TstIA1::format(instr, fmt, output, config),
Code::TST_r_A1 => TstRA1::format(instr, fmt, output, config),
Code::TST_r_A1_RRX => TstRA1Rrx::format(instr, fmt, output, config),
Code::TST_rr_A1 => TstRrA1::format(instr, fmt, output, config),
Code::UADD16_A1 => Uadd16A1::format(instr, fmt, output, config),
Code::UADD8_A1 => Uadd8A1::format(instr, fmt, output, config),
Code::UASX_A1 => UasxA1::format(instr, fmt, output, config),
Code::UBFX_A1 => UbfxA1::format(instr, fmt, output, config),
Code::UDF_A1 => UdfA1::format(instr, fmt, output, config),
Code::UDIV_A1 => UdivA1::format(instr, fmt, output, config),
Code::UHADD16_A1 => Uhadd16A1::format(instr, fmt, output, config),
Code::UHADD8_A1 => Uhadd8A1::format(instr, fmt, output, config),
Code::UHASX_A1 => UhasxA1::format(instr, fmt, output, config),
Code::UHSAX_A1 => UhsaxA1::format(instr, fmt, output, config),
Code::UHSUB16_A1 => Uhsub16A1::format(instr, fmt, output, config),
Code::UHSUB8_A1 => Uhsub8A1::format(instr, fmt, output, config),
Code::UMAAL_A1 => UmaalA1::format(instr, fmt, output, config),
Code::UMLALS_A1 => UmlalsA1::format(instr, fmt, output, config),
Code::UMLAL_A1 => UmlalA1::format(instr, fmt, output, config),
Code::UMULLS_A1 => UmullsA1::format(instr, fmt, output, config),
Code::UMULL_A1 => UmullA1::format(instr, fmt, output, config),
Code::UQADD16_A1 => Uqadd16A1::format(instr, fmt, output, config),
Code::UQADD8_A1 => Uqadd8A1::format(instr, fmt, output, config),
Code::UQASX_A1 => UqasxA1::format(instr, fmt, output, config),
Code::UQSAX_A1 => UqsaxA1::format(instr, fmt, output, config),
Code::UQSUB16_A1 => Uqsub16A1::format(instr, fmt, output, config),
Code::UQSUB8_A1 => Uqsub8A1::format(instr, fmt, output, config),
Code::USAD8_A1 => Usad8A1::format(instr, fmt, output, config),
Code::USADA8_A1 => Usada8A1::format(instr, fmt, output, config),
Code::USAT16_A1 => Usat16A1::format(instr, fmt, output, config),
Code::USAT_A1_ASR => UsatA1Asr::format(instr, fmt, output, config),
Code::USAT_A1_LSL => UsatA1Lsl::format(instr, fmt, output, config),
Code::USAX_A1 => UsaxA1::format(instr, fmt, output, config),
Code::USUB16_A1 => Usub16A1::format(instr, fmt, output, config),
Code::USUB8_A1 => Usub8A1::format(instr, fmt, output, config),
Code::UXTAB16_A1 => Uxtab16A1::format(instr, fmt, output, config),
Code::UXTAB_A1 => UxtabA1::format(instr, fmt, output, config),
Code::UXTAH_A1 => UxtahA1::format(instr, fmt, output, config),
Code::UXTB16_A1 => Uxtb16A1::format(instr, fmt, output, config),
Code::UXTB_A1 => UxtbA1::format(instr, fmt, output, config),
Code::UXTH_A1 => UxthA1::format(instr, fmt, output, config),
Code::WFE_A1 => WfeA1::format(instr, fmt, output, config),
Code::WFI_A1 => WfiA1::format(instr, fmt, output, config),
Code::YIELD_A1 => YieldA1::format(instr, fmt, output, config),
}
}
}