/*
    Copyright 2016-2020 Arisotura

    This file is part of melonDS.

    melonDS is free software: you can redistribute it and/or modify it under
    the terms of the GNU General Public License as published by the Free
    Software Foundation, either version 3 of the License, or (at your option)
    any later version.

    melonDS is distributed in the hope that it will be useful, but WITHOUT ANY
    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with melonDS. If not, see http://www.gnu.org/licenses/.
*/

INSTRFUNC_PROTO(ARMInstrTable[4096]) =
{
    // 0000 0000 0000
    A_AND_REG_LSL_IMM, A_AND_REG_LSL_REG, A_AND_REG_LSR_IMM, A_AND_REG_LSR_REG,
    A_AND_REG_ASR_IMM, A_AND_REG_ASR_REG, A_AND_REG_ROR_IMM, A_AND_REG_ROR_REG,
    A_AND_REG_LSL_IMM, A_MUL, A_AND_REG_LSR_IMM, A_STRH_POST_REG,
    A_AND_REG_ASR_IMM, A_LDRD_POST_REG, A_AND_REG_ROR_IMM, A_STRD_POST_REG,

    // 0000 0001 0000
    A_AND_REG_LSL_IMM_S, A_AND_REG_LSL_REG_S, A_AND_REG_LSR_IMM_S, A_AND_REG_LSR_REG_S,
    A_AND_REG_ASR_IMM_S, A_AND_REG_ASR_REG_S, A_AND_REG_ROR_IMM_S, A_AND_REG_ROR_REG_S,
    A_AND_REG_LSL_IMM_S, A_MUL, A_AND_REG_LSR_IMM_S, A_LDRH_POST_REG,
    A_AND_REG_ASR_IMM_S, A_LDRSB_POST_REG, A_AND_REG_ROR_IMM_S, A_LDRSH_POST_REG,

    // 0000 0010 0000
    A_EOR_REG_LSL_IMM, A_EOR_REG_LSL_REG, A_EOR_REG_LSR_IMM, A_EOR_REG_LSR_REG,
    A_EOR_REG_ASR_IMM, A_EOR_REG_ASR_REG, A_EOR_REG_ROR_IMM, A_EOR_REG_ROR_REG,
    A_EOR_REG_LSL_IMM, A_MLA, A_EOR_REG_LSR_IMM, A_UNK,
    A_EOR_REG_ASR_IMM, A_UNK, A_EOR_REG_ROR_IMM, A_UNK,

    // 0000 0011 0000
    A_EOR_REG_LSL_IMM_S, A_EOR_REG_LSL_REG_S, A_EOR_REG_LSR_IMM_S, A_EOR_REG_LSR_REG_S,
    A_EOR_REG_ASR_IMM_S, A_EOR_REG_ASR_REG_S, A_EOR_REG_ROR_IMM_S, A_EOR_REG_ROR_REG_S,
    A_EOR_REG_LSL_IMM_S, A_MLA, A_EOR_REG_ROR_IMM_S, A_UNK,
    A_EOR_REG_ASR_IMM_S, A_UNK, A_EOR_REG_ROR_IMM_S, A_UNK,

    // 0000 0100 0000
    A_SUB_REG_LSL_IMM, A_SUB_REG_LSL_REG, A_SUB_REG_LSR_IMM, A_SUB_REG_LSR_REG,
    A_SUB_REG_ASR_IMM, A_SUB_REG_ASR_REG, A_SUB_REG_ROR_IMM, A_SUB_REG_ROR_REG,
    A_SUB_REG_LSL_IMM, A_UNK, A_SUB_REG_LSR_IMM, A_STRH_POST_IMM,
    A_SUB_REG_ASR_IMM, A_LDRD_POST_IMM, A_SUB_REG_ROR_IMM, A_STRD_POST_IMM,

    // 0000 0101 0000
    A_SUB_REG_LSL_IMM_S, A_SUB_REG_LSL_REG_S, A_SUB_REG_LSR_IMM_S, A_SUB_REG_LSR_REG_S,
    A_SUB_REG_ASR_IMM_S, A_SUB_REG_ASR_REG_S, A_SUB_REG_ROR_IMM_S, A_SUB_REG_ROR_REG_S,
    A_SUB_REG_LSL_IMM_S, A_UNK, A_SUB_REG_LSR_IMM_S, A_LDRH_POST_IMM,
    A_SUB_REG_ASR_IMM_S, A_LDRSB_POST_IMM, A_SUB_REG_ROR_IMM_S, A_LDRSH_POST_IMM,

    // 0000 0110 0000
    A_RSB_REG_LSL_IMM, A_RSB_REG_LSL_REG, A_RSB_REG_LSR_IMM, A_RSB_REG_LSR_REG,
    A_RSB_REG_ASR_IMM, A_RSB_REG_ASR_REG, A_RSB_REG_ROR_IMM, A_RSB_REG_ROR_REG,
    A_RSB_REG_LSL_IMM, A_UNK, A_RSB_REG_LSR_IMM, A_UNK,
    A_RSB_REG_ASR_IMM, A_UNK, A_RSB_REG_ROR_IMM, A_UNK,

    // 0000 0111 0000
    A_RSB_REG_LSL_IMM_S, A_RSB_REG_LSL_REG_S, A_RSB_REG_LSR_IMM_S, A_RSB_REG_LSR_REG_S,
    A_RSB_REG_ASR_IMM_S, A_RSB_REG_ASR_REG_S, A_RSB_REG_ROR_IMM_S, A_RSB_REG_ROR_REG_S,
    A_RSB_REG_LSL_IMM_S, A_UNK, A_RSB_REG_LSR_IMM_S, A_UNK,
    A_RSB_REG_ASR_IMM_S, A_UNK, A_RSB_REG_ROR_IMM_S, A_UNK,

    // 0000 1000 0000
    A_ADD_REG_LSL_IMM, A_ADD_REG_LSL_REG, A_ADD_REG_LSR_IMM, A_ADD_REG_LSR_REG,
    A_ADD_REG_ASR_IMM, A_ADD_REG_ASR_REG, A_ADD_REG_ROR_IMM, A_ADD_REG_ROR_REG,
    A_ADD_REG_LSL_IMM, A_UMULL, A_ADD_REG_LSR_IMM, A_STRH_POST_REG,
    A_ADD_REG_ASR_IMM, A_LDRD_POST_REG, A_ADD_REG_ROR_IMM, A_STRD_POST_REG,

    // 0000 1001 0000
    A_ADD_REG_LSL_IMM_S, A_ADD_REG_LSL_REG_S, A_ADD_REG_LSR_IMM_S, A_ADD_REG_LSR_REG_S,
    A_ADD_REG_ASR_IMM_S, A_ADD_REG_ASR_REG_S, A_ADD_REG_ROR_IMM_S, A_ADD_REG_ROR_REG_S,
    A_ADD_REG_LSL_IMM_S, A_UMULL, A_ADD_REG_LSR_IMM_S, A_LDRH_POST_REG,
    A_ADD_REG_ASR_IMM_S, A_LDRSB_POST_REG, A_ADD_REG_ROR_IMM_S, A_LDRSH_POST_REG,

    // 0000 1010 0000
    A_ADC_REG_LSL_IMM, A_ADC_REG_LSL_REG, A_ADC_REG_LSR_IMM, A_ADC_REG_LSR_REG,
    A_ADC_REG_ASR_IMM, A_ADC_REG_ASR_REG, A_ADC_REG_ROR_IMM, A_ADC_REG_ROR_REG,
    A_ADC_REG_LSL_IMM, A_UMLAL, A_ADC_REG_LSR_IMM, A_UNK,
    A_ADC_REG_ASR_IMM, A_UNK, A_ADC_REG_ROR_IMM, A_UNK,

    // 0000 1011 0000
    A_ADC_REG_LSL_IMM_S, A_ADC_REG_LSL_REG_S, A_ADC_REG_LSR_IMM_S, A_ADC_REG_LSR_REG_S,
    A_ADC_REG_ASR_IMM_S, A_ADC_REG_ASR_REG_S, A_ADC_REG_ROR_IMM_S, A_ADC_REG_ROR_REG_S,
    A_ADC_REG_LSL_IMM_S, A_UMLAL, A_ADC_REG_LSR_IMM_S, A_UNK,
    A_ADC_REG_ASR_IMM_S, A_UNK, A_ADC_REG_ROR_IMM_S, A_UNK,

    // 0000 1100 0000
    A_SBC_REG_LSL_IMM, A_SBC_REG_LSL_REG, A_SBC_REG_LSR_IMM, A_SBC_REG_LSR_REG,
    A_SBC_REG_ASR_IMM, A_SBC_REG_ASR_REG, A_SBC_REG_ROR_IMM, A_SBC_REG_ROR_REG,
    A_SBC_REG_LSL_IMM, A_SMULL, A_SBC_REG_LSR_IMM, A_STRH_POST_IMM,
    A_SBC_REG_ASR_IMM, A_LDRD_POST_IMM, A_SBC_REG_ROR_IMM, A_STRD_POST_IMM,

    // 0000 1101 0000
    A_SBC_REG_LSL_IMM_S, A_SBC_REG_LSL_REG_S, A_SBC_REG_LSR_IMM_S, A_SBC_REG_LSR_REG_S,
    A_SBC_REG_ASR_IMM_S, A_SBC_REG_ASR_REG_S, A_SBC_REG_ROR_IMM_S, A_SBC_REG_ROR_REG_S,
    A_SBC_REG_LSL_IMM_S, A_SMULL, A_SBC_REG_LSR_IMM_S, A_LDRH_POST_IMM,
    A_SBC_REG_ASR_IMM_S, A_LDRSB_POST_IMM, A_SBC_REG_ROR_IMM_S, A_LDRSH_POST_IMM,

    // 0000 1110 0000
    A_RSC_REG_LSL_IMM, A_RSC_REG_LSL_REG, A_RSC_REG_LSR_IMM, A_RSC_REG_LSR_REG,
    A_RSC_REG_ASR_IMM, A_RSC_REG_ASR_REG, A_RSC_REG_ROR_IMM, A_RSC_REG_ROR_REG,
    A_RSC_REG_LSL_IMM, A_SMLAL, A_RSC_REG_LSR_IMM, A_UNK,
    A_RSC_REG_ASR_IMM, A_UNK, A_RSC_REG_ROR_IMM, A_UNK,

    // 0000 1111 0000
    A_RSC_REG_LSL_IMM_S, A_RSC_REG_LSL_REG_S, A_RSC_REG_LSR_IMM_S, A_RSC_REG_LSR_REG_S,
    A_RSC_REG_ASR_IMM_S, A_RSC_REG_ASR_REG_S, A_RSC_REG_ROR_IMM_S, A_RSC_REG_ROR_REG_S,
    A_RSC_REG_LSL_IMM_S, A_SMLAL, A_RSC_REG_LSR_IMM_S, A_UNK,
    A_RSC_REG_ASR_IMM_S, A_UNK, A_RSC_REG_ROR_IMM_S, A_UNK,



    // 0001 0000 0000
    A_MRS, A_UNK, A_UNK, A_UNK,
    A_UNK, A_QADD, A_UNK, A_UNK,
    A_SMLAxy, A_SWP, A_SMLAxy, A_STRH_REG,
    A_SMLAxy, A_LDRD_REG, A_SMLAxy, A_STRD_REG,

    // 0001 0001 0000
    A_TST_REG_LSL_IMM, A_TST_REG_LSL_REG, A_TST_REG_LSR_IMM, A_TST_REG_LSR_REG,
    A_TST_REG_ASR_IMM, A_TST_REG_ASR_REG, A_TST_REG_ROR_IMM, A_TST_REG_ROR_REG,
    A_TST_REG_LSL_IMM, A_UNK, A_TST_REG_LSR_IMM, A_LDRH_REG,
    A_TST_REG_ASR_IMM, A_LDRSB_REG, A_TST_REG_ROR_IMM, A_LDRSH_REG,

    // 0001 0010 0000
    A_MSR_REG, A_BX, A_UNK, A_BLX_REG,
    A_UNK, A_QSUB, A_UNK, A_UNK,
    A_SMLAWy, A_UNK, A_SMULWy, A_STRH_REG,
    A_SMLAWy, A_LDRD_REG, A_SMULWy, A_STRD_REG,

    // 0001 0011 0000
    A_TEQ_REG_LSL_IMM, A_TEQ_REG_LSL_REG, A_TEQ_REG_LSR_IMM, A_TEQ_REG_LSR_REG,
    A_TEQ_REG_ASR_IMM, A_TEQ_REG_ASR_REG, A_TEQ_REG_ROR_IMM, A_TEQ_REG_ROR_REG,
    A_TEQ_REG_LSL_IMM, A_UNK, A_TEQ_REG_LSR_IMM, A_LDRH_REG,
    A_TEQ_REG_ASR_IMM, A_LDRSB_REG, A_TEQ_REG_ROR_IMM, A_LDRSH_REG,

    // 0001 0100 0000
    A_MRS, A_UNK, A_UNK, A_UNK,
    A_UNK, A_QDADD, A_UNK, A_UNK,
    A_SMLALxy, A_SWPB, A_SMLALxy, A_STRH_IMM,
    A_SMLALxy, A_LDRD_IMM, A_SMLALxy, A_STRD_IMM,

    // 0001 0101 0000
    A_CMP_REG_LSL_IMM, A_CMP_REG_LSL_REG, A_CMP_REG_LSR_IMM, A_CMP_REG_LSR_REG,
    A_CMP_REG_ASR_IMM, A_CMP_REG_ASR_REG, A_CMP_REG_ROR_IMM, A_CMP_REG_ROR_REG,
    A_CMP_REG_LSL_IMM, A_UNK, A_CMP_REG_LSR_IMM, A_LDRH_IMM,
    A_CMP_REG_ASR_IMM, A_LDRSB_IMM, A_CMP_REG_ROR_IMM, A_LDRSH_IMM,

    // 0001 0110 0000
    A_MSR_REG, A_CLZ, A_UNK, A_UNK,
    A_UNK, A_QDSUB, A_UNK, A_UNK,
    A_SMULxy, A_UNK, A_SMULxy, A_STRH_IMM,
    A_SMULxy, A_LDRD_IMM, A_SMULxy, A_STRD_IMM,

    // 0001 0111 0000
    A_CMN_REG_LSL_IMM, A_CMN_REG_LSL_REG, A_CMN_REG_LSR_IMM, A_CMN_REG_LSR_REG,
    A_CMN_REG_ASR_IMM, A_CMN_REG_ASR_REG, A_CMN_REG_ROR_IMM, A_CMN_REG_ROR_REG,
    A_CMN_REG_LSL_IMM, A_UNK, A_CMN_REG_LSR_IMM, A_LDRH_IMM,
    A_CMN_REG_ASR_IMM, A_LDRSB_IMM, A_CMN_REG_ROR_IMM, A_LDRSH_IMM,

    // 0001 1000 0000
    A_ORR_REG_LSL_IMM, A_ORR_REG_LSL_REG, A_ORR_REG_LSR_IMM, A_ORR_REG_LSR_REG,
    A_ORR_REG_ASR_IMM, A_ORR_REG_ASR_REG, A_ORR_REG_ROR_IMM, A_ORR_REG_ROR_REG,
    A_ORR_REG_LSL_IMM, A_UNK, A_ORR_REG_LSR_IMM, A_STRH_REG,
    A_ORR_REG_ASR_IMM, A_LDRD_REG, A_ORR_REG_ROR_IMM, A_STRD_REG,

    // 0001 1001 0000
    A_ORR_REG_LSL_IMM_S, A_ORR_REG_LSL_REG_S, A_ORR_REG_LSR_IMM_S, A_ORR_REG_LSR_REG_S,
    A_ORR_REG_ASR_IMM_S, A_ORR_REG_ASR_REG_S, A_ORR_REG_ROR_IMM_S, A_ORR_REG_ROR_REG_S,
    A_ORR_REG_LSL_IMM_S, A_UNK, A_ORR_REG_LSR_IMM_S, A_LDRH_REG,
    A_ORR_REG_ASR_IMM_S, A_LDRSB_REG, A_ORR_REG_ROR_IMM_S, A_LDRSH_REG,

    // 0001 1010 0000
    A_MOV_REG_LSL_IMM_DBG, A_MOV_REG_LSL_REG, A_MOV_REG_LSR_IMM, A_MOV_REG_LSR_REG,
    A_MOV_REG_ASR_IMM, A_MOV_REG_ASR_REG, A_MOV_REG_ROR_IMM, A_MOV_REG_ROR_REG,
    A_MOV_REG_LSL_IMM, A_UNK, A_MOV_REG_LSR_IMM, A_STRH_REG,
    A_MOV_REG_ASR_IMM, A_LDRD_REG, A_MOV_REG_ROR_IMM, A_STRD_REG,

    // 0001 1011 0000
    A_MOV_REG_LSL_IMM_S, A_MOV_REG_LSL_REG_S, A_MOV_REG_LSR_IMM_S, A_MOV_REG_LSR_REG_S,
    A_MOV_REG_ASR_IMM_S, A_MOV_REG_ASR_REG_S, A_MOV_REG_ROR_IMM_S, A_MOV_REG_ROR_REG_S,
    A_MOV_REG_LSL_IMM_S, A_UNK, A_MOV_REG_LSR_IMM_S, A_LDRH_REG,
    A_MOV_REG_ASR_IMM_S, A_LDRSB_REG, A_MOV_REG_ROR_IMM_S, A_LDRSH_REG,

    // 0001 1100 0000
    A_BIC_REG_LSL_IMM, A_BIC_REG_LSL_REG, A_BIC_REG_LSR_IMM, A_BIC_REG_LSR_REG,
    A_BIC_REG_ASR_IMM, A_BIC_REG_ASR_REG, A_BIC_REG_ROR_IMM, A_BIC_REG_ROR_REG,
    A_BIC_REG_LSL_IMM, A_UNK, A_BIC_REG_LSR_IMM, A_STRH_IMM,
    A_BIC_REG_ASR_IMM, A_LDRD_IMM, A_BIC_REG_ROR_IMM, A_STRD_IMM,

    // 0001 1101 0000
    A_BIC_REG_LSL_IMM_S, A_BIC_REG_LSL_REG_S, A_BIC_REG_LSR_IMM_S, A_BIC_REG_LSR_REG_S,
    A_BIC_REG_ASR_IMM_S, A_BIC_REG_ASR_REG_S, A_BIC_REG_ROR_IMM_S, A_BIC_REG_ROR_REG_S,
    A_BIC_REG_LSL_IMM_S, A_UNK, A_BIC_REG_LSR_IMM_S, A_LDRH_IMM,
    A_BIC_REG_ASR_IMM_S, A_LDRSB_IMM, A_BIC_REG_ROR_IMM_S, A_LDRSH_IMM,

    // 0001 1110 0000
    A_MVN_REG_LSL_IMM, A_MVN_REG_LSL_REG, A_MVN_REG_LSR_IMM, A_MVN_REG_LSR_REG,
    A_MVN_REG_ASR_IMM, A_MVN_REG_ASR_REG, A_MVN_REG_ROR_IMM, A_MVN_REG_ROR_REG,
    A_MVN_REG_LSL_IMM, A_UNK, A_MVN_REG_LSR_IMM, A_STRH_IMM,
    A_MVN_REG_ASR_IMM, A_LDRD_IMM, A_MVN_REG_ROR_IMM, A_STRD_IMM,

    // 0001 1111 0000
    A_MVN_REG_LSL_IMM_S, A_MVN_REG_LSL_REG_S, A_MVN_REG_LSR_IMM_S, A_MVN_REG_LSR_REG_S,
    A_MVN_REG_ASR_IMM_S, A_MVN_REG_ASR_REG_S, A_MVN_REG_ROR_IMM_S, A_MVN_REG_ROR_REG_S,
    A_MVN_REG_LSL_IMM_S, A_UNK, A_MVN_REG_LSR_IMM_S, A_LDRH_IMM,
    A_MVN_REG_ASR_IMM_S, A_LDRSB_IMM, A_MVN_REG_ROR_IMM_S, A_LDRSH_IMM,



    // 0010 0000 0000
    A_AND_IMM, A_AND_IMM, A_AND_IMM, A_AND_IMM,
    A_AND_IMM, A_AND_IMM, A_AND_IMM, A_AND_IMM,
    A_AND_IMM, A_AND_IMM, A_AND_IMM, A_AND_IMM,
    A_AND_IMM, A_AND_IMM, A_AND_IMM, A_AND_IMM,

    // 0010 0001 0000
    A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S,
    A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S,
    A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S,
    A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S, A_AND_IMM_S,

    // 0010 0010 0000
    A_EOR_IMM, A_EOR_IMM, A_EOR_IMM, A_EOR_IMM,
    A_EOR_IMM, A_EOR_IMM, A_EOR_IMM, A_EOR_IMM,
    A_EOR_IMM, A_EOR_IMM, A_EOR_IMM, A_EOR_IMM,
    A_EOR_IMM, A_EOR_IMM, A_EOR_IMM, A_EOR_IMM,

    // 0010 0011 0000
    A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S,
    A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S,
    A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S,
    A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S, A_EOR_IMM_S,

    // 0010 0100 0000
    A_SUB_IMM, A_SUB_IMM, A_SUB_IMM, A_SUB_IMM,
    A_SUB_IMM, A_SUB_IMM, A_SUB_IMM, A_SUB_IMM,
    A_SUB_IMM, A_SUB_IMM, A_SUB_IMM, A_SUB_IMM,
    A_SUB_IMM, A_SUB_IMM, A_SUB_IMM, A_SUB_IMM,

    // 0010 0101 0000
    A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S,
    A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S,
    A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S,
    A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S, A_SUB_IMM_S,

    // 0010 0110 0000
    A_RSB_IMM, A_RSB_IMM, A_RSB_IMM, A_RSB_IMM,
    A_RSB_IMM, A_RSB_IMM, A_RSB_IMM, A_RSB_IMM,
    A_RSB_IMM, A_RSB_IMM, A_RSB_IMM, A_RSB_IMM,
    A_RSB_IMM, A_RSB_IMM, A_RSB_IMM, A_RSB_IMM,

    // 0010 0111 0000
    A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S,
    A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S,
    A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S,
    A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S, A_RSB_IMM_S,

    // 0010 1000 0000
    A_ADD_IMM, A_ADD_IMM, A_ADD_IMM, A_ADD_IMM,
    A_ADD_IMM, A_ADD_IMM, A_ADD_IMM, A_ADD_IMM,
    A_ADD_IMM, A_ADD_IMM, A_ADD_IMM, A_ADD_IMM,
    A_ADD_IMM, A_ADD_IMM, A_ADD_IMM, A_ADD_IMM,

    // 0010 1001 0000
    A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S,
    A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S,
    A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S,
    A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S, A_ADD_IMM_S,

    // 0010 1010 0000
    A_ADC_IMM, A_ADC_IMM, A_ADC_IMM, A_ADC_IMM,
    A_ADC_IMM, A_ADC_IMM, A_ADC_IMM, A_ADC_IMM,
    A_ADC_IMM, A_ADC_IMM, A_ADC_IMM, A_ADC_IMM,
    A_ADC_IMM, A_ADC_IMM, A_ADC_IMM, A_ADC_IMM,

    // 0010 1011 0000
    A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S,
    A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S,
    A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S,
    A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S, A_ADC_IMM_S,

    // 0010 1100 0000
    A_SBC_IMM, A_SBC_IMM, A_SBC_IMM, A_SBC_IMM,
    A_SBC_IMM, A_SBC_IMM, A_SBC_IMM, A_SBC_IMM,
    A_SBC_IMM, A_SBC_IMM, A_SBC_IMM, A_SBC_IMM,
    A_SBC_IMM, A_SBC_IMM, A_SBC_IMM, A_SBC_IMM,

    // 0010 1101 0000
    A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S,
    A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S,
    A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S,
    A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S, A_SBC_IMM_S,

    // 0010 1110 0000
    A_RSC_IMM, A_RSC_IMM, A_RSC_IMM, A_RSC_IMM,
    A_RSC_IMM, A_RSC_IMM, A_RSC_IMM, A_RSC_IMM,
    A_RSC_IMM, A_RSC_IMM, A_RSC_IMM, A_RSC_IMM,
    A_RSC_IMM, A_RSC_IMM, A_RSC_IMM, A_RSC_IMM,

    // 0010 1111 0000
    A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S,
    A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S,
    A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S,
    A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S, A_RSC_IMM_S,



    // 0011 0000 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 0011 0001 0000
    A_TST_IMM, A_TST_IMM, A_TST_IMM, A_TST_IMM,
    A_TST_IMM, A_TST_IMM, A_TST_IMM, A_TST_IMM,
    A_TST_IMM, A_TST_IMM, A_TST_IMM, A_TST_IMM,
    A_TST_IMM, A_TST_IMM, A_TST_IMM, A_TST_IMM,

    // 0011 0010 0000
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,

    // 0011 0011 0000
    A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM,
    A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM,
    A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM,
    A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM, A_TEQ_IMM,

    // 0011 0100 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 0011 0101 0000
    A_CMP_IMM, A_CMP_IMM, A_CMP_IMM, A_CMP_IMM,
    A_CMP_IMM, A_CMP_IMM, A_CMP_IMM, A_CMP_IMM,
    A_CMP_IMM, A_CMP_IMM, A_CMP_IMM, A_CMP_IMM,
    A_CMP_IMM, A_CMP_IMM, A_CMP_IMM, A_CMP_IMM,

    // 0011 0110 0000
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,
    A_MSR_IMM, A_MSR_IMM, A_MSR_IMM, A_MSR_IMM,

    // 0011 0111 0000
    A_CMN_IMM, A_CMN_IMM, A_CMN_IMM, A_CMN_IMM,
    A_CMN_IMM, A_CMN_IMM, A_CMN_IMM, A_CMN_IMM,
    A_CMN_IMM, A_CMN_IMM, A_CMN_IMM, A_CMN_IMM,
    A_CMN_IMM, A_CMN_IMM, A_CMN_IMM, A_CMN_IMM,

    // 0011 1000 0000
    A_ORR_IMM, A_ORR_IMM, A_ORR_IMM, A_ORR_IMM,
    A_ORR_IMM, A_ORR_IMM, A_ORR_IMM, A_ORR_IMM,
    A_ORR_IMM, A_ORR_IMM, A_ORR_IMM, A_ORR_IMM,
    A_ORR_IMM, A_ORR_IMM, A_ORR_IMM, A_ORR_IMM,

    // 0011 1001 0000
    A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S,
    A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S,
    A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S,
    A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S, A_ORR_IMM_S,

    // 0011 1010 0000
    A_MOV_IMM, A_MOV_IMM, A_MOV_IMM, A_MOV_IMM,
    A_MOV_IMM, A_MOV_IMM, A_MOV_IMM, A_MOV_IMM,
    A_MOV_IMM, A_MOV_IMM, A_MOV_IMM, A_MOV_IMM,
    A_MOV_IMM, A_MOV_IMM, A_MOV_IMM, A_MOV_IMM,

    // 0011 1011 0000
    A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S,
    A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S,
    A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S,
    A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S, A_MOV_IMM_S,

    // 0011 1100 0000
    A_BIC_IMM, A_BIC_IMM, A_BIC_IMM, A_BIC_IMM,
    A_BIC_IMM, A_BIC_IMM, A_BIC_IMM, A_BIC_IMM,
    A_BIC_IMM, A_BIC_IMM, A_BIC_IMM, A_BIC_IMM,
    A_BIC_IMM, A_BIC_IMM, A_BIC_IMM, A_BIC_IMM,

    // 0011 1101 0000
    A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S,
    A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S,
    A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S,
    A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S, A_BIC_IMM_S,

    // 0011 1110 0000
    A_MVN_IMM, A_MVN_IMM, A_MVN_IMM, A_MVN_IMM,
    A_MVN_IMM, A_MVN_IMM, A_MVN_IMM, A_MVN_IMM,
    A_MVN_IMM, A_MVN_IMM, A_MVN_IMM, A_MVN_IMM,
    A_MVN_IMM, A_MVN_IMM, A_MVN_IMM, A_MVN_IMM,

    // 0011 1111 0000
    A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S,
    A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S,
    A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S,
    A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S, A_MVN_IMM_S,



    // 0100 0000 0000
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,

    // 0100 0001 0000
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,

    // 0100 0010 0000
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,

    // 0100 0011 0000
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,

    // 0100 0100 0000
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,

    // 0100 0101 0000
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,

    // 0100 0110 0000
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,

    // 0100 0111 0000
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,

    // 0100 1000 0000
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,

    // 0100 1001 0000
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,

    // 0100 1010 0000
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,
    A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM, A_STR_POST_IMM,

    // 0100 1011 0000
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,
    A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM, A_LDR_POST_IMM,

    // 0100 1100 0000
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,

    // 0100 1101 0000
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,

    // 0100 1110 0000
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,
    A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM, A_STRB_POST_IMM,

    // 0100 1111 0000
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,
    A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM, A_LDRB_POST_IMM,



    // 0101 0000 0000
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,

    // 0101 0001 0000
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,

    // 0101 0010 0000
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,

    // 0101 0011 0000
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,

    // 0101 0100 0000
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,

    // 0101 0101 0000
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,

    // 0101 0110 0000
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,

    // 0101 0111 0000
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,

    // 0101 1000 0000
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,

    // 0101 1001 0000
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,

    // 0101 1010 0000
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,
    A_STR_IMM, A_STR_IMM, A_STR_IMM, A_STR_IMM,

    // 0101 1011 0000
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,
    A_LDR_IMM, A_LDR_IMM, A_LDR_IMM, A_LDR_IMM,

    // 0101 1100 0000
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,

    // 0101 1101 0000
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,

    // 0101 1110 0000
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,
    A_STRB_IMM, A_STRB_IMM, A_STRB_IMM, A_STRB_IMM,

    // 0101 1111 0000
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,
    A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM, A_LDRB_IMM,



    // 0110 0000 0000
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,

    // 0110 0001 0000
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,

    // 0110 0010 0000
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,

    // 0110 0011 0000
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,

    // 0110 0100 0000
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,

    // 0110 0101 0000
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,

    // 0110 0110 0000
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,

    // 0110 0111 0000
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,

    // 0110 1000 0000
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,

    // 0110 1001 0000
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,

    // 0110 1010 0000
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,
    A_STR_POST_REG_LSL, A_UNK, A_STR_POST_REG_LSR, A_UNK,
    A_STR_POST_REG_ASR, A_UNK, A_STR_POST_REG_ROR, A_UNK,

    // 0110 1011 0000
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,
    A_LDR_POST_REG_LSL, A_UNK, A_LDR_POST_REG_LSR, A_UNK,
    A_LDR_POST_REG_ASR, A_UNK, A_LDR_POST_REG_ROR, A_UNK,

    // 0110 1100 0000
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,

    // 0110 1101 0000
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,

    // 0110 1110 0000
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,
    A_STRB_POST_REG_LSL, A_UNK, A_STRB_POST_REG_LSR, A_UNK,
    A_STRB_POST_REG_ASR, A_UNK, A_STRB_POST_REG_ROR, A_UNK,

    // 0110 1111 0000
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,
    A_LDRB_POST_REG_LSL, A_UNK, A_LDRB_POST_REG_LSR, A_UNK,
    A_LDRB_POST_REG_ASR, A_UNK, A_LDRB_POST_REG_ROR, A_UNK,



    // 0111 0000 0000
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,

    // 0111 0001 0000
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,

    // 0111 0010 0000
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,

    // 0111 0011 0000
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,

    // 0111 0100 0000
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,

    // 0111 0101 0000
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,

    // 0111 0110 0000
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,

    // 0111 0111 0000
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,

    // 0111 1000 0000
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,

    // 0111 1001 0000
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,

    // 0111 1010 0000
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,
    A_STR_REG_LSL, A_UNK, A_STR_REG_LSR, A_UNK,
    A_STR_REG_ASR, A_UNK, A_STR_REG_ROR, A_UNK,

    // 0111 1011 0000
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,
    A_LDR_REG_LSL, A_UNK, A_LDR_REG_LSR, A_UNK,
    A_LDR_REG_ASR, A_UNK, A_LDR_REG_ROR, A_UNK,

    // 0111 1100 0000
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,

    // 0111 1101 0000
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,

    // 0111 1110 0000
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,
    A_STRB_REG_LSL, A_UNK, A_STRB_REG_LSR, A_UNK,
    A_STRB_REG_ASR, A_UNK, A_STRB_REG_ROR, A_UNK,

    // 0111 1111 0000
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,
    A_LDRB_REG_LSL, A_UNK, A_LDRB_REG_LSR, A_UNK,
    A_LDRB_REG_ASR, A_UNK, A_LDRB_REG_ROR, A_UNK,



    // 1000 0000 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 0001 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 0010 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 0011 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 0100 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 0101 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 0110 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 0111 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 1000 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 1001 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 1010 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 1011 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 1100 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 1101 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1000 1110 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1000 1111 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,



    // 1001 0000 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 0001 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 0010 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 0011 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 0100 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 0101 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 0110 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 0111 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 1000 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 1001 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 1010 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 1011 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 1100 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 1101 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,

    // 1001 1110 0000
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,
    A_STM, A_STM, A_STM, A_STM,

    // 1001 1111 0000
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,
    A_LDM, A_LDM, A_LDM, A_LDM,



    // 1010 0000 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0001 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0010 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0011 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0100 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0101 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0110 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 0111 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1000 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1001 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1010 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1011 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1100 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1101 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1110 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,

    // 1010 1111 0000
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,
    A_B, A_B, A_B, A_B,



    // 1011 0000 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0001 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0010 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0011 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0100 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0101 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0110 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 0111 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1000 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1001 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1010 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1011 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1100 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1101 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1110 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,

    // 1011 1111 0000
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,
    A_BL, A_BL, A_BL, A_BL,



    // 1100 0000 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0001 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0010 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0011 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0100 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0101 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0110 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 0111 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1000 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1001 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1010 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1011 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1100 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1101 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1110 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1100 1111 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,



    // 1101 0000 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0001 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0010 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0011 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0100 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0101 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0110 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 0111 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1000 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1001 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1010 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1011 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1100 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1101 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1110 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,

    // 1101 1111 0000
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,
    A_UNK, A_UNK, A_UNK, A_UNK,



    // 1110 0000 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 0001 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 0010 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 0011 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 0100 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 0101 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 0110 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 0111 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 1000 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 1001 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 1010 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 1011 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 1100 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 1101 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,

    // 1110 1110 0000
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,
    A_UNK, A_MCR, A_UNK, A_MCR,

    // 1110 1111 0000
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,
    A_UNK, A_MRC, A_UNK, A_MRC,



    // 1111 0000 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0001 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0010 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0011 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0100 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0101 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0110 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 0111 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1000 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1001 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1010 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1011 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1100 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1101 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1110 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,

    // 1111 1111 0000
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC,
    A_SVC, A_SVC, A_SVC, A_SVC
};

INSTRFUNC_PROTO(THUMBInstrTable[1024]) =
{
    // 0000 0000 00
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,

    // 0000 0100 00
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,
    T_LSL_IMM, T_LSL_IMM, T_LSL_IMM, T_LSL_IMM,

    // 0000 1000 00
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,

    // 0000 1100 00
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,
    T_LSR_IMM, T_LSR_IMM, T_LSR_IMM, T_LSR_IMM,

    // 0001 0000 00
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,

    // 0001 0100 00
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,
    T_ASR_IMM, T_ASR_IMM, T_ASR_IMM, T_ASR_IMM,

    // 0001 1000 00
    T_ADD_REG_, T_ADD_REG_, T_ADD_REG_, T_ADD_REG_,
    T_ADD_REG_, T_ADD_REG_, T_ADD_REG_, T_ADD_REG_,
    T_SUB_REG_, T_SUB_REG_, T_SUB_REG_, T_SUB_REG_,
    T_SUB_REG_, T_SUB_REG_, T_SUB_REG_, T_SUB_REG_,

    // 0001 1100 00
    T_ADD_IMM_, T_ADD_IMM_, T_ADD_IMM_, T_ADD_IMM_,
    T_ADD_IMM_, T_ADD_IMM_, T_ADD_IMM_, T_ADD_IMM_,
    T_SUB_IMM_, T_SUB_IMM_, T_SUB_IMM_, T_SUB_IMM_,
    T_SUB_IMM_, T_SUB_IMM_, T_SUB_IMM_, T_SUB_IMM_,

    // 0010 0000 00
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,

    // 0010 0100 00
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,
    T_MOV_IMM, T_MOV_IMM, T_MOV_IMM, T_MOV_IMM,

    // 0010 1000 00
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,

    // 0010 1100 00
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,
    T_CMP_IMM, T_CMP_IMM, T_CMP_IMM, T_CMP_IMM,

    // 0011 0000 00
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,

    // 0011 0100 00
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,
    T_ADD_IMM, T_ADD_IMM, T_ADD_IMM, T_ADD_IMM,

    // 0011 1000 00
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,

    // 0011 1100 00
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,
    T_SUB_IMM, T_SUB_IMM, T_SUB_IMM, T_SUB_IMM,



    // 0100 0000 00
    T_AND_REG, T_EOR_REG, T_LSL_REG, T_LSR_REG,
    T_ASR_REG, T_ADC_REG, T_SBC_REG, T_ROR_REG,
    T_TST_REG, T_NEG_REG, T_CMP_REG, T_CMN_REG,
    T_ORR_REG, T_MUL_REG, T_BIC_REG, T_MVN_REG,

    // 0100 0100 00
    T_ADD_HIREG, T_ADD_HIREG, T_ADD_HIREG, T_ADD_HIREG,
    T_CMP_HIREG, T_CMP_HIREG, T_CMP_HIREG, T_CMP_HIREG,
    T_MOV_HIREG, T_MOV_HIREG, T_MOV_HIREG, T_MOV_HIREG,
    T_BX, T_BX, T_BLX_REG, T_BLX_REG,

    // 0100 1000 00
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,

    // 0100 1100 00
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,
    T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL, T_LDR_PCREL,

    // 0101 0000 00
    T_STR_REG, T_STR_REG, T_STR_REG, T_STR_REG,
    T_STR_REG, T_STR_REG, T_STR_REG, T_STR_REG,
    T_STRH_REG, T_STRH_REG, T_STRH_REG, T_STRH_REG,
    T_STRH_REG, T_STRH_REG, T_STRH_REG, T_STRH_REG,

    // 0101 0100 00
    T_STRB_REG, T_STRB_REG, T_STRB_REG, T_STRB_REG,
    T_STRB_REG, T_STRB_REG, T_STRB_REG, T_STRB_REG,
    T_LDRSB_REG, T_LDRSB_REG, T_LDRSB_REG, T_LDRSB_REG,
    T_LDRSB_REG, T_LDRSB_REG, T_LDRSB_REG, T_LDRSB_REG,

    // 0101 1000 00
    T_LDR_REG, T_LDR_REG, T_LDR_REG, T_LDR_REG,
    T_LDR_REG, T_LDR_REG, T_LDR_REG, T_LDR_REG,
    T_LDRH_REG, T_LDRH_REG, T_LDRH_REG, T_LDRH_REG,
    T_LDRH_REG, T_LDRH_REG, T_LDRH_REG, T_LDRH_REG,

    // 0101 1100 00
    T_LDRB_REG, T_LDRB_REG, T_LDRB_REG, T_LDRB_REG,
    T_LDRB_REG, T_LDRB_REG, T_LDRB_REG, T_LDRB_REG,
    T_LDRSH_REG, T_LDRSH_REG, T_LDRSH_REG, T_LDRSH_REG,
    T_LDRSH_REG, T_LDRSH_REG, T_LDRSH_REG, T_LDRSH_REG,

    // 0110 0000 00
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,

    // 0110 0100 00
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,
    T_STR_IMM, T_STR_IMM, T_STR_IMM, T_STR_IMM,

    // 0110 1000 00
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,

    // 0110 1100 00
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,
    T_LDR_IMM, T_LDR_IMM, T_LDR_IMM, T_LDR_IMM,

    // 0111 0000 00
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,

    // 0111 0100 00
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,
    T_STRB_IMM, T_STRB_IMM, T_STRB_IMM, T_STRB_IMM,

    // 0111 1000 00
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,

    // 0111 1100 00
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,
    T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM, T_LDRB_IMM,



    // 1000 0000 00
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,

    // 1000 0100 00
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,
    T_STRH_IMM, T_STRH_IMM, T_STRH_IMM, T_STRH_IMM,

    // 1000 1000 00
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,

    // 1000 1100 00
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,
    T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM, T_LDRH_IMM,

    // 1001 0000 00
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,

    // 1001 0100 00
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,
    T_STR_SPREL, T_STR_SPREL, T_STR_SPREL, T_STR_SPREL,

    // 1001 1000 00
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,

    // 1001 1100 00
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,
    T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL, T_LDR_SPREL,

    // 1010 0000 00
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,

    // 1010 0100 00
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,
    T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL, T_ADD_PCREL,

    // 1010 1000 00
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,

    // 1010 1100 00
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,
    T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL, T_ADD_SPREL,

    // 1011 0000 00
    T_ADD_SP, T_ADD_SP, T_ADD_SP, T_ADD_SP,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,

    // 1011 0100 00
    T_PUSH, T_PUSH, T_PUSH, T_PUSH,
    T_PUSH, T_PUSH, T_PUSH, T_PUSH,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,

    // 1011 1000 00
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,

    // 1011 1100 00
    T_POP, T_POP, T_POP, T_POP,
    T_POP, T_POP, T_POP, T_POP,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_UNK, T_UNK, T_UNK, T_UNK,



    // 1100 0000 00
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,

    // 1100 0100 00
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,
    T_STMIA, T_STMIA, T_STMIA, T_STMIA,

    // 1100 1000 00
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,

    // 1100 1100 00
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,
    T_LDMIA, T_LDMIA, T_LDMIA, T_LDMIA,

    // 1101 0000 00
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,

    // 1101 0100 00
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,

    // 1101 1000 00
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,

    // 1101 1100 00
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_BCOND, T_BCOND, T_BCOND, T_BCOND,
    T_UNK, T_UNK, T_UNK, T_UNK,
    T_SVC, T_SVC, T_SVC, T_SVC,

    // 1110 0000 00
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,

    // 1110 0100 00
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,
    T_B, T_B, T_B, T_B,

    // 1110 1000 00
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,

    // 1110 1100 00
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,

    // 1111 0000 00
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,

    // 1111 0100 00
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,
    T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1, T_BL_LONG_1,

    // 1111 1000 00
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,

    // 1111 1100 00
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2,
    T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2, T_BL_LONG_2
};