#![allow(non_snake_case)]
#![allow(unused)]
use std::collections::HashMap;
use crate::error::Result;
use super::super::consts::*;
use super::super::instructions::*;
use super::super::instruction::Instruction;
pub fn encode(instr: &Instruction, buf: &mut Vec<u8>) -> Result<usize> {
match instr.code {
Code::Invalid => todo!(),
Code::AND_r_T1 => AndRT1::encode(instr, buf),
Code::LSRS_MOV_r_T2 => LsrsMovRT2::encode(instr, buf),
Code::BICS_r_T2 => BicsRT2::encode(instr, buf),
Code::ORNS_i_T1 => OrnsIT1::encode(instr, buf),
Code::SMMLA_T1 => SmmlaT1::encode(instr, buf),
Code::SHSUB8_T1 => Shsub8T1::encode(instr, buf),
Code::QADD8_T1 => Qadd8T1::encode(instr, buf),
Code::CMP_r_T2 => CmpRT2::encode(instr, buf),
Code::SMMLAR_T1 => SmmlarT1::encode(instr, buf),
Code::CPSID_T2_AS => CpsidT2As::encode(instr, buf),
Code::LDRB_r_T1 => LdrbRT1::encode(instr, buf),
Code::BLX_r_T1 => BlxRT1::encode(instr, buf),
Code::ADD_i_T2 => AddIT2::encode(instr, buf),
Code::ADC_r_T1 => AdcRT1::encode(instr, buf),
Code::LDR_r_T1 => LdrRT1::encode(instr, buf),
Code::BX_T1 => BxT1::encode(instr, buf),
Code::LDAB_T1 => LdabT1::encode(instr, buf),
Code::LDC_l_T1_unind => LdcLT1Unind::encode(instr, buf),
Code::ORN_r_T1 => OrnRT1::encode(instr, buf),
Code::ADD_ADR_T3 => AddAdrT3::encode(instr, buf),
Code::LSLS_MOVS_rr_T2 => LslsMovsRrT2::encode(instr, buf),
Code::LDREX_T1 => LdrexT1::encode(instr, buf),
Code::UXTH_T2 => UxthT2::encode(instr, buf),
Code::LDRSHT_T1 => LdrshtT1::encode(instr, buf),
Code::SMULTT_T1 => SmulttT1::encode(instr, buf),
Code::STC_T1_unind => StcT1Unind::encode(instr, buf),
Code::CPSIE_T1_AS => CpsieT1As::encode(instr, buf),
Code::TST_r_T2 => TstRT2::encode(instr, buf),
Code::TST_i_T1 => TstIT1::encode(instr, buf),
Code::STR_i_T4_off => StrIT4Off::encode(instr, buf),
Code::STC_T1_off => StcT1Off::encode(instr, buf),
Code::QADD16_T1 => Qadd16T1::encode(instr, buf),
Code::LDRH_r_T2 => LdrhRT2::encode(instr, buf),
Code::MSR_r_T1_AS => MsrRT1As::encode(instr, buf),
Code::MOV_rr_T1_ASR => MovRrT1Asr::encode(instr, buf),
Code::REV16_T1 => Rev16T1::encode(instr, buf),
Code::RSBS_i_T2 => RsbsIT2::encode(instr, buf),
Code::BFC_T1 => BfcT1::encode(instr, buf),
Code::ADD_r_T3_RRX => AddRT3Rrx::encode(instr, buf),
Code::UHADD8_T1 => Uhadd8T1::encode(instr, buf),
Code::SEVL_T2 => SevlT2::encode(instr, buf),
Code::STC_T1_post => StcT1Post::encode(instr, buf),
Code::SB_T1 => SbT1::encode(instr, buf),
Code::STRB_r_T1 => StrbRT1::encode(instr, buf),
Code::PLI_i_T3 => PliIT3::encode(instr, buf),
Code::ASR_MOV_rr_T1_ASR => AsrMovRrT1Asr::encode(instr, buf),
Code::SMLSD_T1 => SmlsdT1::encode(instr, buf),
Code::STLEXD_T1 => StlexdT1::encode(instr, buf),
Code::SMLAWT_T1 => SmlawtT1::encode(instr, buf),
Code::SUBS_PC_T5_AS => SubsPcT5As::encode(instr, buf),
Code::UDF_T1 => UdfT1::encode(instr, buf),
Code::RRXS_MOVS_r_T3_RRX => RrxsMovsRT3Rrx::encode(instr, buf),
Code::MUL_T1 => MulT1::encode(instr, buf),
Code::MOV_r_T2 => MovRT2::encode(instr, buf),
Code::DSB_T1 => DsbT1::encode(instr, buf),
Code::STM_T1 => StmT1::encode(instr, buf),
Code::LDRT_T1 => LdrtT1::encode(instr, buf),
Code::SUB_SP_i_T1 => SubSpIT1::encode(instr, buf),
Code::NOP_T2 => NopT2::encode(instr, buf),
Code::UXTB16_T1 => Uxtb16T1::encode(instr, buf),
Code::STRB_r_T2 => StrbRT2::encode(instr, buf),
Code::HVC_T1 => HvcT1::encode(instr, buf),
Code::SXTAH_T1 => SxtahT1::encode(instr, buf),
Code::UXTAB_T1 => UxtabT1::encode(instr, buf),
Code::MOV_rr_T1_LSL => MovRrT1Lsl::encode(instr, buf),
Code::MRS_br_T1_AS => MrsBrT1As::encode(instr, buf),
Code::SUBS_SP_r_T1 => SubsSpRT1::encode(instr, buf),
Code::LDM_T1 => LdmT1::encode(instr, buf),
Code::ADD_SP_r_T3_RRX => AddSpRT3Rrx::encode(instr, buf),
Code::SMUSD_T1 => SmusdT1::encode(instr, buf),
Code::SBC_r_T2_RRX => SbcRT2Rrx::encode(instr, buf),
Code::USAD8_T1 => Usad8T1::encode(instr, buf),
Code::ADDS_r_T3 => AddsRT3::encode(instr, buf),
Code::QADD_T1 => QaddT1::encode(instr, buf),
Code::MOV_i_T2 => MovIT2::encode(instr, buf),
Code::STRT_T1 => StrtT1::encode(instr, buf),
Code::EORS_i_T1 => EorsIT1::encode(instr, buf),
Code::SVC_T1 => SvcT1::encode(instr, buf),
Code::ORRS_r_T2 => OrrsRT2::encode(instr, buf),
Code::SXTAB16_T1 => Sxtab16T1::encode(instr, buf),
Code::MOV_i_T3 => MovIT3::encode(instr, buf),
Code::CMN_r_T1 => CmnRT1::encode(instr, buf),
Code::LDRSB_l_T1 => LdrsbLT1::encode(instr, buf),
Code::ADR_T2 => AdrT2::encode(instr, buf),
Code::SUB_SP_i_T3 => SubSpIT3::encode(instr, buf),
Code::UMAAL_T1 => UmaalT1::encode(instr, buf),
Code::ANDS_r_T2 => AndsRT2::encode(instr, buf),
Code::UHASX_T1 => UhasxT1::encode(instr, buf),
Code::LDRB_l_T1 => LdrbLT1::encode(instr, buf),
Code::MVNS_r_T2 => MvnsRT2::encode(instr, buf),
Code::LDM_T2 => LdmT2::encode(instr, buf),
Code::BIC_r_T2 => BicRT2::encode(instr, buf),
Code::ADDS_SP_r_T3 => AddsSpRT3::encode(instr, buf),
Code::QSUB_T1 => QsubT1::encode(instr, buf),
Code::SBFX_T1 => SbfxT1::encode(instr, buf),
Code::STLEXB_T1 => StlexbT1::encode(instr, buf),
Code::ADD_SP_r_T1 => AddSpRT1::encode(instr, buf),
Code::ADDS_SP_i_T3 => AddsSpIT3::encode(instr, buf),
Code::LDC_l_T1_off => LdcLT1Off::encode(instr, buf),
Code::CRC32CH_T1 => Crc32chT1::encode(instr, buf),
Code::SSAT_T1_ASR => SsatT1Asr::encode(instr, buf),
Code::SBC_r_T1 => SbcRT1::encode(instr, buf),
Code::MSR_br_T1_AS => MsrBrT1As::encode(instr, buf),
Code::RFE_T2_AS => RfeT2As::encode(instr, buf),
Code::LDRD_l_T1_off => LdrdLT1Off::encode(instr, buf),
Code::MLS_T1 => MlsT1::encode(instr, buf),
Code::ADD_SP_i_T2 => AddSpIT2::encode(instr, buf),
Code::ADR_T3 => AdrT3::encode(instr, buf),
Code::SMLALBT_T1 => SmlalbtT1::encode(instr, buf),
Code::SMULBB_T1 => SmulbbT1::encode(instr, buf),
Code::UMULL_T1 => UmullT1::encode(instr, buf),
Code::UXTAH_T1 => UxtahT1::encode(instr, buf),
Code::UQASX_T1 => UqasxT1::encode(instr, buf),
Code::UBFX_T1 => UbfxT1::encode(instr, buf),
Code::ANDS_r_T2_RRX => AndsRT2Rrx::encode(instr, buf),
Code::BL_i_T2 => BlIT2::encode(instr, buf),
Code::USAT_T1_ASR => UsatT1Asr::encode(instr, buf),
Code::SMULTB_T1 => SmultbT1::encode(instr, buf),
Code::SXTH_T2 => SxthT2::encode(instr, buf),
Code::ADD_SP_r_T2 => AddSpRT2::encode(instr, buf),
Code::WFI_T1 => WfiT1::encode(instr, buf),
Code::CLREX_T1 => ClrexT1::encode(instr, buf),
Code::SUB_r_T1 => SubRT1::encode(instr, buf),
Code::ADD_SP_r_T3 => AddSpRT3::encode(instr, buf),
Code::QDSUB_T1 => QdsubT1::encode(instr, buf),
Code::LDRB_i_T3_off => LdrbIT3Off::encode(instr, buf),
Code::SSAT16_T1 => Ssat16T1::encode(instr, buf),
Code::LSR_MOV_rr_T2 => LsrMovRrT2::encode(instr, buf),
Code::MOVS_rr_T2 => MovsRrT2::encode(instr, buf),
Code::SUBS_r_T2_RRX => SubsRT2Rrx::encode(instr, buf),
Code::ADD_r_T3 => AddRT3::encode(instr, buf),
Code::SHASX_T1 => ShasxT1::encode(instr, buf),
Code::STR_i_T3 => StrIT3::encode(instr, buf),
Code::SMMLSR_T1 => SmmlsrT1::encode(instr, buf),
Code::SMLAWB_T1 => SmlawbT1::encode(instr, buf),
Code::SMLATB_T1 => SmlatbT1::encode(instr, buf),
Code::SMULL_T1 => SmullT1::encode(instr, buf),
Code::RORS_MOVS_rr_T2 => RorsMovsRrT2::encode(instr, buf),
Code::LDRSH_i_T2_pre => LdrshIT2Pre::encode(instr, buf),
Code::STRB_i_T3_offn => StrbIT3Offn::encode(instr, buf),
Code::LDAEXB_T1 => LdaexbT1::encode(instr, buf),
Code::LSLS_MOVS_r_T3 => LslsMovsRT3::encode(instr, buf),
Code::LDR_i_T1 => LdrIT1::encode(instr, buf),
Code::ADD_ADR_T1 => AddAdrT1::encode(instr, buf),
Code::STRBT_T1 => StrbtT1::encode(instr, buf),
Code::HLT_T1 => HltT1::encode(instr, buf),
Code::SEV_T1 => SevT1::encode(instr, buf),
Code::EOR_r_T2_RRX => EorRT2Rrx::encode(instr, buf),
Code::MOVT_T1 => MovtT1::encode(instr, buf),
Code::MRS_T1_AS => MrsT1As::encode(instr, buf),
Code::CSDB_T1 => CsdbT1::encode(instr, buf),
Code::ESB_T1 => EsbT1::encode(instr, buf),
Code::CPSID_T1_AS => CpsidT1As::encode(instr, buf),
Code::SMULWT_T1 => SmulwtT1::encode(instr, buf),
Code::LDRSH_l_T1 => LdrshLT1::encode(instr, buf),
Code::CMP_i_T2 => CmpIT2::encode(instr, buf),
Code::UQADD16_T1 => Uqadd16T1::encode(instr, buf),
Code::PKHBT_T1 => PkhbtT1::encode(instr, buf),
Code::STLEXH_T1 => StlexhT1::encode(instr, buf),
Code::SMLALDX_T1 => SmlaldxT1::encode(instr, buf),
Code::USAT16_T1 => Usat16T1::encode(instr, buf),
Code::SMLABB_T1 => SmlabbT1::encode(instr, buf),
Code::SMLADX_T1 => SmladxT1::encode(instr, buf),
Code::SBC_i_T1 => SbcIT1::encode(instr, buf),
Code::STRB_i_T1 => StrbIT1::encode(instr, buf),
Code::LDRD_l_T1_pre => LdrdLT1Pre::encode(instr, buf),
Code::PLD_r_T1 => PldRT1::encode(instr, buf),
Code::REV_T2 => RevT2::encode(instr, buf),
Code::LSR_MOV_r_T3 => LsrMovRT3::encode(instr, buf),
Code::SMLSDX_T1 => SmlsdxT1::encode(instr, buf),
Code::STRH_r_T1 => StrhRT1::encode(instr, buf),
Code::ADCS_r_T2_RRX => AdcsRT2Rrx::encode(instr, buf),
Code::CMP_i_T1 => CmpIT1::encode(instr, buf),
Code::ORN_r_T1_RRX => OrnRT1Rrx::encode(instr, buf),
Code::LDC_i_T1_pre => LdcIT1Pre::encode(instr, buf),
Code::SHADD16_T1 => Shadd16T1::encode(instr, buf),
Code::REVSH_T1 => RevshT1::encode(instr, buf),
Code::SADD8_T1 => Sadd8T1::encode(instr, buf),
Code::SMLATT_T1 => SmlattT1::encode(instr, buf),
Code::SBC_r_T2 => SbcRT2::encode(instr, buf),
Code::CLZ_T1 => ClzT1::encode(instr, buf),
Code::REV16_T2 => Rev16T2::encode(instr, buf),
Code::SUB_r_T2_RRX => SubRT2Rrx::encode(instr, buf),
Code::PSSBB_T1 => PssbbT1::encode(instr, buf),
Code::SMUSDX_T1 => SmusdxT1::encode(instr, buf),
Code::SRS_T2_AS => SrsT2As::encode(instr, buf),
Code::CRC32B_T1 => Crc32bT1::encode(instr, buf),
Code::STR_r_T1 => StrRT1::encode(instr, buf),
Code::LDRSB_i_T2_post => LdrsbIT2Post::encode(instr, buf),
Code::BIC_r_T2_RRX => BicRT2Rrx::encode(instr, buf),
Code::LSL_MOV_r_T3 => LslMovRT3::encode(instr, buf),
Code::SMLSLDX_T1 => SmlsldxT1::encode(instr, buf),
Code::LSRS_MOVS_rr_T2 => LsrsMovsRrT2::encode(instr, buf),
Code::SETPAN_T1 => SetpanT1::encode(instr, buf),
Code::ADDS_i_T3 => AddsIT3::encode(instr, buf),
Code::ADR_T1 => AdrT1::encode(instr, buf),
Code::CMN_i_T1 => CmnIT1::encode(instr, buf),
Code::SXTB_T2 => SxtbT2::encode(instr, buf),
Code::RORS_MOVS_r_T3 => RorsMovsRT3::encode(instr, buf),
Code::ADD_i_T3 => AddIT3::encode(instr, buf),
Code::MOV_r_T3_RRX => MovRT3Rrx::encode(instr, buf),
Code::B_T2 => BT2::encode(instr, buf),
Code::SUB_i_T1 => SubIT1::encode(instr, buf),
Code::RFE_T1_AS => RfeT1As::encode(instr, buf),
Code::UHADD16_T1 => Uhadd16T1::encode(instr, buf),
Code::STRB_i_T3_pre => StrbIT3Pre::encode(instr, buf),
Code::CMP_r_T1 => CmpRT1::encode(instr, buf),
Code::MOVS_r_T3 => MovsRT3::encode(instr, buf),
Code::ERET_T1 => EretT1::encode(instr, buf),
Code::STREXD_T1 => StrexdT1::encode(instr, buf),
Code::MOV_r_T1 => MovRT1::encode(instr, buf),
Code::USADA8_T1 => Usada8T1::encode(instr, buf),
Code::MVNS_i_T1 => MvnsIT1::encode(instr, buf),
Code::SMLSLD_T1 => SmlsldT1::encode(instr, buf),
Code::CRC32CW_T1 => Crc32cwT1::encode(instr, buf),
Code::ADC_r_T2 => AdcRT2::encode(instr, buf),
Code::DBG_T1 => DbgT1::encode(instr, buf),
Code::SBCS_i_T1 => SbcsIT1::encode(instr, buf),
Code::LDRB_i_T2 => LdrbIT2::encode(instr, buf),
Code::TEQ_r_T1_RRX => TeqRT1Rrx::encode(instr, buf),
Code::RBIT_T1 => RbitT1::encode(instr, buf),
Code::LDAH_T1 => LdahT1::encode(instr, buf),
Code::LDRD_i_T1_pre => LdrdIT1Pre::encode(instr, buf),
Code::CRC32W_T1 => Crc32wT1::encode(instr, buf),
Code::PLD_l_T1 => PldLT1::encode(instr, buf),
Code::PLD_i_T2 => PldIT2::encode(instr, buf),
Code::LDRD_i_T1_off => LdrdIT1Off::encode(instr, buf),
Code::ADC_r_T2_RRX => AdcRT2Rrx::encode(instr, buf),
Code::RORS_MOV_rr_T1_ROR => RorsMovRrT1Ror::encode(instr, buf),
Code::SUB_SP_r_T1_RRX => SubSpRT1Rrx::encode(instr, buf),
Code::RSBS_r_T1 => RsbsRT1::encode(instr, buf),
Code::MVN_r_T2_RRX => MvnRT2Rrx::encode(instr, buf),
Code::PUSH_STMDB_T1 => PushStmdbT1::encode(instr, buf),
Code::LDR_i_T4_post => LdrIT4Post::encode(instr, buf),
Code::LSL_MOV_rr_T1_LSL => LslMovRrT1Lsl::encode(instr, buf),
Code::SUB_r_T2 => SubRT2::encode(instr, buf),
Code::LDR_l_T2 => LdrLT2::encode(instr, buf),
Code::MVN_r_T1 => MvnRT1::encode(instr, buf),
Code::SSUB16_T1 => Ssub16T1::encode(instr, buf),
Code::ADDS_SP_r_T3_RRX => AddsSpRT3Rrx::encode(instr, buf),
Code::LDRSH_i_T1 => LdrshIT1::encode(instr, buf),
Code::CRC32H_T1 => Crc32hT1::encode(instr, buf),
Code::LDRSH_r_T1 => LdrshRT1::encode(instr, buf),
Code::SUBS_SP_r_T1_RRX => SubsSpRT1Rrx::encode(instr, buf),
Code::LDAEXD_T1 => LdaexdT1::encode(instr, buf),
Code::LDREXB_T1 => LdrexbT1::encode(instr, buf),
Code::TST_r_T1 => TstRT1::encode(instr, buf),
Code::LDRSB_i_T2_off => LdrsbIT2Off::encode(instr, buf),
Code::CPSIE_T2_AS => CpsieT2As::encode(instr, buf),
Code::ROR_MOV_r_T3 => RorMovRT3::encode(instr, buf),
Code::SMMULR_T1 => SmmulrT1::encode(instr, buf),
Code::LSLS_MOV_rr_T1_LSL => LslsMovRrT1Lsl::encode(instr, buf),
Code::IT_T1 => ItT1::encode(instr, buf),
Code::LDRH_i_T2 => LdrhIT2::encode(instr, buf),
Code::SMUADX_T1 => SmuadxT1::encode(instr, buf),
Code::POP_LDR_i_T4_post => PopLdrIT4Post::encode(instr, buf),
Code::ADCS_i_T1 => AdcsIT1::encode(instr, buf),
Code::SUB_SP_i_T2 => SubSpIT2::encode(instr, buf),
Code::STRB_i_T2 => StrbIT2::encode(instr, buf),
Code::UDIV_T1 => UdivT1::encode(instr, buf),
Code::BKPT_T1 => BkptT1::encode(instr, buf),
Code::LDRH_i_T3_off => LdrhIT3Off::encode(instr, buf),
Code::PLDW_r_T1 => PldwRT1::encode(instr, buf),
Code::LDRSH_i_T2_off => LdrshIT2Off::encode(instr, buf),
Code::SUB_SP_r_T1 => SubSpRT1::encode(instr, buf),
Code::STRH_i_T3_pre => StrhIT3Pre::encode(instr, buf),
Code::PLI_i_T1 => PliIT1::encode(instr, buf),
Code::USUB8_T1 => Usub8T1::encode(instr, buf),
Code::UXTB_T1 => UxtbT1::encode(instr, buf),
Code::STRD_i_T1_pre => StrdIT1Pre::encode(instr, buf),
Code::QDADD_T1 => QdaddT1::encode(instr, buf),
Code::SUBS_i_T3 => SubsIT3::encode(instr, buf),
Code::ORR_r_T2 => OrrRT2::encode(instr, buf),
Code::ADD_SP_i_T3 => AddSpIT3::encode(instr, buf),
Code::CMP_r_T3 => CmpRT3::encode(instr, buf),
Code::EOR_r_T2 => EorRT2::encode(instr, buf),
Code::LDC_l_T1_post => LdcLT1Post::encode(instr, buf),
Code::DCPS3_T1 => Dcps3T1::encode(instr, buf),
Code::ASRS_MOVS_rr_T2 => AsrsMovsRrT2::encode(instr, buf),
Code::CMN_r_T2 => CmnRT2::encode(instr, buf),
Code::USUB16_T1 => Usub16T1::encode(instr, buf),
Code::LDRH_l_T1 => LdrhLT1::encode(instr, buf),
Code::UASX_T1 => UasxT1::encode(instr, buf),
Code::EORS_r_T2 => EorsRT2::encode(instr, buf),
Code::RSB_i_T2 => RsbIT2::encode(instr, buf),
Code::SMULWB_T1 => SmulwbT1::encode(instr, buf),
Code::ASR_MOV_r_T2 => AsrMovRT2::encode(instr, buf),
Code::LDRB_r_T2 => LdrbRT2::encode(instr, buf),
Code::CLRBHB_T1 => ClrbhbT1::encode(instr, buf),
Code::STLH_T1 => StlhT1::encode(instr, buf),
Code::SSUB8_T1 => Ssub8T1::encode(instr, buf),
Code::LDREXD_T1 => LdrexdT1::encode(instr, buf),
Code::SMLAD_T1 => SmladT1::encode(instr, buf),
Code::STRH_r_T2 => StrhRT2::encode(instr, buf),
Code::RSBS_r_T1_RRX => RsbsRT1Rrx::encode(instr, buf),
Code::ROR_MOV_rr_T1_ROR => RorMovRrT1Ror::encode(instr, buf),
Code::UHSAX_T1 => UhsaxT1::encode(instr, buf),
Code::WFI_T2 => WfiT2::encode(instr, buf),
Code::STR_i_T2 => StrIT2::encode(instr, buf),
Code::MOV_rr_T1_LSR => MovRrT1Lsr::encode(instr, buf),
Code::UDF_T2 => UdfT2::encode(instr, buf),
Code::ADD_i_T4 => AddIT4::encode(instr, buf),
Code::ORNS_r_T1 => OrnsRT1::encode(instr, buf),
Code::EOR_i_T1 => EorIT1::encode(instr, buf),
Code::STR_i_T1 => StrIT1::encode(instr, buf),
Code::STM_T2 => StmT2::encode(instr, buf),
Code::LSR_MOV_rr_T1_LSR => LsrMovRrT1Lsr::encode(instr, buf),
Code::SUBS_r_T2 => SubsRT2::encode(instr, buf),
Code::MVN_r_T2 => MvnRT2::encode(instr, buf),
Code::SMULBT_T1 => SmulbtT1::encode(instr, buf),
Code::SXTB16_T1 => Sxtb16T1::encode(instr, buf),
Code::SMLALTB_T1 => SmlaltbT1::encode(instr, buf),
Code::PUSH_T1 => PushT1::encode(instr, buf),
Code::STRB_i_T3_post => StrbIT3Post::encode(instr, buf),
Code::LDRSB_r_T2 => LdrsbRT2::encode(instr, buf),
Code::MVN_i_T1 => MvnIT1::encode(instr, buf),
Code::SMLABT_T1 => SmlabtT1::encode(instr, buf),
Code::CPSID_T2_ASM => CpsidT2Asm::encode(instr, buf),
Code::CMN_r_T2_RRX => CmnRT2Rrx::encode(instr, buf),
Code::REV_T1 => RevT1::encode(instr, buf),
Code::ISB_T1 => IsbT1::encode(instr, buf),
Code::RSB_i_T1 => RsbIT1::encode(instr, buf),
Code::LSRS_MOVS_r_T3 => LsrsMovsRT3::encode(instr, buf),
Code::LDRSH_r_T2 => LdrshRT2::encode(instr, buf),
Code::LDRD_l_T1_post => LdrdLT1Post::encode(instr, buf),
Code::SXTAB_T1 => SxtabT1::encode(instr, buf),
Code::PLDW_i_T1 => PldwIT1::encode(instr, buf),
Code::STRHT_T1 => StrhtT1::encode(instr, buf),
Code::SXTB_T1 => SxtbT1::encode(instr, buf),
Code::EORS_r_T2_RRX => EorsRT2Rrx::encode(instr, buf),
Code::CPS_T2_AS => CpsT2As::encode(instr, buf),
Code::ADC_i_T1 => AdcIT1::encode(instr, buf),
Code::BFI_T1 => BfiT1::encode(instr, buf),
Code::POP_LDM_T2 => PopLdmT2::encode(instr, buf),
Code::UMLAL_T1 => UmlalT1::encode(instr, buf),
Code::YIELD_T1 => YieldT1::encode(instr, buf),
Code::MOV_rr_T1_ROR => MovRrT1Ror::encode(instr, buf),
Code::SMLALD_T1 => SmlaldT1::encode(instr, buf),
Code::PLDW_i_T2 => PldwIT2::encode(instr, buf),
Code::LSL_MOV_r_T2 => LslMovRT2::encode(instr, buf),
Code::ASRS_MOVS_r_T3 => AsrsMovsRT3::encode(instr, buf),
Code::TBH_T1 => TbhT1::encode(instr, buf),
Code::TSB_T1 => TsbT1::encode(instr, buf),
Code::ORR_r_T2_RRX => OrrRT2Rrx::encode(instr, buf),
Code::SHADD8_T1 => Shadd8T1::encode(instr, buf),
Code::MOV_i_T1 => MovIT1::encode(instr, buf),
Code::STRD_i_T1_off => StrdIT1Off::encode(instr, buf),
Code::MOVS_i_T2 => MovsIT2::encode(instr, buf),
Code::LDRSBT_T1 => LdrsbtT1::encode(instr, buf),
Code::STREXB_T1 => StrexbT1::encode(instr, buf),
Code::LDAEXH_T1 => LdaexhT1::encode(instr, buf),
Code::UXTAB16_T1 => Uxtab16T1::encode(instr, buf),
Code::DCPS1_T1 => Dcps1T1::encode(instr, buf),
Code::ASRS_MOV_r_T2 => AsrsMovRT2::encode(instr, buf),
Code::LSRS_MOV_rr_T1_LSR => LsrsMovRrT1Lsr::encode(instr, buf),
Code::SBCS_r_T2_RRX => SbcsRT2Rrx::encode(instr, buf),
Code::STREX_T1 => StrexT1::encode(instr, buf),
Code::MVNS_r_T2_RRX => MvnsRT2Rrx::encode(instr, buf),
Code::PKHTB_T1 => PkhtbT1::encode(instr, buf),
Code::UQSAX_T1 => UqsaxT1::encode(instr, buf),
Code::ORRS_r_T2_RRX => OrrsRT2Rrx::encode(instr, buf),
Code::ADD_r_T1 => AddRT1::encode(instr, buf),
Code::TEQ_i_T1 => TeqIT1::encode(instr, buf),
Code::ADD_i_T1 => AddIT1::encode(instr, buf),
Code::CBNZ_T1 => CbnzT1::encode(instr, buf),
Code::LDRHT_T1 => LdrhtT1::encode(instr, buf),
Code::STR_r_T2 => StrRT2::encode(instr, buf),
Code::LDRB_i_T3_pre => LdrbIT3Pre::encode(instr, buf),
Code::B_T1 => BT1::encode(instr, buf),
Code::B_T4 => BT4::encode(instr, buf),
Code::LDRB_i_T3_post => LdrbIT3Post::encode(instr, buf),
Code::TBB_T1 => TbbT1::encode(instr, buf),
Code::ROR_MOV_rr_T2 => RorMovRrT2::encode(instr, buf),
Code::QASX_T1 => QasxT1::encode(instr, buf),
Code::USAX_T1 => UsaxT1::encode(instr, buf),
Code::LDRSB_i_T1 => LdrsbIT1::encode(instr, buf),
Code::LDRH_i_T1 => LdrhIT1::encode(instr, buf),
Code::LDRSB_i_T2_pre => LdrsbIT2Pre::encode(instr, buf),
Code::SMC_T1_AS => SmcT1As::encode(instr, buf),
Code::MOV_r_T3 => MovRT3::encode(instr, buf),
Code::BICS_i_T1 => BicsIT1::encode(instr, buf),
Code::EOR_r_T1 => EorRT1::encode(instr, buf),
Code::UADD8_T1 => Uadd8T1::encode(instr, buf),
Code::B_T3 => BT3::encode(instr, buf),
Code::SMLALTT_T1 => SmlalttT1::encode(instr, buf),
Code::BIC_r_T1 => BicRT1::encode(instr, buf),
Code::SMMLS_T1 => SmmlsT1::encode(instr, buf),
Code::RSB_r_T1 => RsbRT1::encode(instr, buf),
Code::UQSUB8_T1 => Uqsub8T1::encode(instr, buf),
Code::RSB_r_T1_RRX => RsbRT1Rrx::encode(instr, buf),
Code::SASX_T1 => SasxT1::encode(instr, buf),
Code::MCR_T1 => McrT1::encode(instr, buf),
Code::CMP_r_T3_RRX => CmpRT3Rrx::encode(instr, buf),
Code::LDMDB_T1 => LdmdbT1::encode(instr, buf),
Code::LDC_l_T1_pre => LdcLT1Pre::encode(instr, buf),
Code::SETEND_T1 => SetendT1::encode(instr, buf),
Code::STRH_i_T3_post => StrhIT3Post::encode(instr, buf),
Code::ASR_MOV_r_T3 => AsrMovRT3::encode(instr, buf),
Code::SUB_i_T3 => SubIT3::encode(instr, buf),
Code::SEVL_T1 => SevlT1::encode(instr, buf),
Code::REVSH_T2 => RevshT2::encode(instr, buf),
Code::PLI_r_T1 => PliRT1::encode(instr, buf),
Code::MRC_T1 => MrcT1::encode(instr, buf),
Code::ORR_i_T1 => OrrIT1::encode(instr, buf),
Code::UADD16_T1 => Uadd16T1::encode(instr, buf),
Code::STRH_i_T2 => StrhIT2::encode(instr, buf),
Code::LDRSH_i_T2_post => LdrshIT2Post::encode(instr, buf),
Code::SUBS_SP_i_T2 => SubsSpIT2::encode(instr, buf),
Code::SSAX_T1 => SsaxT1::encode(instr, buf),
Code::STC_T1_pre => StcT1Pre::encode(instr, buf),
Code::LDAEX_T1 => LdaexT1::encode(instr, buf),
Code::MOV_rr_T2 => MovRrT2::encode(instr, buf),
Code::STRH_i_T3_offn => StrhIT3Offn::encode(instr, buf),
Code::SADD16_T1 => Sadd16T1::encode(instr, buf),
Code::SMUAD_T1 => SmuadT1::encode(instr, buf),
Code::LDREXH_T1 => LdrexhT1::encode(instr, buf),
Code::ADD_SP_i_T1 => AddSpIT1::encode(instr, buf),
Code::LDR_i_T4_off => LdrIT4Off::encode(instr, buf),
Code::ASR_MOV_rr_T2 => AsrMovRrT2::encode(instr, buf),
Code::ADD_r_T2 => AddRT2::encode(instr, buf),
Code::ADCS_r_T2 => AdcsRT2::encode(instr, buf),
Code::ORNS_r_T1_RRX => OrnsRT1Rrx::encode(instr, buf),
Code::CPSIE_T2_ASM => CpsieT2Asm::encode(instr, buf),
Code::STRD_i_T1_post => StrdIT1Post::encode(instr, buf),
Code::UXTH_T1 => UxthT1::encode(instr, buf),
Code::SEL_T1 => SelT1::encode(instr, buf),
Code::SBCS_r_T2 => SbcsRT2::encode(instr, buf),
Code::LDRB_i_T1 => LdrbIT1::encode(instr, buf),
Code::LDA_T1 => LdaT1::encode(instr, buf),
Code::LSR_MOV_r_T2 => LsrMovRT2::encode(instr, buf),
Code::LDC_i_T1_post => LdcIT1Post::encode(instr, buf),
Code::UQADD8_T1 => Uqadd8T1::encode(instr, buf),
Code::LDC_i_T1_off => LdcIT1Off::encode(instr, buf),
Code::SSBB_T1 => SsbbT1::encode(instr, buf),
Code::MUL_T2 => MulT2::encode(instr, buf),
Code::STMDB_T1 => StmdbT1::encode(instr, buf),
Code::BICS_r_T2_RRX => BicsRT2Rrx::encode(instr, buf),
Code::SUB_ADR_T2 => SubAdrT2::encode(instr, buf),
Code::WFE_T1 => WfeT1::encode(instr, buf),
Code::MOVS_r_T3_RRX => MovsRT3Rrx::encode(instr, buf),
Code::LDR_i_T4_pre => LdrIT4Pre::encode(instr, buf),
Code::LDC_i_T1_unind => LdcIT1Unind::encode(instr, buf),
Code::UHSUB16_T1 => Uhsub16T1::encode(instr, buf),
Code::STLEX_T1 => StlexT1::encode(instr, buf),
Code::STR_i_T4_post => StrIT4Post::encode(instr, buf),
Code::BXJ_T1 => BxjT1::encode(instr, buf),
Code::TST_r_T2_RRX => TstRT2Rrx::encode(instr, buf),
Code::CBZ_T1 => CbzT1::encode(instr, buf),
Code::AND_i_T1 => AndIT1::encode(instr, buf),
Code::SSAT_T1_LSL => SsatT1Lsl::encode(instr, buf),
Code::LDR_r_T2 => LdrRT2::encode(instr, buf),
Code::AND_r_T2 => AndRT2::encode(instr, buf),
Code::ORR_r_T1 => OrrRT1::encode(instr, buf),
Code::SDIV_T1 => SdivT1::encode(instr, buf),
Code::LDR_i_T2 => LdrIT2::encode(instr, buf),
Code::UXTB_T2 => UxtbT2::encode(instr, buf),
Code::LDRBT_T1 => LdrbtT1::encode(instr, buf),
Code::SHSAX_T1 => ShsaxT1::encode(instr, buf),
Code::ASRS_MOV_rr_T1_ASR => AsrsMovRrT1Asr::encode(instr, buf),
Code::ADD_SP_i_T4 => AddSpIT4::encode(instr, buf),
Code::UQSUB16_T1 => Uqsub16T1::encode(instr, buf),
Code::NOP_T1 => NopT1::encode(instr, buf),
Code::SMMUL_T1 => SmmulT1::encode(instr, buf),
Code::AND_r_T2_RRX => AndRT2Rrx::encode(instr, buf),
Code::PUSH_STR_i_T4_pre => PushStrIT4Pre::encode(instr, buf),
Code::POP_T1 => PopT1::encode(instr, buf),
Code::LSL_MOV_rr_T2 => LslMovRrT2::encode(instr, buf),
Code::SHSUB16_T1 => Shsub16T1::encode(instr, buf),
Code::PLD_i_T1 => PldIT1::encode(instr, buf),
Code::SEV_T2 => SevT2::encode(instr, buf),
Code::ANDS_i_T1 => AndsIT1::encode(instr, buf),
Code::TEQ_r_T1 => TeqRT1::encode(instr, buf),
Code::STREXH_T1 => StrexhT1::encode(instr, buf),
Code::ADDS_r_T3_RRX => AddsRT3Rrx::encode(instr, buf),
Code::PLI_i_T2 => PliIT2::encode(instr, buf),
Code::SMLALBB_T1 => SmlalbbT1::encode(instr, buf),
Code::ORRS_i_T1 => OrrsIT1::encode(instr, buf),
Code::ORN_i_T1 => OrnIT1::encode(instr, buf),
Code::QSUB8_T1 => Qsub8T1::encode(instr, buf),
Code::UHSUB8_T1 => Uhsub8T1::encode(instr, buf),
Code::QSUB16_T1 => Qsub16T1::encode(instr, buf),
Code::SUB_i_T2 => SubIT2::encode(instr, buf),
Code::STR_i_T4_pre => StrIT4Pre::encode(instr, buf),
Code::LDRH_i_T3_post => LdrhIT3Post::encode(instr, buf),
Code::MRRC_T1 => MrrcT1::encode(instr, buf),
Code::MLA_T1 => MlaT1::encode(instr, buf),
Code::STLB_T1 => StlbT1::encode(instr, buf),
Code::LDRH_r_T1 => LdrhRT1::encode(instr, buf),
Code::LDRH_i_T3_pre => LdrhIT3Pre::encode(instr, buf),
Code::SXTH_T1 => SxthT1::encode(instr, buf),
Code::BL_i_T1 => BlIT1::encode(instr, buf),
Code::LDRD_i_T1_post => LdrdIT1Post::encode(instr, buf),
Code::SMLAL_T1 => SmlalT1::encode(instr, buf),
Code::DCPS2_T1 => Dcps2T1::encode(instr, buf),
Code::MCRR_T1 => McrrT1::encode(instr, buf),
Code::LSLS_MOV_r_T2 => LslsMovRT2::encode(instr, buf),
Code::STL_T1 => StlT1::encode(instr, buf),
Code::STRH_i_T1 => StrhIT1::encode(instr, buf),
Code::SUB_i_T4 => SubIT4::encode(instr, buf),
Code::LDR_i_T3 => LdrIT3::encode(instr, buf),
Code::YIELD_T2 => YieldT2::encode(instr, buf),
Code::RRX_MOV_r_T3_RRX => RrxMovRT3Rrx::encode(instr, buf),
Code::DMB_T1 => DmbT1::encode(instr, buf),
Code::SRS_T1_AS => SrsT1As::encode(instr, buf),
Code::CRC32CB_T1 => Crc32cbT1::encode(instr, buf),
Code::LDRSB_r_T1 => LdrsbRT1::encode(instr, buf),
Code::WFE_T2 => WfeT2::encode(instr, buf),
Code::QSAX_T1 => QsaxT1::encode(instr, buf),
Code::USAT_T1_LSL => UsatT1Lsl::encode(instr, buf),
Code::BIC_i_T1 => BicIT1::encode(instr, buf),
}
}
pub fn encode_block(instr: &mut Instruction, buf: &mut Vec<u8>, labels: &HashMap<u64, u64>) -> Result<usize> {
match instr.code {
Code::Invalid => todo!(),
Code::AND_r_T1 => AndRT1::encode_block(instr, buf, labels),
Code::LSRS_MOV_r_T2 => LsrsMovRT2::encode_block(instr, buf, labels),
Code::BICS_r_T2 => BicsRT2::encode_block(instr, buf, labels),
Code::ORNS_i_T1 => OrnsIT1::encode_block(instr, buf, labels),
Code::SMMLA_T1 => SmmlaT1::encode_block(instr, buf, labels),
Code::SHSUB8_T1 => Shsub8T1::encode_block(instr, buf, labels),
Code::QADD8_T1 => Qadd8T1::encode_block(instr, buf, labels),
Code::CMP_r_T2 => CmpRT2::encode_block(instr, buf, labels),
Code::SMMLAR_T1 => SmmlarT1::encode_block(instr, buf, labels),
Code::CPSID_T2_AS => CpsidT2As::encode_block(instr, buf, labels),
Code::LDRB_r_T1 => LdrbRT1::encode_block(instr, buf, labels),
Code::BLX_r_T1 => BlxRT1::encode_block(instr, buf, labels),
Code::ADD_i_T2 => AddIT2::encode_block(instr, buf, labels),
Code::ADC_r_T1 => AdcRT1::encode_block(instr, buf, labels),
Code::LDR_r_T1 => LdrRT1::encode_block(instr, buf, labels),
Code::BX_T1 => BxT1::encode_block(instr, buf, labels),
Code::LDAB_T1 => LdabT1::encode_block(instr, buf, labels),
Code::LDC_l_T1_unind => LdcLT1Unind::encode_block(instr, buf, labels),
Code::ORN_r_T1 => OrnRT1::encode_block(instr, buf, labels),
Code::ADD_ADR_T3 => AddAdrT3::encode_block(instr, buf, labels),
Code::LSLS_MOVS_rr_T2 => LslsMovsRrT2::encode_block(instr, buf, labels),
Code::LDREX_T1 => LdrexT1::encode_block(instr, buf, labels),
Code::UXTH_T2 => UxthT2::encode_block(instr, buf, labels),
Code::LDRSHT_T1 => LdrshtT1::encode_block(instr, buf, labels),
Code::SMULTT_T1 => SmulttT1::encode_block(instr, buf, labels),
Code::STC_T1_unind => StcT1Unind::encode_block(instr, buf, labels),
Code::CPSIE_T1_AS => CpsieT1As::encode_block(instr, buf, labels),
Code::TST_r_T2 => TstRT2::encode_block(instr, buf, labels),
Code::TST_i_T1 => TstIT1::encode_block(instr, buf, labels),
Code::STR_i_T4_off => StrIT4Off::encode_block(instr, buf, labels),
Code::STC_T1_off => StcT1Off::encode_block(instr, buf, labels),
Code::QADD16_T1 => Qadd16T1::encode_block(instr, buf, labels),
Code::LDRH_r_T2 => LdrhRT2::encode_block(instr, buf, labels),
Code::MSR_r_T1_AS => MsrRT1As::encode_block(instr, buf, labels),
Code::MOV_rr_T1_ASR => MovRrT1Asr::encode_block(instr, buf, labels),
Code::REV16_T1 => Rev16T1::encode_block(instr, buf, labels),
Code::RSBS_i_T2 => RsbsIT2::encode_block(instr, buf, labels),
Code::BFC_T1 => BfcT1::encode_block(instr, buf, labels),
Code::ADD_r_T3_RRX => AddRT3Rrx::encode_block(instr, buf, labels),
Code::UHADD8_T1 => Uhadd8T1::encode_block(instr, buf, labels),
Code::SEVL_T2 => SevlT2::encode_block(instr, buf, labels),
Code::STC_T1_post => StcT1Post::encode_block(instr, buf, labels),
Code::SB_T1 => SbT1::encode_block(instr, buf, labels),
Code::STRB_r_T1 => StrbRT1::encode_block(instr, buf, labels),
Code::PLI_i_T3 => PliIT3::encode_block(instr, buf, labels),
Code::ASR_MOV_rr_T1_ASR => AsrMovRrT1Asr::encode_block(instr, buf, labels),
Code::SMLSD_T1 => SmlsdT1::encode_block(instr, buf, labels),
Code::STLEXD_T1 => StlexdT1::encode_block(instr, buf, labels),
Code::SMLAWT_T1 => SmlawtT1::encode_block(instr, buf, labels),
Code::SUBS_PC_T5_AS => SubsPcT5As::encode_block(instr, buf, labels),
Code::UDF_T1 => UdfT1::encode_block(instr, buf, labels),
Code::RRXS_MOVS_r_T3_RRX => RrxsMovsRT3Rrx::encode_block(instr, buf, labels),
Code::MUL_T1 => MulT1::encode_block(instr, buf, labels),
Code::MOV_r_T2 => MovRT2::encode_block(instr, buf, labels),
Code::DSB_T1 => DsbT1::encode_block(instr, buf, labels),
Code::STM_T1 => StmT1::encode_block(instr, buf, labels),
Code::LDRT_T1 => LdrtT1::encode_block(instr, buf, labels),
Code::SUB_SP_i_T1 => SubSpIT1::encode_block(instr, buf, labels),
Code::NOP_T2 => NopT2::encode_block(instr, buf, labels),
Code::UXTB16_T1 => Uxtb16T1::encode_block(instr, buf, labels),
Code::STRB_r_T2 => StrbRT2::encode_block(instr, buf, labels),
Code::HVC_T1 => HvcT1::encode_block(instr, buf, labels),
Code::SXTAH_T1 => SxtahT1::encode_block(instr, buf, labels),
Code::UXTAB_T1 => UxtabT1::encode_block(instr, buf, labels),
Code::MOV_rr_T1_LSL => MovRrT1Lsl::encode_block(instr, buf, labels),
Code::MRS_br_T1_AS => MrsBrT1As::encode_block(instr, buf, labels),
Code::SUBS_SP_r_T1 => SubsSpRT1::encode_block(instr, buf, labels),
Code::LDM_T1 => LdmT1::encode_block(instr, buf, labels),
Code::ADD_SP_r_T3_RRX => AddSpRT3Rrx::encode_block(instr, buf, labels),
Code::SMUSD_T1 => SmusdT1::encode_block(instr, buf, labels),
Code::SBC_r_T2_RRX => SbcRT2Rrx::encode_block(instr, buf, labels),
Code::USAD8_T1 => Usad8T1::encode_block(instr, buf, labels),
Code::ADDS_r_T3 => AddsRT3::encode_block(instr, buf, labels),
Code::QADD_T1 => QaddT1::encode_block(instr, buf, labels),
Code::MOV_i_T2 => MovIT2::encode_block(instr, buf, labels),
Code::STRT_T1 => StrtT1::encode_block(instr, buf, labels),
Code::EORS_i_T1 => EorsIT1::encode_block(instr, buf, labels),
Code::SVC_T1 => SvcT1::encode_block(instr, buf, labels),
Code::ORRS_r_T2 => OrrsRT2::encode_block(instr, buf, labels),
Code::SXTAB16_T1 => Sxtab16T1::encode_block(instr, buf, labels),
Code::MOV_i_T3 => MovIT3::encode_block(instr, buf, labels),
Code::CMN_r_T1 => CmnRT1::encode_block(instr, buf, labels),
Code::LDRSB_l_T1 => LdrsbLT1::encode_block(instr, buf, labels),
Code::ADR_T2 => AdrT2::encode_block(instr, buf, labels),
Code::SUB_SP_i_T3 => SubSpIT3::encode_block(instr, buf, labels),
Code::UMAAL_T1 => UmaalT1::encode_block(instr, buf, labels),
Code::ANDS_r_T2 => AndsRT2::encode_block(instr, buf, labels),
Code::UHASX_T1 => UhasxT1::encode_block(instr, buf, labels),
Code::LDRB_l_T1 => LdrbLT1::encode_block(instr, buf, labels),
Code::MVNS_r_T2 => MvnsRT2::encode_block(instr, buf, labels),
Code::LDM_T2 => LdmT2::encode_block(instr, buf, labels),
Code::BIC_r_T2 => BicRT2::encode_block(instr, buf, labels),
Code::ADDS_SP_r_T3 => AddsSpRT3::encode_block(instr, buf, labels),
Code::QSUB_T1 => QsubT1::encode_block(instr, buf, labels),
Code::SBFX_T1 => SbfxT1::encode_block(instr, buf, labels),
Code::STLEXB_T1 => StlexbT1::encode_block(instr, buf, labels),
Code::ADD_SP_r_T1 => AddSpRT1::encode_block(instr, buf, labels),
Code::ADDS_SP_i_T3 => AddsSpIT3::encode_block(instr, buf, labels),
Code::LDC_l_T1_off => LdcLT1Off::encode_block(instr, buf, labels),
Code::CRC32CH_T1 => Crc32chT1::encode_block(instr, buf, labels),
Code::SSAT_T1_ASR => SsatT1Asr::encode_block(instr, buf, labels),
Code::SBC_r_T1 => SbcRT1::encode_block(instr, buf, labels),
Code::MSR_br_T1_AS => MsrBrT1As::encode_block(instr, buf, labels),
Code::RFE_T2_AS => RfeT2As::encode_block(instr, buf, labels),
Code::LDRD_l_T1_off => LdrdLT1Off::encode_block(instr, buf, labels),
Code::MLS_T1 => MlsT1::encode_block(instr, buf, labels),
Code::ADD_SP_i_T2 => AddSpIT2::encode_block(instr, buf, labels),
Code::ADR_T3 => AdrT3::encode_block(instr, buf, labels),
Code::SMLALBT_T1 => SmlalbtT1::encode_block(instr, buf, labels),
Code::SMULBB_T1 => SmulbbT1::encode_block(instr, buf, labels),
Code::UMULL_T1 => UmullT1::encode_block(instr, buf, labels),
Code::UXTAH_T1 => UxtahT1::encode_block(instr, buf, labels),
Code::UQASX_T1 => UqasxT1::encode_block(instr, buf, labels),
Code::UBFX_T1 => UbfxT1::encode_block(instr, buf, labels),
Code::ANDS_r_T2_RRX => AndsRT2Rrx::encode_block(instr, buf, labels),
Code::BL_i_T2 => BlIT2::encode_block(instr, buf, labels),
Code::USAT_T1_ASR => UsatT1Asr::encode_block(instr, buf, labels),
Code::SMULTB_T1 => SmultbT1::encode_block(instr, buf, labels),
Code::SXTH_T2 => SxthT2::encode_block(instr, buf, labels),
Code::ADD_SP_r_T2 => AddSpRT2::encode_block(instr, buf, labels),
Code::WFI_T1 => WfiT1::encode_block(instr, buf, labels),
Code::CLREX_T1 => ClrexT1::encode_block(instr, buf, labels),
Code::SUB_r_T1 => SubRT1::encode_block(instr, buf, labels),
Code::ADD_SP_r_T3 => AddSpRT3::encode_block(instr, buf, labels),
Code::QDSUB_T1 => QdsubT1::encode_block(instr, buf, labels),
Code::LDRB_i_T3_off => LdrbIT3Off::encode_block(instr, buf, labels),
Code::SSAT16_T1 => Ssat16T1::encode_block(instr, buf, labels),
Code::LSR_MOV_rr_T2 => LsrMovRrT2::encode_block(instr, buf, labels),
Code::MOVS_rr_T2 => MovsRrT2::encode_block(instr, buf, labels),
Code::SUBS_r_T2_RRX => SubsRT2Rrx::encode_block(instr, buf, labels),
Code::ADD_r_T3 => AddRT3::encode_block(instr, buf, labels),
Code::SHASX_T1 => ShasxT1::encode_block(instr, buf, labels),
Code::STR_i_T3 => StrIT3::encode_block(instr, buf, labels),
Code::SMMLSR_T1 => SmmlsrT1::encode_block(instr, buf, labels),
Code::SMLAWB_T1 => SmlawbT1::encode_block(instr, buf, labels),
Code::SMLATB_T1 => SmlatbT1::encode_block(instr, buf, labels),
Code::SMULL_T1 => SmullT1::encode_block(instr, buf, labels),
Code::RORS_MOVS_rr_T2 => RorsMovsRrT2::encode_block(instr, buf, labels),
Code::LDRSH_i_T2_pre => LdrshIT2Pre::encode_block(instr, buf, labels),
Code::STRB_i_T3_offn => StrbIT3Offn::encode_block(instr, buf, labels),
Code::LDAEXB_T1 => LdaexbT1::encode_block(instr, buf, labels),
Code::LSLS_MOVS_r_T3 => LslsMovsRT3::encode_block(instr, buf, labels),
Code::LDR_i_T1 => LdrIT1::encode_block(instr, buf, labels),
Code::ADD_ADR_T1 => AddAdrT1::encode_block(instr, buf, labels),
Code::STRBT_T1 => StrbtT1::encode_block(instr, buf, labels),
Code::HLT_T1 => HltT1::encode_block(instr, buf, labels),
Code::SEV_T1 => SevT1::encode_block(instr, buf, labels),
Code::EOR_r_T2_RRX => EorRT2Rrx::encode_block(instr, buf, labels),
Code::MOVT_T1 => MovtT1::encode_block(instr, buf, labels),
Code::MRS_T1_AS => MrsT1As::encode_block(instr, buf, labels),
Code::CSDB_T1 => CsdbT1::encode_block(instr, buf, labels),
Code::ESB_T1 => EsbT1::encode_block(instr, buf, labels),
Code::CPSID_T1_AS => CpsidT1As::encode_block(instr, buf, labels),
Code::SMULWT_T1 => SmulwtT1::encode_block(instr, buf, labels),
Code::LDRSH_l_T1 => LdrshLT1::encode_block(instr, buf, labels),
Code::CMP_i_T2 => CmpIT2::encode_block(instr, buf, labels),
Code::UQADD16_T1 => Uqadd16T1::encode_block(instr, buf, labels),
Code::PKHBT_T1 => PkhbtT1::encode_block(instr, buf, labels),
Code::STLEXH_T1 => StlexhT1::encode_block(instr, buf, labels),
Code::SMLALDX_T1 => SmlaldxT1::encode_block(instr, buf, labels),
Code::USAT16_T1 => Usat16T1::encode_block(instr, buf, labels),
Code::SMLABB_T1 => SmlabbT1::encode_block(instr, buf, labels),
Code::SMLADX_T1 => SmladxT1::encode_block(instr, buf, labels),
Code::SBC_i_T1 => SbcIT1::encode_block(instr, buf, labels),
Code::STRB_i_T1 => StrbIT1::encode_block(instr, buf, labels),
Code::LDRD_l_T1_pre => LdrdLT1Pre::encode_block(instr, buf, labels),
Code::PLD_r_T1 => PldRT1::encode_block(instr, buf, labels),
Code::REV_T2 => RevT2::encode_block(instr, buf, labels),
Code::LSR_MOV_r_T3 => LsrMovRT3::encode_block(instr, buf, labels),
Code::SMLSDX_T1 => SmlsdxT1::encode_block(instr, buf, labels),
Code::STRH_r_T1 => StrhRT1::encode_block(instr, buf, labels),
Code::ADCS_r_T2_RRX => AdcsRT2Rrx::encode_block(instr, buf, labels),
Code::CMP_i_T1 => CmpIT1::encode_block(instr, buf, labels),
Code::ORN_r_T1_RRX => OrnRT1Rrx::encode_block(instr, buf, labels),
Code::LDC_i_T1_pre => LdcIT1Pre::encode_block(instr, buf, labels),
Code::SHADD16_T1 => Shadd16T1::encode_block(instr, buf, labels),
Code::REVSH_T1 => RevshT1::encode_block(instr, buf, labels),
Code::SADD8_T1 => Sadd8T1::encode_block(instr, buf, labels),
Code::SMLATT_T1 => SmlattT1::encode_block(instr, buf, labels),
Code::SBC_r_T2 => SbcRT2::encode_block(instr, buf, labels),
Code::CLZ_T1 => ClzT1::encode_block(instr, buf, labels),
Code::REV16_T2 => Rev16T2::encode_block(instr, buf, labels),
Code::SUB_r_T2_RRX => SubRT2Rrx::encode_block(instr, buf, labels),
Code::PSSBB_T1 => PssbbT1::encode_block(instr, buf, labels),
Code::SMUSDX_T1 => SmusdxT1::encode_block(instr, buf, labels),
Code::SRS_T2_AS => SrsT2As::encode_block(instr, buf, labels),
Code::CRC32B_T1 => Crc32bT1::encode_block(instr, buf, labels),
Code::STR_r_T1 => StrRT1::encode_block(instr, buf, labels),
Code::LDRSB_i_T2_post => LdrsbIT2Post::encode_block(instr, buf, labels),
Code::BIC_r_T2_RRX => BicRT2Rrx::encode_block(instr, buf, labels),
Code::LSL_MOV_r_T3 => LslMovRT3::encode_block(instr, buf, labels),
Code::SMLSLDX_T1 => SmlsldxT1::encode_block(instr, buf, labels),
Code::LSRS_MOVS_rr_T2 => LsrsMovsRrT2::encode_block(instr, buf, labels),
Code::SETPAN_T1 => SetpanT1::encode_block(instr, buf, labels),
Code::ADDS_i_T3 => AddsIT3::encode_block(instr, buf, labels),
Code::ADR_T1 => AdrT1::encode_block(instr, buf, labels),
Code::CMN_i_T1 => CmnIT1::encode_block(instr, buf, labels),
Code::SXTB_T2 => SxtbT2::encode_block(instr, buf, labels),
Code::RORS_MOVS_r_T3 => RorsMovsRT3::encode_block(instr, buf, labels),
Code::ADD_i_T3 => AddIT3::encode_block(instr, buf, labels),
Code::MOV_r_T3_RRX => MovRT3Rrx::encode_block(instr, buf, labels),
Code::B_T2 => BT2::encode_block(instr, buf, labels),
Code::SUB_i_T1 => SubIT1::encode_block(instr, buf, labels),
Code::RFE_T1_AS => RfeT1As::encode_block(instr, buf, labels),
Code::UHADD16_T1 => Uhadd16T1::encode_block(instr, buf, labels),
Code::STRB_i_T3_pre => StrbIT3Pre::encode_block(instr, buf, labels),
Code::CMP_r_T1 => CmpRT1::encode_block(instr, buf, labels),
Code::MOVS_r_T3 => MovsRT3::encode_block(instr, buf, labels),
Code::ERET_T1 => EretT1::encode_block(instr, buf, labels),
Code::STREXD_T1 => StrexdT1::encode_block(instr, buf, labels),
Code::MOV_r_T1 => MovRT1::encode_block(instr, buf, labels),
Code::USADA8_T1 => Usada8T1::encode_block(instr, buf, labels),
Code::MVNS_i_T1 => MvnsIT1::encode_block(instr, buf, labels),
Code::SMLSLD_T1 => SmlsldT1::encode_block(instr, buf, labels),
Code::CRC32CW_T1 => Crc32cwT1::encode_block(instr, buf, labels),
Code::ADC_r_T2 => AdcRT2::encode_block(instr, buf, labels),
Code::DBG_T1 => DbgT1::encode_block(instr, buf, labels),
Code::SBCS_i_T1 => SbcsIT1::encode_block(instr, buf, labels),
Code::LDRB_i_T2 => LdrbIT2::encode_block(instr, buf, labels),
Code::TEQ_r_T1_RRX => TeqRT1Rrx::encode_block(instr, buf, labels),
Code::RBIT_T1 => RbitT1::encode_block(instr, buf, labels),
Code::LDAH_T1 => LdahT1::encode_block(instr, buf, labels),
Code::LDRD_i_T1_pre => LdrdIT1Pre::encode_block(instr, buf, labels),
Code::CRC32W_T1 => Crc32wT1::encode_block(instr, buf, labels),
Code::PLD_l_T1 => PldLT1::encode_block(instr, buf, labels),
Code::PLD_i_T2 => PldIT2::encode_block(instr, buf, labels),
Code::LDRD_i_T1_off => LdrdIT1Off::encode_block(instr, buf, labels),
Code::ADC_r_T2_RRX => AdcRT2Rrx::encode_block(instr, buf, labels),
Code::RORS_MOV_rr_T1_ROR => RorsMovRrT1Ror::encode_block(instr, buf, labels),
Code::SUB_SP_r_T1_RRX => SubSpRT1Rrx::encode_block(instr, buf, labels),
Code::RSBS_r_T1 => RsbsRT1::encode_block(instr, buf, labels),
Code::MVN_r_T2_RRX => MvnRT2Rrx::encode_block(instr, buf, labels),
Code::PUSH_STMDB_T1 => PushStmdbT1::encode_block(instr, buf, labels),
Code::LDR_i_T4_post => LdrIT4Post::encode_block(instr, buf, labels),
Code::LSL_MOV_rr_T1_LSL => LslMovRrT1Lsl::encode_block(instr, buf, labels),
Code::SUB_r_T2 => SubRT2::encode_block(instr, buf, labels),
Code::LDR_l_T2 => LdrLT2::encode_block(instr, buf, labels),
Code::MVN_r_T1 => MvnRT1::encode_block(instr, buf, labels),
Code::SSUB16_T1 => Ssub16T1::encode_block(instr, buf, labels),
Code::ADDS_SP_r_T3_RRX => AddsSpRT3Rrx::encode_block(instr, buf, labels),
Code::LDRSH_i_T1 => LdrshIT1::encode_block(instr, buf, labels),
Code::CRC32H_T1 => Crc32hT1::encode_block(instr, buf, labels),
Code::LDRSH_r_T1 => LdrshRT1::encode_block(instr, buf, labels),
Code::SUBS_SP_r_T1_RRX => SubsSpRT1Rrx::encode_block(instr, buf, labels),
Code::LDAEXD_T1 => LdaexdT1::encode_block(instr, buf, labels),
Code::LDREXB_T1 => LdrexbT1::encode_block(instr, buf, labels),
Code::TST_r_T1 => TstRT1::encode_block(instr, buf, labels),
Code::LDRSB_i_T2_off => LdrsbIT2Off::encode_block(instr, buf, labels),
Code::CPSIE_T2_AS => CpsieT2As::encode_block(instr, buf, labels),
Code::ROR_MOV_r_T3 => RorMovRT3::encode_block(instr, buf, labels),
Code::SMMULR_T1 => SmmulrT1::encode_block(instr, buf, labels),
Code::LSLS_MOV_rr_T1_LSL => LslsMovRrT1Lsl::encode_block(instr, buf, labels),
Code::IT_T1 => ItT1::encode_block(instr, buf, labels),
Code::LDRH_i_T2 => LdrhIT2::encode_block(instr, buf, labels),
Code::SMUADX_T1 => SmuadxT1::encode_block(instr, buf, labels),
Code::POP_LDR_i_T4_post => PopLdrIT4Post::encode_block(instr, buf, labels),
Code::ADCS_i_T1 => AdcsIT1::encode_block(instr, buf, labels),
Code::SUB_SP_i_T2 => SubSpIT2::encode_block(instr, buf, labels),
Code::STRB_i_T2 => StrbIT2::encode_block(instr, buf, labels),
Code::UDIV_T1 => UdivT1::encode_block(instr, buf, labels),
Code::BKPT_T1 => BkptT1::encode_block(instr, buf, labels),
Code::LDRH_i_T3_off => LdrhIT3Off::encode_block(instr, buf, labels),
Code::PLDW_r_T1 => PldwRT1::encode_block(instr, buf, labels),
Code::LDRSH_i_T2_off => LdrshIT2Off::encode_block(instr, buf, labels),
Code::SUB_SP_r_T1 => SubSpRT1::encode_block(instr, buf, labels),
Code::STRH_i_T3_pre => StrhIT3Pre::encode_block(instr, buf, labels),
Code::PLI_i_T1 => PliIT1::encode_block(instr, buf, labels),
Code::USUB8_T1 => Usub8T1::encode_block(instr, buf, labels),
Code::UXTB_T1 => UxtbT1::encode_block(instr, buf, labels),
Code::STRD_i_T1_pre => StrdIT1Pre::encode_block(instr, buf, labels),
Code::QDADD_T1 => QdaddT1::encode_block(instr, buf, labels),
Code::SUBS_i_T3 => SubsIT3::encode_block(instr, buf, labels),
Code::ORR_r_T2 => OrrRT2::encode_block(instr, buf, labels),
Code::ADD_SP_i_T3 => AddSpIT3::encode_block(instr, buf, labels),
Code::CMP_r_T3 => CmpRT3::encode_block(instr, buf, labels),
Code::EOR_r_T2 => EorRT2::encode_block(instr, buf, labels),
Code::LDC_l_T1_post => LdcLT1Post::encode_block(instr, buf, labels),
Code::DCPS3_T1 => Dcps3T1::encode_block(instr, buf, labels),
Code::ASRS_MOVS_rr_T2 => AsrsMovsRrT2::encode_block(instr, buf, labels),
Code::CMN_r_T2 => CmnRT2::encode_block(instr, buf, labels),
Code::USUB16_T1 => Usub16T1::encode_block(instr, buf, labels),
Code::LDRH_l_T1 => LdrhLT1::encode_block(instr, buf, labels),
Code::UASX_T1 => UasxT1::encode_block(instr, buf, labels),
Code::EORS_r_T2 => EorsRT2::encode_block(instr, buf, labels),
Code::RSB_i_T2 => RsbIT2::encode_block(instr, buf, labels),
Code::SMULWB_T1 => SmulwbT1::encode_block(instr, buf, labels),
Code::ASR_MOV_r_T2 => AsrMovRT2::encode_block(instr, buf, labels),
Code::LDRB_r_T2 => LdrbRT2::encode_block(instr, buf, labels),
Code::CLRBHB_T1 => ClrbhbT1::encode_block(instr, buf, labels),
Code::STLH_T1 => StlhT1::encode_block(instr, buf, labels),
Code::SSUB8_T1 => Ssub8T1::encode_block(instr, buf, labels),
Code::LDREXD_T1 => LdrexdT1::encode_block(instr, buf, labels),
Code::SMLAD_T1 => SmladT1::encode_block(instr, buf, labels),
Code::STRH_r_T2 => StrhRT2::encode_block(instr, buf, labels),
Code::RSBS_r_T1_RRX => RsbsRT1Rrx::encode_block(instr, buf, labels),
Code::ROR_MOV_rr_T1_ROR => RorMovRrT1Ror::encode_block(instr, buf, labels),
Code::UHSAX_T1 => UhsaxT1::encode_block(instr, buf, labels),
Code::WFI_T2 => WfiT2::encode_block(instr, buf, labels),
Code::STR_i_T2 => StrIT2::encode_block(instr, buf, labels),
Code::MOV_rr_T1_LSR => MovRrT1Lsr::encode_block(instr, buf, labels),
Code::UDF_T2 => UdfT2::encode_block(instr, buf, labels),
Code::ADD_i_T4 => AddIT4::encode_block(instr, buf, labels),
Code::ORNS_r_T1 => OrnsRT1::encode_block(instr, buf, labels),
Code::EOR_i_T1 => EorIT1::encode_block(instr, buf, labels),
Code::STR_i_T1 => StrIT1::encode_block(instr, buf, labels),
Code::STM_T2 => StmT2::encode_block(instr, buf, labels),
Code::LSR_MOV_rr_T1_LSR => LsrMovRrT1Lsr::encode_block(instr, buf, labels),
Code::SUBS_r_T2 => SubsRT2::encode_block(instr, buf, labels),
Code::MVN_r_T2 => MvnRT2::encode_block(instr, buf, labels),
Code::SMULBT_T1 => SmulbtT1::encode_block(instr, buf, labels),
Code::SXTB16_T1 => Sxtb16T1::encode_block(instr, buf, labels),
Code::SMLALTB_T1 => SmlaltbT1::encode_block(instr, buf, labels),
Code::PUSH_T1 => PushT1::encode_block(instr, buf, labels),
Code::STRB_i_T3_post => StrbIT3Post::encode_block(instr, buf, labels),
Code::LDRSB_r_T2 => LdrsbRT2::encode_block(instr, buf, labels),
Code::MVN_i_T1 => MvnIT1::encode_block(instr, buf, labels),
Code::SMLABT_T1 => SmlabtT1::encode_block(instr, buf, labels),
Code::CPSID_T2_ASM => CpsidT2Asm::encode_block(instr, buf, labels),
Code::CMN_r_T2_RRX => CmnRT2Rrx::encode_block(instr, buf, labels),
Code::REV_T1 => RevT1::encode_block(instr, buf, labels),
Code::ISB_T1 => IsbT1::encode_block(instr, buf, labels),
Code::RSB_i_T1 => RsbIT1::encode_block(instr, buf, labels),
Code::LSRS_MOVS_r_T3 => LsrsMovsRT3::encode_block(instr, buf, labels),
Code::LDRSH_r_T2 => LdrshRT2::encode_block(instr, buf, labels),
Code::LDRD_l_T1_post => LdrdLT1Post::encode_block(instr, buf, labels),
Code::SXTAB_T1 => SxtabT1::encode_block(instr, buf, labels),
Code::PLDW_i_T1 => PldwIT1::encode_block(instr, buf, labels),
Code::STRHT_T1 => StrhtT1::encode_block(instr, buf, labels),
Code::SXTB_T1 => SxtbT1::encode_block(instr, buf, labels),
Code::EORS_r_T2_RRX => EorsRT2Rrx::encode_block(instr, buf, labels),
Code::CPS_T2_AS => CpsT2As::encode_block(instr, buf, labels),
Code::ADC_i_T1 => AdcIT1::encode_block(instr, buf, labels),
Code::BFI_T1 => BfiT1::encode_block(instr, buf, labels),
Code::POP_LDM_T2 => PopLdmT2::encode_block(instr, buf, labels),
Code::UMLAL_T1 => UmlalT1::encode_block(instr, buf, labels),
Code::YIELD_T1 => YieldT1::encode_block(instr, buf, labels),
Code::MOV_rr_T1_ROR => MovRrT1Ror::encode_block(instr, buf, labels),
Code::SMLALD_T1 => SmlaldT1::encode_block(instr, buf, labels),
Code::PLDW_i_T2 => PldwIT2::encode_block(instr, buf, labels),
Code::LSL_MOV_r_T2 => LslMovRT2::encode_block(instr, buf, labels),
Code::ASRS_MOVS_r_T3 => AsrsMovsRT3::encode_block(instr, buf, labels),
Code::TBH_T1 => TbhT1::encode_block(instr, buf, labels),
Code::TSB_T1 => TsbT1::encode_block(instr, buf, labels),
Code::ORR_r_T2_RRX => OrrRT2Rrx::encode_block(instr, buf, labels),
Code::SHADD8_T1 => Shadd8T1::encode_block(instr, buf, labels),
Code::MOV_i_T1 => MovIT1::encode_block(instr, buf, labels),
Code::STRD_i_T1_off => StrdIT1Off::encode_block(instr, buf, labels),
Code::MOVS_i_T2 => MovsIT2::encode_block(instr, buf, labels),
Code::LDRSBT_T1 => LdrsbtT1::encode_block(instr, buf, labels),
Code::STREXB_T1 => StrexbT1::encode_block(instr, buf, labels),
Code::LDAEXH_T1 => LdaexhT1::encode_block(instr, buf, labels),
Code::UXTAB16_T1 => Uxtab16T1::encode_block(instr, buf, labels),
Code::DCPS1_T1 => Dcps1T1::encode_block(instr, buf, labels),
Code::ASRS_MOV_r_T2 => AsrsMovRT2::encode_block(instr, buf, labels),
Code::LSRS_MOV_rr_T1_LSR => LsrsMovRrT1Lsr::encode_block(instr, buf, labels),
Code::SBCS_r_T2_RRX => SbcsRT2Rrx::encode_block(instr, buf, labels),
Code::STREX_T1 => StrexT1::encode_block(instr, buf, labels),
Code::MVNS_r_T2_RRX => MvnsRT2Rrx::encode_block(instr, buf, labels),
Code::PKHTB_T1 => PkhtbT1::encode_block(instr, buf, labels),
Code::UQSAX_T1 => UqsaxT1::encode_block(instr, buf, labels),
Code::ORRS_r_T2_RRX => OrrsRT2Rrx::encode_block(instr, buf, labels),
Code::ADD_r_T1 => AddRT1::encode_block(instr, buf, labels),
Code::TEQ_i_T1 => TeqIT1::encode_block(instr, buf, labels),
Code::ADD_i_T1 => AddIT1::encode_block(instr, buf, labels),
Code::CBNZ_T1 => CbnzT1::encode_block(instr, buf, labels),
Code::LDRHT_T1 => LdrhtT1::encode_block(instr, buf, labels),
Code::STR_r_T2 => StrRT2::encode_block(instr, buf, labels),
Code::LDRB_i_T3_pre => LdrbIT3Pre::encode_block(instr, buf, labels),
Code::B_T1 => BT1::encode_block(instr, buf, labels),
Code::B_T4 => BT4::encode_block(instr, buf, labels),
Code::LDRB_i_T3_post => LdrbIT3Post::encode_block(instr, buf, labels),
Code::TBB_T1 => TbbT1::encode_block(instr, buf, labels),
Code::ROR_MOV_rr_T2 => RorMovRrT2::encode_block(instr, buf, labels),
Code::QASX_T1 => QasxT1::encode_block(instr, buf, labels),
Code::USAX_T1 => UsaxT1::encode_block(instr, buf, labels),
Code::LDRSB_i_T1 => LdrsbIT1::encode_block(instr, buf, labels),
Code::LDRH_i_T1 => LdrhIT1::encode_block(instr, buf, labels),
Code::LDRSB_i_T2_pre => LdrsbIT2Pre::encode_block(instr, buf, labels),
Code::SMC_T1_AS => SmcT1As::encode_block(instr, buf, labels),
Code::MOV_r_T3 => MovRT3::encode_block(instr, buf, labels),
Code::BICS_i_T1 => BicsIT1::encode_block(instr, buf, labels),
Code::EOR_r_T1 => EorRT1::encode_block(instr, buf, labels),
Code::UADD8_T1 => Uadd8T1::encode_block(instr, buf, labels),
Code::B_T3 => BT3::encode_block(instr, buf, labels),
Code::SMLALTT_T1 => SmlalttT1::encode_block(instr, buf, labels),
Code::BIC_r_T1 => BicRT1::encode_block(instr, buf, labels),
Code::SMMLS_T1 => SmmlsT1::encode_block(instr, buf, labels),
Code::RSB_r_T1 => RsbRT1::encode_block(instr, buf, labels),
Code::UQSUB8_T1 => Uqsub8T1::encode_block(instr, buf, labels),
Code::RSB_r_T1_RRX => RsbRT1Rrx::encode_block(instr, buf, labels),
Code::SASX_T1 => SasxT1::encode_block(instr, buf, labels),
Code::MCR_T1 => McrT1::encode_block(instr, buf, labels),
Code::CMP_r_T3_RRX => CmpRT3Rrx::encode_block(instr, buf, labels),
Code::LDMDB_T1 => LdmdbT1::encode_block(instr, buf, labels),
Code::LDC_l_T1_pre => LdcLT1Pre::encode_block(instr, buf, labels),
Code::SETEND_T1 => SetendT1::encode_block(instr, buf, labels),
Code::STRH_i_T3_post => StrhIT3Post::encode_block(instr, buf, labels),
Code::ASR_MOV_r_T3 => AsrMovRT3::encode_block(instr, buf, labels),
Code::SUB_i_T3 => SubIT3::encode_block(instr, buf, labels),
Code::SEVL_T1 => SevlT1::encode_block(instr, buf, labels),
Code::REVSH_T2 => RevshT2::encode_block(instr, buf, labels),
Code::PLI_r_T1 => PliRT1::encode_block(instr, buf, labels),
Code::MRC_T1 => MrcT1::encode_block(instr, buf, labels),
Code::ORR_i_T1 => OrrIT1::encode_block(instr, buf, labels),
Code::UADD16_T1 => Uadd16T1::encode_block(instr, buf, labels),
Code::STRH_i_T2 => StrhIT2::encode_block(instr, buf, labels),
Code::LDRSH_i_T2_post => LdrshIT2Post::encode_block(instr, buf, labels),
Code::SUBS_SP_i_T2 => SubsSpIT2::encode_block(instr, buf, labels),
Code::SSAX_T1 => SsaxT1::encode_block(instr, buf, labels),
Code::STC_T1_pre => StcT1Pre::encode_block(instr, buf, labels),
Code::LDAEX_T1 => LdaexT1::encode_block(instr, buf, labels),
Code::MOV_rr_T2 => MovRrT2::encode_block(instr, buf, labels),
Code::STRH_i_T3_offn => StrhIT3Offn::encode_block(instr, buf, labels),
Code::SADD16_T1 => Sadd16T1::encode_block(instr, buf, labels),
Code::SMUAD_T1 => SmuadT1::encode_block(instr, buf, labels),
Code::LDREXH_T1 => LdrexhT1::encode_block(instr, buf, labels),
Code::ADD_SP_i_T1 => AddSpIT1::encode_block(instr, buf, labels),
Code::LDR_i_T4_off => LdrIT4Off::encode_block(instr, buf, labels),
Code::ASR_MOV_rr_T2 => AsrMovRrT2::encode_block(instr, buf, labels),
Code::ADD_r_T2 => AddRT2::encode_block(instr, buf, labels),
Code::ADCS_r_T2 => AdcsRT2::encode_block(instr, buf, labels),
Code::ORNS_r_T1_RRX => OrnsRT1Rrx::encode_block(instr, buf, labels),
Code::CPSIE_T2_ASM => CpsieT2Asm::encode_block(instr, buf, labels),
Code::STRD_i_T1_post => StrdIT1Post::encode_block(instr, buf, labels),
Code::UXTH_T1 => UxthT1::encode_block(instr, buf, labels),
Code::SEL_T1 => SelT1::encode_block(instr, buf, labels),
Code::SBCS_r_T2 => SbcsRT2::encode_block(instr, buf, labels),
Code::LDRB_i_T1 => LdrbIT1::encode_block(instr, buf, labels),
Code::LDA_T1 => LdaT1::encode_block(instr, buf, labels),
Code::LSR_MOV_r_T2 => LsrMovRT2::encode_block(instr, buf, labels),
Code::LDC_i_T1_post => LdcIT1Post::encode_block(instr, buf, labels),
Code::UQADD8_T1 => Uqadd8T1::encode_block(instr, buf, labels),
Code::LDC_i_T1_off => LdcIT1Off::encode_block(instr, buf, labels),
Code::SSBB_T1 => SsbbT1::encode_block(instr, buf, labels),
Code::MUL_T2 => MulT2::encode_block(instr, buf, labels),
Code::STMDB_T1 => StmdbT1::encode_block(instr, buf, labels),
Code::BICS_r_T2_RRX => BicsRT2Rrx::encode_block(instr, buf, labels),
Code::SUB_ADR_T2 => SubAdrT2::encode_block(instr, buf, labels),
Code::WFE_T1 => WfeT1::encode_block(instr, buf, labels),
Code::MOVS_r_T3_RRX => MovsRT3Rrx::encode_block(instr, buf, labels),
Code::LDR_i_T4_pre => LdrIT4Pre::encode_block(instr, buf, labels),
Code::LDC_i_T1_unind => LdcIT1Unind::encode_block(instr, buf, labels),
Code::UHSUB16_T1 => Uhsub16T1::encode_block(instr, buf, labels),
Code::STLEX_T1 => StlexT1::encode_block(instr, buf, labels),
Code::STR_i_T4_post => StrIT4Post::encode_block(instr, buf, labels),
Code::BXJ_T1 => BxjT1::encode_block(instr, buf, labels),
Code::TST_r_T2_RRX => TstRT2Rrx::encode_block(instr, buf, labels),
Code::CBZ_T1 => CbzT1::encode_block(instr, buf, labels),
Code::AND_i_T1 => AndIT1::encode_block(instr, buf, labels),
Code::SSAT_T1_LSL => SsatT1Lsl::encode_block(instr, buf, labels),
Code::LDR_r_T2 => LdrRT2::encode_block(instr, buf, labels),
Code::AND_r_T2 => AndRT2::encode_block(instr, buf, labels),
Code::ORR_r_T1 => OrrRT1::encode_block(instr, buf, labels),
Code::SDIV_T1 => SdivT1::encode_block(instr, buf, labels),
Code::LDR_i_T2 => LdrIT2::encode_block(instr, buf, labels),
Code::UXTB_T2 => UxtbT2::encode_block(instr, buf, labels),
Code::LDRBT_T1 => LdrbtT1::encode_block(instr, buf, labels),
Code::SHSAX_T1 => ShsaxT1::encode_block(instr, buf, labels),
Code::ASRS_MOV_rr_T1_ASR => AsrsMovRrT1Asr::encode_block(instr, buf, labels),
Code::ADD_SP_i_T4 => AddSpIT4::encode_block(instr, buf, labels),
Code::UQSUB16_T1 => Uqsub16T1::encode_block(instr, buf, labels),
Code::NOP_T1 => NopT1::encode_block(instr, buf, labels),
Code::SMMUL_T1 => SmmulT1::encode_block(instr, buf, labels),
Code::AND_r_T2_RRX => AndRT2Rrx::encode_block(instr, buf, labels),
Code::PUSH_STR_i_T4_pre => PushStrIT4Pre::encode_block(instr, buf, labels),
Code::POP_T1 => PopT1::encode_block(instr, buf, labels),
Code::LSL_MOV_rr_T2 => LslMovRrT2::encode_block(instr, buf, labels),
Code::SHSUB16_T1 => Shsub16T1::encode_block(instr, buf, labels),
Code::PLD_i_T1 => PldIT1::encode_block(instr, buf, labels),
Code::SEV_T2 => SevT2::encode_block(instr, buf, labels),
Code::ANDS_i_T1 => AndsIT1::encode_block(instr, buf, labels),
Code::TEQ_r_T1 => TeqRT1::encode_block(instr, buf, labels),
Code::STREXH_T1 => StrexhT1::encode_block(instr, buf, labels),
Code::ADDS_r_T3_RRX => AddsRT3Rrx::encode_block(instr, buf, labels),
Code::PLI_i_T2 => PliIT2::encode_block(instr, buf, labels),
Code::SMLALBB_T1 => SmlalbbT1::encode_block(instr, buf, labels),
Code::ORRS_i_T1 => OrrsIT1::encode_block(instr, buf, labels),
Code::ORN_i_T1 => OrnIT1::encode_block(instr, buf, labels),
Code::QSUB8_T1 => Qsub8T1::encode_block(instr, buf, labels),
Code::UHSUB8_T1 => Uhsub8T1::encode_block(instr, buf, labels),
Code::QSUB16_T1 => Qsub16T1::encode_block(instr, buf, labels),
Code::SUB_i_T2 => SubIT2::encode_block(instr, buf, labels),
Code::STR_i_T4_pre => StrIT4Pre::encode_block(instr, buf, labels),
Code::LDRH_i_T3_post => LdrhIT3Post::encode_block(instr, buf, labels),
Code::MRRC_T1 => MrrcT1::encode_block(instr, buf, labels),
Code::MLA_T1 => MlaT1::encode_block(instr, buf, labels),
Code::STLB_T1 => StlbT1::encode_block(instr, buf, labels),
Code::LDRH_r_T1 => LdrhRT1::encode_block(instr, buf, labels),
Code::LDRH_i_T3_pre => LdrhIT3Pre::encode_block(instr, buf, labels),
Code::SXTH_T1 => SxthT1::encode_block(instr, buf, labels),
Code::BL_i_T1 => BlIT1::encode_block(instr, buf, labels),
Code::LDRD_i_T1_post => LdrdIT1Post::encode_block(instr, buf, labels),
Code::SMLAL_T1 => SmlalT1::encode_block(instr, buf, labels),
Code::DCPS2_T1 => Dcps2T1::encode_block(instr, buf, labels),
Code::MCRR_T1 => McrrT1::encode_block(instr, buf, labels),
Code::LSLS_MOV_r_T2 => LslsMovRT2::encode_block(instr, buf, labels),
Code::STL_T1 => StlT1::encode_block(instr, buf, labels),
Code::STRH_i_T1 => StrhIT1::encode_block(instr, buf, labels),
Code::SUB_i_T4 => SubIT4::encode_block(instr, buf, labels),
Code::LDR_i_T3 => LdrIT3::encode_block(instr, buf, labels),
Code::YIELD_T2 => YieldT2::encode_block(instr, buf, labels),
Code::RRX_MOV_r_T3_RRX => RrxMovRT3Rrx::encode_block(instr, buf, labels),
Code::DMB_T1 => DmbT1::encode_block(instr, buf, labels),
Code::SRS_T1_AS => SrsT1As::encode_block(instr, buf, labels),
Code::CRC32CB_T1 => Crc32cbT1::encode_block(instr, buf, labels),
Code::LDRSB_r_T1 => LdrsbRT1::encode_block(instr, buf, labels),
Code::WFE_T2 => WfeT2::encode_block(instr, buf, labels),
Code::QSAX_T1 => QsaxT1::encode_block(instr, buf, labels),
Code::USAT_T1_LSL => UsatT1Lsl::encode_block(instr, buf, labels),
Code::BIC_i_T1 => BicIT1::encode_block(instr, buf, labels),
}
}