// Warning! autogenerated file, do what you want.
#include <cstdint>

#include "arm/ARMDisassembler.h"
#include "arm/ARMArch.h"

typedef enum ARMInstructionId {
    adc_immediate,
    adc_register,
    adc_register_shifted_register,
    add_immediate_arm,
    add_immediate_thumb,
    add_register_arm,
    add_register_shifted_register,
    add_register_thumb,
    add_sp_plus_immediate,
    add_sp_plus_register_arm,
    add_sp_plus_register_thumb,
    adr,
    and_immediate,
    and_register,
    and_register_shifted_register,
    asr_immediate,
    asr_register,
    b,
    bfc,
    bfi,
    bic_immediate,
    bic_register,
    bic_register_shifted_register,
    bkpt,
    bl_blx_immediate,
    blx_register,
    bx,
    bxj,
    cbnz_cbz,
    cdp_cdp2,
    clrex,
    clz,
    cmn_immediate,
    cmn_register,
    cmn_register_shifted_register,
    cmp_immediate,
    cmp_register,
    cmp_register_shifted_register,
    cps_arm,
    cps_thumb,
    dbg,
    dmb,
    dsb,
    eor_immediate,
    eor_register,
    eor_register_shifted_register,
    eret,
    hvc,
    isb,
    it,
    ldc_ldc2_immediate,
    ldc_ldc2_literal,
    ldm_exception_return,
    ldm_ldmia_ldmfd_arm,
    ldm_ldmia_ldmfd_thumb,
    ldm_user_registers,
    ldmda_ldmfa,
    ldmdb_ldmea,
    ldmib_ldmed,
    ldr_immediate_arm,
    ldr_immediate_thumb,
    ldr_literal,
    ldr_register_arm,
    ldr_register_thumb,
    ldrb_immediate_arm,
    ldrb_immediate_thumb,
    ldrb_literal,
    ldrb_register,
    ldrbt,
    ldrd_immediate,
    ldrd_literal,
    ldrd_register,
    ldrex,
    ldrexb,
    ldrexd,
    ldrexh,
    ldrh_immediate_arm,
    ldrh_immediate_thumb,
    ldrh_literal,
    ldrh_register,
    ldrht,
    ldrsb_immediate,
    ldrsb_literal,
    ldrsb_register,
    ldrsbt,
    ldrsh_immediate,
    ldrsh_literal,
    ldrsh_register,
    ldrsht,
    ldrt,
    lsl_immediate,
    lsl_register,
    lsr_immediate,
    lsr_register,
    mcr_mcr2,
    mcrr_mcrr2,
    mla,
    mls,
    mov_immediate,
    mov_register_arm,
    mov_register_thumb,
    movt,
    mrc_mrc2,
    mrrc_mrrc2,
    mrs,
    mrs_banked_register,
    msr_immediate,
    msr_register,
    mul,
    mvn_immediate,
    mvn_register,
    mvn_register_shifted_register,
    nop,
    orn_immediate,
    orn_register,
    orr_immediate,
    orr_register,
    orr_register_shifted_register,
    pkh,
    pld_literal,
    pld_pldw_immediate,
    pld_pldw_register,
    pli_immediate_literal,
    pli_register,
    pop_arm,
    pop_thumb,
    push,
    qadd,
    qadd16,
    qadd8,
    qasx,
    qdadd,
    qdsub,
    qsax,
    qsub,
    qsub16,
    qsub8,
    rbit,
    rev,
    rev16,
    revsh,
    rfe,
    ror_immediate,
    ror_register,
    rrx,
    rsb_immediate,
    rsb_register,
    rsb_register_shifted_register,
    rsc_immediate,
    rsc_register,
    rsc_register_shifted_register,
    sadd16,
    sadd8,
    sasx,
    sbc_immediate,
    sbc_register,
    sbc_register_shifted_register,
    sbfx,
    sdiv,
    sel,
    setend,
    sev,
    shadd16,
    shadd8,
    shasx,
    shsax,
    shsub16,
    shsub8,
    smc_previously_smi,
    smlabb_smlabt_smlatb_smlatt,
    smlad,
    smlal,
    smlalbb_smlalbt_smlaltb_smlaltt,
    smlald,
    smlawb_smlawt,
    smlsd,
    smlsld,
    smmla,
    smmls,
    smmul,
    smuad,
    smulbb_smulbt_smultb_smultt,
    smull,
    smulwb_smulwt,
    smusd,
    srs_arm,
    srs_thumb,
    ssat,
    ssat16,
    ssax,
    ssub16,
    ssub8,
    stc_stc2,
    stm_stmia_stmea,
    stm_user_registers,
    stmda_stmed,
    stmdb_stmfd,
    stmib_stmfa,
    str_immediate_arm,
    str_immediate_thumb,
    str_register,
    strb_immediate_arm,
    strb_immediate_thumb,
    strb_register,
    strbt,
    strd_immediate,
    strd_register,
    strex,
    strexb,
    strexd,
    strexh,
    strh_immediate_arm,
    strh_immediate_thumb,
    strh_register,
    strht,
    strt,
    sub_immediate_arm,
    sub_immediate_thumb,
    sub_register,
    sub_register_shifted_register,
    sub_sp_minus_immediate,
    sub_sp_minus_register,
    subs_pc_lr_and_related_instructions_arm,
    subs_pc_lr_thumb,
    svc,
    swp_swpb,
    sxtab,
    sxtab16,
    sxtah,
    sxtb,
    sxtb16,
    sxth,
    tbb,
    tbh,
    teq_immediate,
    teq_register,
    teq_register_shifted_register,
    tst_immediate,
    tst_register,
    tst_register_shifted_register,
    uadd16,
    uadd8,
    uasx,
    ubfx,
    udf,
    udiv,
    uhadd16,
    uhadd8,
    uhasx,
    uhsax,
    uhsub16,
    uhsub8,
    umaal,
    umlal,
    umull,
    uqadd16,
    uqadd8,
    uqasx,
    uqsax,
    uqsub16,
    uqsub8,
    usad8,
    usada8,
    usat,
    usat16,
    usax,
    usub16,
    usub8,
    uxtab,
    uxtab16,
    uxtah,
    uxtb,
    uxtb16,
    uxth,
    vaba_vabal,
    vabd_floating_point,
    vabd_vabdl_integer,
    vabs,
    vacge_vacgt_vacle_vaclt,
    vadd_floating_point,
    vadd_integer,
    vaddhn,
    vaddl_vaddw,
    vand_register,
    vbic_immediate,
    vbic_register,
    vbif_vbit_vbsl,
    vceq_immediate_0,
    vceq_register,
    vcge_immediate_0,
    vcge_register,
    vcgt_immediate_0,
    vcgt_register,
    vcle_immediate_0,
    vcls,
    vclt_immediate_0,
    vclz,
    vcmp_vcmpe,
    vcnt,
    vcvt_between_double_precision_and_single_precision,
    vcvt_between_floating_point_and_fixed_point_advancedsimd,
    vcvt_between_floating_point_and_fixed_point_floating_point,
    vcvt_between_floating_point_and_integer_advancedsimd,
    vcvt_between_half_precision_and_single_precision_advancedsimd,
    vcvt_vcvtr_between_floating_point_and_integer_floating_point,
    vcvtb_vcvtt,
    vdiv,
    vdup_arm_core_register,
    vdup_scalar,
    veor,
    vext,
    vfma_vfms,
    vfnma_vfnms,
    vhadd_vhsub,
    vld1_multiple_single_elements,
    vld1_single_element_to_all_lanes,
    vld1_single_element_to_one_lane,
    vld2_multiple_2_element_structures,
    vld2_single_2_element_structure_to_all_lanes,
    vld2_single_2_element_structure_to_one_lane,
    vld3_multiple_3_element_structures,
    vld3_single_3_element_structure_to_all_lanes,
    vld3_single_3_element_structure_to_one_lane,
    vld4_multiple_4_element_structures,
    vld4_single_4_element_structure_to_all_lanes,
    vld4_single_4_element_structure_to_one_lane,
    vldm,
    vldr,
    vmax_vmin_floating_point,
    vmax_vmin_integer,
    vmla_vmlal_vmls_vmlsl_by_scalar,
    vmla_vmlal_vmls_vmlsl_integer,
    vmla_vmls_floating_point,
    vmov_arm_core_register_to_scalar,
    vmov_between_arm_core_register_and_single_precision_register,
    vmov_between_two_arm_core_registers_and_a_doubleword_extension_register,
    vmov_between_two_arm_core_registers_and_two_single_precision_registers,
    vmov_immediate,
    vmov_register,
    vmov_scalar_to_arm_core_register,
    vmovl,
    vmovn,
    vmrs,
    vmsr,
    vmul_floating_point,
    vmul_vmull_by_scalar,
    vmul_vmull_integer_and_polynomial,
    vmvn_immediate,
    vmvn_register,
    vneg,
    vnmla_vnmls_vnmul,
    vorn_register,
    vorr_immediate,
    vorr_register,
    vpadal,
    vpadd_floating_point,
    vpadd_integer,
    vpaddl,
    vpmax_vpmin_floating_point,
    vpmax_vpmin_integer,
    vpop,
    vpush,
    vqabs,
    vqadd,
    vqdmlal_vqdmlsl,
    vqdmulh,
    vqdmull,
    vqmovn_vqmovun,
    vqneg,
    vqrdmulh,
    vqrshl,
    vqrshrn_vqrshrun,
    vqshl_register,
    vqshl_vqshlu_immediate,
    vqshrn_vqshrun,
    vqsub,
    vraddhn,
    vrecpe,
    vrecps,
    vrev16_vrev32_vrev64,
    vrhadd,
    vrshl,
    vrshr,
    vrshrn,
    vrsqrte,
    vrsqrts,
    vrsra,
    vrsubhn,
    vshl_immediate,
    vshl_register,
    vshll,
    vshr,
    vshrn,
    vsli,
    vsqrt,
    vsra,
    vsri,
    vst1_multiple_single_elements,
    vst1_single_element_from_one_lane,
    vst2_multiple_2_element_structures,
    vst2_single_2_element_structure_from_one_lane,
    vst3_multiple_3_element_structures,
    vst3_single_3_element_structure_from_one_lane,
    vst4_multiple_4_element_structures,
    vst4_single_4_element_structure_from_one_lane,
    vstm,
    vstr,
    vsub_floating_point,
    vsub_integer,
    vsubhn,
    vsubl_vsubw,
    vswp,
    vtbl_vtbx,
    vtrn,
    vtst,
    vuzp,
    vzip,
    wfe,
    wfi,
    yield,
} ARMInstructionId;

class ARMDecoder;
typedef struct ARMOpcode {
        uint32_t mask;
        uint32_t value;
        uint32_t variants;
        Disassembler::ARMInstrSize ins_size;
        ARMEncoding encoding;
        Disassembler::ARMInstruction (ARMDecoder::*decoder)(uint32_t, Disassembler::ARMInstrSize ins_size, ARMEncoding);
        const char *name;
} ARMOpcode;

extern ARMOpcode arm_opcodes[];
extern ARMOpcode thumb_opcodes[];
extern const size_t n_arm_opcodes;
extern const size_t n_thumb_opcodes;

class ARMDecoder {
    public:
        ARMDecoder(ARMVariants variant) :
                m_hyp_mode(false), m_opcode_mode(ARMMode_Invalid), m_arm_isa(variant) {
            // Initialize the default FP state.
            FPSCR.LEN = 0;
            FPSCR.STRIDE = 0;
            // Initialize the default carry flag state.
        }

        Disassembler::ARMInstruction decode(uint32_t op_code, ARMMode mode) {
            m_opcode_mode = mode;
            return (mode == ARMMode_ARM) ? decode_arm(op_code) : decode_thumb(op_code);
        }

    private:
        bool IsZero(unsigned i) { return i == 0; };
        bool InITBlock();
        bool LastInITBlock();
        bool CurrentModeIsHyp();
        ARMMode CurrentInstrSet();
        ARMVariants ArchVersion();

        // Fields:
        bool m_hyp_mode;
        ITSession m_it_session;
        ARMMode m_opcode_mode;
        ARMVariants m_arm_isa;
        fpscr_t FPSCR;

        Disassembler::ARMInstruction decode_arm(uint32_t opcode);
        Disassembler::ARMInstruction decode_thumb(uint32_t opcode);

    public:
        Disassembler::ARMInstruction decode_adc_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adc_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adc_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adc_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adc_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adc_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_immediate_thumb_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_register_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_register_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_register_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_register_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_immediate_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_immediate_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_register_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_register_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_register_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_add_sp_plus_register_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adr_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adr_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_adr_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_and_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_asr_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_b_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_b_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_b_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_b_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bfc_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bfc_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bfi_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bfi_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bic_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bkpt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bkpt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bl_blx_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bl_blx_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bl_blx_immediate_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bl_blx_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_b_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_blx_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_blx_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bxj_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_bxj_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cps_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cps_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cps_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cbnz_cbz_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cdp_cdp2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cdp_cdp2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cdp_cdp2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cdp_cdp2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_clrex_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_clrex_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_clz_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_clz_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmn_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_register_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_cmp_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dbg_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dbg_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dmb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dmb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dsb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_dsb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eor_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_isb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_isb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_it_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rfe_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rfe_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rfe_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_immediate_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_literal_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_literal_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldc_ldc2_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldm_ldmia_ldmfd_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldm_ldmia_ldmfd_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldm_ldmia_ldmfd_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldmda_ldmfa_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldmdb_ldmea_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldmdb_ldmea_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldmib_ldmed_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_immediate_thumb_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_pldw_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_pldw_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_immediate_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_literal_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_register_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_register_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldr_register_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrb_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrbt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrbt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrbt_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrd_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrd_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrd_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrd_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrd_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrex_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrex_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrexh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrh_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrht_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrht_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrht_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsb_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsbt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsbt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsbt_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_literal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsh_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsht_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsht_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrsht_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldrt_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsl_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_lsr_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcr_mcr2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcr_mcr2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcr_mcr2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcr_mcr2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcrr_mcrr2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcrr_mcrr2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcrr_mcrr2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mcrr_mcrr2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mla_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mla_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mls_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mls_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_immediate_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_immediate_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_register_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_register_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_register_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mov_register_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_movt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_movt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrc_mrc2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrc_mrc2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrc_mrc2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrc_mrc2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrrc_mrrc2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrrc_mrrc2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrrc_mrrc2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrrc_mrrc2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrs_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrs_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_msr_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_msr_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_msr_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mul_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mul_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mul_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mvn_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_nop_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_nop_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_nop_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orn_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orn_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_orr_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pkh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pkh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_pldw_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_pldw_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pld_pldw_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_immediate_literal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_immediate_literal_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pli_immediate_literal_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pop_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pop_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pop_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pop_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_pop_arm_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_push_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_push_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_push_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_push_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_push_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qdadd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qdadd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qdsub_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qdsub_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_qsub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rbit_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rbit_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev16_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rev16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_revsh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_revsh_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_revsh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ror_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ror_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ror_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ror_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ror_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rrx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rrx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsb_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsc_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsc_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_rsc_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbc_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbfx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sbfx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sdiv_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sdiv_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sel_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sel_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_setend_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_setend_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sev_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sev_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sev_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_shsub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlabb_smlabt_smlatb_smlatt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlabb_smlabt_smlatb_smlatt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlad_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlad_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlalbb_smlalbt_smlaltb_smlaltt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlalbb_smlalbt_smlaltb_smlaltt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlald_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlald_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlawb_smlawt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlawb_smlawt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlsd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlsd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlsld_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smlsld_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmla_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmla_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmls_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmls_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmul_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smmul_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smuad_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smuad_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smulbb_smulbt_smultb_smultt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smulbb_smulbt_smultb_smultt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smull_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smull_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smulwb_smulwt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smulwb_smulwt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smusd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smusd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssat_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssat_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssat16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssat16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ssub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stc_stc2_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stc_stc2_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stc_stc2_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stc_stc2_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stm_stmia_stmea_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stm_stmia_stmea_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stm_stmia_stmea_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stmda_stmed_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stmdb_stmfd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stmdb_stmfd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stmib_stmfa_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_immediate_thumb_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_str_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strb_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strbt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strbt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strbt_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strd_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strd_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strd_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strex_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strex_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strexh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strh_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strht_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strht_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strht_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_strt_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_immediate_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_immediate_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_immediate_thumb_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_immediate_thumb_t4(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_immediate_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_immediate_t3(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sub_sp_minus_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_svc_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_svc_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_swp_swpb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtab_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtab_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtab16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtab16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtah_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtah_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtb16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxtb16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxth_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxth_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_sxth_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tbb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tbh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_teq_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_teq_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_teq_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_teq_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_teq_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_tst_register_shifted_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ubfx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ubfx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_udf_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_udf_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_udf_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_udiv_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_udiv_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uhsub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umaal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umaal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umlal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umlal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umull_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_umull_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqadd16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqadd16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqadd8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqadd8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqasx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqasx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uqsub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usad8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usad8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usada8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usada8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usat_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usat_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usat16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usat16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usax_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usax_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usub16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usub16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usub8_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_usub8_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtab_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtab_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtab16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtab16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtah_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtah_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtb_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtb16_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxtb16_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxth_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxth_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_uxth_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfe_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfe_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfe_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfi_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfi_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_wfi_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_yield_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_yield_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_yield_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eret_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_eret_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_hvc_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_hvc_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldm_exception_return_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_ldm_user_registers_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrs_banked_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_mrs_banked_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smc_previously_smi_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_smc_previously_smi_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_srs_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_srs_thumb_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_srs_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_stm_user_registers_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_subs_pc_lr_thumb_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_subs_pc_lr_and_related_instructions_arm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_subs_pc_lr_and_related_instructions_arm_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaba_vabal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaba_vabal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaba_vabal_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaba_vabal_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_vabdl_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_vabdl_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_vabdl_integer_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_vabdl_integer_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabd_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabs_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabs_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabs_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vabs_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vacge_vacgt_vacle_vaclt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vacge_vacgt_vacle_vaclt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_floating_point_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vadd_floating_point_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaddhn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaddhn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaddl_vaddw_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vaddl_vaddw_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vand_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vand_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbic_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbic_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbic_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbic_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbif_vbit_vbsl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vbif_vbit_vbsl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_register_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_immediate_0_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vceq_immediate_0_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_register_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_immediate_0_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcge_immediate_0_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_register_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_immediate_0_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcgt_immediate_0_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcle_immediate_0_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcle_immediate_0_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcls_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcls_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vclt_immediate_0_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vclt_immediate_0_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vclz_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vclz_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcmp_vcmpe_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcmp_vcmpe_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcmp_vcmpe_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcmp_vcmpe_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcnt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcnt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_integer_advancedsimd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_integer_advancedsimd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_vcvtr_between_floating_point_and_integer_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_vcvtr_between_floating_point_and_integer_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_fixed_point_advancedsimd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_fixed_point_advancedsimd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_fixed_point_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_floating_point_and_fixed_point_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_double_precision_and_single_precision_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_double_precision_and_single_precision_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_half_precision_and_single_precision_advancedsimd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvt_between_half_precision_and_single_precision_advancedsimd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvtb_vcvtt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vcvtb_vcvtt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdiv_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdiv_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdup_scalar_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdup_scalar_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdup_arm_core_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vdup_arm_core_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_veor_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_veor_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vext_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vext_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfma_vfms_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfma_vfms_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfma_vfms_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfma_vfms_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfnma_vfnms_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vfnma_vfnms_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vhadd_vhsub_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vhadd_vhsub_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_multiple_single_elements_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_multiple_single_elements_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_single_element_to_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_single_element_to_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_single_element_to_all_lanes_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld1_single_element_to_all_lanes_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_multiple_2_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_multiple_2_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_single_2_element_structure_to_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_single_2_element_structure_to_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_single_2_element_structure_to_all_lanes_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld2_single_2_element_structure_to_all_lanes_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_multiple_3_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_multiple_3_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_single_3_element_structure_to_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_single_3_element_structure_to_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_single_3_element_structure_to_all_lanes_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld3_single_3_element_structure_to_all_lanes_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_multiple_4_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_multiple_4_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_single_4_element_structure_to_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_single_4_element_structure_to_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_single_4_element_structure_to_all_lanes_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vld4_single_4_element_structure_to_all_lanes_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldm_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldm_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldm_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldr_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vldr_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmax_vmin_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmax_vmin_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmax_vmin_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmax_vmin_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_integer_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_integer_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmls_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmls_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmls_floating_point_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmls_floating_point_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_by_scalar_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_by_scalar_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_by_scalar_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmla_vmlal_vmls_vmlsl_by_scalar_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_immediate_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_immediate_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_register_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_register_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_arm_core_register_to_scalar_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_arm_core_register_to_scalar_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_scalar_to_arm_core_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_scalar_to_arm_core_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_arm_core_register_and_single_precision_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_arm_core_register_and_single_precision_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_two_arm_core_registers_and_two_single_precision_registers_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_two_arm_core_registers_and_two_single_precision_registers_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_two_arm_core_registers_and_a_doubleword_extension_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmov_between_two_arm_core_registers_and_a_doubleword_extension_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmovl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmovl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmovn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmovn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmrs_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmrs_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmsr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmsr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_integer_and_polynomial_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_integer_and_polynomial_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_integer_and_polynomial_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_integer_and_polynomial_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_floating_point_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_floating_point_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_by_scalar_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_by_scalar_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_by_scalar_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmul_vmull_by_scalar_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmvn_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmvn_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmvn_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vmvn_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vneg_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vneg_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vneg_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vneg_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vnmla_vnmls_vnmul_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vnmla_vnmls_vnmul_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vnmla_vnmls_vnmul_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vnmla_vnmls_vnmul_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorn_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorn_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorr_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorr_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorr_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vorr_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadal_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadal_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadd_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadd_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadd_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpadd_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpaddl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpaddl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpmax_vpmin_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpmax_vpmin_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpmax_vpmin_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpmax_vpmin_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpop_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpop_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpop_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpop_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpush_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpush_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpush_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vpush_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqabs_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqabs_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqadd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqadd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmlal_vqdmlsl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmlal_vqdmlsl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmlal_vqdmlsl_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmlal_vqdmlsl_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmulh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmulh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmulh_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmulh_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmull_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmull_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmull_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqdmull_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqmovn_vqmovun_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqmovn_vqmovun_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqneg_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqneg_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrdmulh_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrdmulh_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrdmulh_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrdmulh_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrshl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrshl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrshrn_vqrshrun_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqrshrn_vqrshrun_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshl_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshl_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshl_vqshlu_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshl_vqshlu_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshrn_vqshrun_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqshrn_vqshrun_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqsub_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vqsub_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vraddhn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vraddhn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrecpe_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrecpe_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrecps_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrecps_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrev16_vrev32_vrev64_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrev16_vrev32_vrev64_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrhadd_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrhadd_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshl_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshl_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshrn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrshrn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsqrte_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsqrte_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsqrts_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsqrts_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsra_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsra_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsubhn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vrsubhn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshl_immediate_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshl_immediate_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshl_register_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshl_register_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshll_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshll_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshll_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshll_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshrn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vshrn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsli_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsli_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsqrt_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsqrt_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsra_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsra_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsri_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsri_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst1_multiple_single_elements_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst1_multiple_single_elements_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst1_single_element_from_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst1_single_element_from_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst2_multiple_2_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst2_multiple_2_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst2_single_2_element_structure_from_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst2_single_2_element_structure_from_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst3_multiple_3_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst3_multiple_3_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst3_single_3_element_structure_from_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst3_single_3_element_structure_from_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst4_multiple_4_element_structures_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst4_multiple_4_element_structures_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst4_single_4_element_structure_from_one_lane_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vst4_single_4_element_structure_from_one_lane_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstm_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstm_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstm_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstm_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstr_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstr_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstr_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vstr_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_integer_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_integer_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_floating_point_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_floating_point_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_floating_point_t2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsub_floating_point_a2(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsubhn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsubhn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsubl_vsubw_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vsubl_vsubw_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vswp_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vswp_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtbl_vtbx_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtbl_vtbx_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtrn_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtrn_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtst_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vtst_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vuzp_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vuzp_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vzip_t1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_vzip_a1(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
        Disassembler::ARMInstruction decode_unknown(uint32_t opcode, Disassembler::ARMInstrSize ins_size, ARMEncoding encoding);
};
