/* Generated code; do not edit!
   generated by tables/gen.js from imaon2 'f0e220720bbfb8f8e00e76af56806a28fc8739a2'
   https://github.com/comex/imaon2
   arguments: '--gen-hook-disassembler -n _thumb2 --dis-pattern=P(XXX) out/out-ARM.json'
   (fair warning: at present the main (Rust) code in that repository is barely
    started, embarrassingly so; no need to look at it ;p)
   In case it's copyrightable in any way, consider the generated code in the
   public domain.
*/

/* addrmode5_addr_8_VLDRD: VLDRD, VLDRS, VSTRD, VSTRS, t2LDC2L_OFFSET, t2LDC2_OFFSET, t2LDCL_OFFSET, t2LDC_OFFSET */
/* GPR_Rt_8_VMOVDRR: VMOVDRR, VMOVSR, t2MCR, t2MCR2, t2MCRR, t2MCRR2, t2MRRC, t2MRRC2 */
/* unk_Rt_13_VMOVRRD: VMOVRRD, VMOVRRS, VMOVRS, VMRS, VMRS_FPEXC, VMRS_FPINST, VMRS_FPINST2, VMRS_FPSID, VMRS_MVFR0, VMRS_MVFR1, VMRS_MVFR2, t2MRC, t2MRC2 */
/* GPRnopc_Rn_unk_Rd_2_t2ADDri: t2ADDri, t2ADDrs */
/* GPR_Rn_unk_Rd_1_t2ADDri12: t2ADDri12 */
/* GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr: t2ADDrr */
/* t2adrlabel_addr_unk_Rd_1_t2ADR: t2ADR */
/* uncondbrtarget_target_B_1_t2B: t2B */
/* rGPR_func_1_t2BXJ: t2BXJ */
/* brtarget_target_pred_p_B_1_t2Bcc: t2Bcc */
/* addr_offset_none_addr_unk_Rt_11_t2LDA: t2LDA, t2LDAB, t2LDAEX, t2LDAEXB, t2LDAEXD, t2LDAEXH, t2LDAH, t2LDRD_POST, t2LDREXB, t2LDREXD, t2LDREXH */
/* addr_offset_none_addr_4_t2LDC2L_OPTION: t2LDC2L_OPTION, t2LDC2_OPTION, t2LDCL_OPTION, t2LDC_OPTION */
/* addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST: t2LDC2L_POST, t2LDC2_POST, t2LDCL_POST, t2LDC_POST */
/* addrmode5_pre_addr_4_t2LDC2L_PRE: t2LDC2L_PRE, t2LDC2_PRE, t2LDCL_PRE, t2LDC_PRE */
/* GPR_Rn_reglist_regs_4_t2LDMDB: t2LDMDB, t2LDMDB_UPD, t2LDMIA, t2LDMIA_UPD */
/* t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT: t2LDRBT, t2LDRHT, t2LDRSBT, t2LDRSHT, t2LDRT */
/* addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST: t2LDRB_POST, t2LDRH_POST, t2LDRSB_POST, t2LDRSH_POST, t2LDR_POST */
/* t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE: t2LDRB_PRE, t2LDRH_PRE, t2LDRSB_PRE, t2LDRSH_PRE, t2LDR_PRE */
/* t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12: t2LDRBi12, t2LDRHi12, t2LDRSBi12, t2LDRSHi12, t2LDRi12 */
/* t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8: t2LDRBi8, t2LDRHi8, t2LDRSBi8, t2LDRSHi8, t2LDRi8 */
/* t2ldrlabel_addr_unk_Rt_5_t2LDRBpci: t2LDRBpci, t2LDRHpci, t2LDRSBpci, t2LDRSHpci, t2LDRpci */
/* t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs: t2LDRBs, t2LDRHs, t2LDRSBs, t2LDRSHs, t2LDRs */
/* t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE: t2LDRD_PRE */
/* t2addrmode_imm8s4_addr_unk_Rt_1_t2LDRDi8: t2LDRDi8 */
/* t2addrmode_imm0_1020s4_addr_unk_Rt_1_t2LDREX: t2LDREX */
/* unk_Rd_3_t2MOVTi16: t2MOVTi16, t2MOVi, t2MOVi16 */
/* GPR_Rm_unk_Rd_1_t2MOVr: t2MOVr */
/* addrmode5_addr_S_4_t2STC2L_OFFSET: t2STC2L_OFFSET, t2STC2_OFFSET, t2STCL_OFFSET, t2STC_OFFSET */
/* addr_offset_none_addr_S_4_t2STC2L_OPTION: t2STC2L_OPTION, t2STC2_OPTION, t2STCL_OPTION, t2STC_OPTION */
/* addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST: t2STC2L_POST, t2STC2_POST, t2STCL_POST, t2STC_POST */
/* addrmode5_pre_addr_S_4_t2STC2L_PRE: t2STC2L_PRE, t2STC2_PRE, t2STCL_PRE, t2STC_PRE */
/* rGPR_Rt_addr_offset_none_addr_S_4_t2STL: t2STL, t2STLB, t2STLH, t2STRD_POST */
/* rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX: t2STLEX, t2STLEXB, t2STLEXD, t2STLEXH, t2STREXB, t2STREXD, t2STREXH */
/* GPR_Rn_reglist_regs_S_4_t2STMDB: t2STMDB, t2STMDB_UPD, t2STMIA, t2STMIA_UPD */
/* t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT: t2STRBT, t2STRHT, t2STRT */
/* rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST: t2STRB_POST, t2STRH_POST */
/* rGPR_Rt_t2addrmode_imm8_pre_addr_S_2_t2STRB_PRE: t2STRB_PRE, t2STRH_PRE */
/* rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12: t2STRBi12, t2STRHi12 */
/* rGPR_Rt_t2addrmode_negimm8_addr_S_2_t2STRBi8: t2STRBi8, t2STRHi8 */
/* rGPR_Rt_t2addrmode_so_reg_addr_S_2_t2STRBs: t2STRBs, t2STRHs */
/* rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE: t2STRD_PRE */
/* rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8: t2STRDi8 */
/* rGPR_Rt_t2addrmode_imm0_1020s4_addr_unk_Rd_S_1_t2STREX: t2STREX */
/* GPRnopc_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_1_t2STR_POST: t2STR_POST */
/* GPRnopc_Rt_t2addrmode_imm8_pre_addr_S_1_t2STR_PRE: t2STR_PRE */
/* GPR_Rt_t2addrmode_imm12_addr_S_1_t2STRi12: t2STRi12 */
/* GPR_Rt_t2addrmode_negimm8_addr_S_1_t2STRi8: t2STRi8 */
/* GPR_Rt_t2addrmode_so_reg_addr_S_1_t2STRs: t2STRs */
/* unk_Rm_B_2_t2TBB: t2TBB, t2TBH */
/* t_bltarget_func_1_tBL: tBL */
/* t_blxtarget_func_1_tBLXi: tBLXi */
    switch ((op >> 20) & 0x1f) {
    case 0: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 14) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xfb5f8000) == 0xf20f0000) {
                    insn_t2adrlabel_addr_unk_Rd_1_t2ADR:;
                    struct bitslice addr = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,8}, {12,8,3}, {21,12,1}, {23,12,1}, {26,11,1}}};
                    struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                    return P(t2adrlabel_addr_unk_Rd_1_t2ADR)(ctx, addr, Rd); /* 0xf20f0000 | 0x04007fff */
                } else {
                    if ((op & 0xfbf08000) == 0xf2000000) {
                        struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                        struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                        return P(GPR_Rn_unk_Rd_1_t2ADDri12)(ctx, Rd, Rn); /* 0xf2000000 | 0x040f7fff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 2: {
                switch ((op >> 12) & 0x1) {
                case 0: {
                    if ((op & 0xf800d000) == 0xf0008000) {
                        insn_brtarget_target_pred_p_B_1_t2Bcc:;
                        struct bitslice target = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,1,11}, {11,19,1}, {13,18,1}, {16,12,6}, {26,20,1}}};
                        struct bitslice p = {.nruns = 1, .runs = (struct bitslice_run[]) {{22,0,4}}};
                        return P(brtarget_target_pred_p_B_1_t2Bcc)(ctx, target, p); /* 0xf0008000 | 0x07ff2fff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xf800d000) == 0xf0009000) {
                        insn_uncondbrtarget_target_B_1_t2B:;
                        struct bitslice target = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,11}, {11,21,1}, {13,22,1}, {16,11,10}, {26,23,1}}};
                        return P(uncondbrtarget_target_B_1_t2B)(ctx, target); /* 0xf0009000 | 0x07ff2fff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 3: {
                switch ((op >> 12) & 0x1) {
                case 0: {
                    if ((op & 0xf800d001) == 0xf000c000) {
                        insn_t_blxtarget_func_1_tBLXi:;
                        struct bitslice func = {.nruns = 5, .runs = (struct bitslice_run[]) {{1,1,10}, {11,21,1}, {13,22,1}, {16,11,10}, {26,23,1}}};
                        return P(t_blxtarget_func_1_tBLXi)(ctx, func); /* 0xf000c000 | 0x07ff2ffe */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xf800d000) == 0xf000d000) {
                        insn_t_bltarget_func_1_tBL:;
                        struct bitslice func = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,11}, {11,21,1}, {13,22,1}, {16,11,10}, {26,23,1}}};
                        return P(t_bltarget_func_1_tBL)(ctx, func); /* 0xf000d000 | 0x07ff2fff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 2: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xffd00fc0) == 0xf8000000) {
                    insn_rGPR_Rt_t2addrmode_so_reg_addr_S_2_t2STRBs:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,2,4}, {4,0,2}, {16,6,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_so_reg_addr_S_2_t2STRBs)(ctx, addr, Rt); /* 0xf8000000 | 0x002ff03f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xffd00d00) == 0xf8000900) {
                    insn_rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST:;
                    struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST)(ctx, offset, Rt, Rn); /* 0xf8000900 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xffd00d00) == 0xf8000c00) {
                    insn_rGPR_Rt_t2addrmode_negimm8_addr_S_2_t2STRBi8:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_negimm8_addr_S_2_t2STRBi8)(ctx, addr, Rt); /* 0xf8000c00 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xffd00d00) == 0xf8000d00) {
                    insn_rGPR_Rt_t2addrmode_imm8_pre_addr_S_2_t2STRB_PRE:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_imm8_pre_addr_S_2_t2STRB_PRE)(ctx, addr, Rt); /* 0xf8000d00 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 6: {
                if ((op & 0xffd00f00) == 0xf8000e00) {
                    insn_t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT:;
                    struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT)(ctx, addr, Rt); /* 0xf8000e00 | 0x002ff0ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 3: {
            if ((op & 0xff00f7f) == 0xe000a10) {
                insn_GPR_Rt_8_VMOVDRR:;
                struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                return P(GPR_Rt_8_VMOVDRR)(ctx, Rt); /* 0x0e000a10 | 0xf00ff080 */
            } else {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x100fffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
        }
        }
    }
    case 1: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfed00fc0) == 0xf8100000) {
                    insn_t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,2,4}, {4,0,2}, {16,6,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs)(ctx, addr, Rt); /* 0xf8100000 | 0x012ff03f */
                } else {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci:;
                        struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {23,12,1}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        return P(t2ldrlabel_addr_unk_Rt_5_t2LDRBpci)(ctx, addr, Rt); /* 0xf81f0000 | 0x0120f8ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1:
            case 3: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100900) {
                        insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST:;
                        struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                        return P(addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST)(ctx, offset, Rt, Rn); /* 0xf8100900 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 2: {
                if ((op & 0xfe5f0000) == 0xf81f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100c00) {
                        insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8:;
                        struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        return P(t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8)(ctx, addr, Rt); /* 0xf8100c00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 5:
            case 7: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100d00) {
                        insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE:;
                        struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        return P(t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE)(ctx, addr, Rt); /* 0xf8100d00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 6: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00f00) == 0xf8100e00) {
                        insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT:;
                        struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        return P(t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT)(ctx, addr, Rt); /* 0xf8100e00 | 0x012ff0ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 3: {
            if ((op & 0xff00f7f) == 0xe100a10) {
                insn_unk_Rt_13_VMOVRRD:;
                struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                return P(unk_Rt_13_VMOVRRD)(ctx, Rt); /* 0x0e100a10 | 0xf00ff080 */
            } else {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x100fffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
        }
        }
    }
    case 2: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfb5f8000) == 0xf20f0000) {
                    goto insn_t2adrlabel_addr_unk_Rd_1_t2ADR; /* 0xf22f0000 | 0x04007fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xffd00fc0) == 0xf8000000) {
                    goto insn_rGPR_Rt_t2addrmode_so_reg_addr_S_2_t2STRBs; /* 0xf8000000 | 0x002ff03f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xffd00d00) == 0xf8000900) {
                    goto insn_rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST; /* 0xf8000900 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xffd00d00) == 0xf8000c00) {
                    goto insn_rGPR_Rt_t2addrmode_negimm8_addr_S_2_t2STRBi8; /* 0xf8000c00 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xffd00d00) == 0xf8000d00) {
                    goto insn_rGPR_Rt_t2addrmode_imm8_pre_addr_S_2_t2STRB_PRE; /* 0xf8000d00 | 0x002ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 6: {
                if ((op & 0xffd00f00) == 0xf8000e00) {
                    goto insn_t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT; /* 0xf8000e00 | 0x002ff0ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 3: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xef300000) == 0xec200000) {
                    insn_addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST:;
                    struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {23,8,1}}};
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST)(ctx, offset, addr); /* 0xec200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 3: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfed00fc0) == 0xf8100000) {
                    goto insn_t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs; /* 0xf8100000 | 0x012ff03f */
                } else {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x0120f8ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1:
            case 3: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100900) {
                        goto insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST; /* 0xf8100900 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 2: {
                if ((op & 0xfe5f0000) == 0xf81f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100c00) {
                        goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8100c00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 5:
            case 7: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100d00) {
                        goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8100d00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 6: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00f00) == 0xf8100e00) {
                        goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8100e00 | 0x012ff0ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 3: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xef300000) == 0xec300000) {
                    insn_addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST:;
                    struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {23,8,1}}};
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST)(ctx, offset, addr); /* 0xec300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 4: {
        switch ((op >> 25) & 0xf) {
        case 0:
        case 1:
        case 2:
        case 3:
        case 13:
            return P(unidentified)(ctx);
        case 4: {
            if ((op & 0xfff00000) == 0xe8400000) {
                struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {16,8,4}}};
                struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                return P(rGPR_Rt_t2addrmode_imm0_1020s4_addr_unk_Rd_S_1_t2STREX)(ctx, addr, Rd, Rt); /* 0xe8400000 | 0x000fffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 5: {
            if ((op & 0xffef70f0) == 0xea4f0000) {
                insn_GPR_Rm_unk_Rd_1_t2MOVr:;
                struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
                struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                return P(GPR_Rm_unk_Rd_1_t2MOVr)(ctx, Rm, Rd); /* 0xea4f0000 | 0x00108f0f */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 6:
        case 14: {
            if ((op & 0xff00fd0) == 0xc400b10) {
                goto insn_GPR_Rt_8_VMOVDRR; /* 0x0c400b10 | 0xf00ff02f */
            } else {
                if ((op & 0xefe00000) == 0xec400000) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xec400000 | 0x100fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
        }
        case 7:
        case 15: {
            if ((op & 0xef100010) == 0xee000010) {
                goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 8:
        case 10: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfbef8000) == 0xf04f0000) {
                    insn_unk_Rd_3_t2MOVTi16:;
                    struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                    return P(unk_Rd_3_t2MOVTi16)(ctx, Rd); /* 0xf04f0000 | 0x04107fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 9:
        case 11: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfb708000) == 0xf2400000) {
                    goto insn_unk_Rd_3_t2MOVTi16; /* 0xf2400000 | 0x048f7fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 12: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfff00fc0) == 0xf8400000) {
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,2,4}, {4,0,2}, {16,6,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(GPR_Rt_t2addrmode_so_reg_addr_S_1_t2STRs)(ctx, addr, Rt); /* 0xf8400000 | 0x000ff03f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xfff00d00) == 0xf8400900) {
                    struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(GPRnopc_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_1_t2STR_POST)(ctx, offset, Rt, Rn); /* 0xf8400900 | 0x000ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xfff00d00) == 0xf8400c00) {
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(GPR_Rt_t2addrmode_negimm8_addr_S_1_t2STRi8)(ctx, addr, Rt); /* 0xf8400c00 | 0x000ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xfff00d00) == 0xf8400d00) {
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {9,8,1}, {16,9,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(GPRnopc_Rt_t2addrmode_imm8_pre_addr_S_1_t2STR_PRE)(ctx, addr, Rt); /* 0xf8400d00 | 0x000ff2ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 6: {
                if ((op & 0xfff00f00) == 0xf8400e00) {
                    goto insn_t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT; /* 0xf8400e00 | 0x000ff0ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 5: {
        switch ((op >> 26) & 0x7) {
        case 0:
        case 1:
            return P(unidentified)(ctx);
        case 2: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xfff00f00) == 0xe8500f00) {
                    struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,8}, {16,8,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(t2addrmode_imm0_1020s4_addr_unk_Rt_1_t2LDREX)(ctx, addr, Rt); /* 0xe8500f00 | 0x000ff0ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xffef70f0) == 0xea4f0000) {
                    goto insn_GPR_Rm_unk_Rd_1_t2MOVr; /* 0xea4f0000 | 0x00108f0f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 3:
        case 7: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xff00ed0) == 0xc500a10) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0x0c500a10 | 0xf00ff12f */
                } else {
                    if ((op & 0xefe00000) == 0xec400000) {
                        goto insn_GPR_Rt_8_VMOVDRR; /* 0xec500000 | 0x100fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 5: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfbef8000) == 0xf04f0000) {
                    goto insn_unk_Rd_3_t2MOVTi16; /* 0xf04f0000 | 0x04107fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfff00fc0) == 0xf8500000) {
                    goto insn_t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs; /* 0xf8500000 | 0x000ff03f */
                } else {
                    if ((op & 0xff7f0000) == 0xf85f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0000f8ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1:
            case 3: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xff7f0000) == 0xf85f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfff00d00) == 0xf8500900) {
                        goto insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST; /* 0xf8500900 | 0x000ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 2: {
                if ((op & 0xff7f0000) == 0xf85f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xff7f0000) == 0xf85f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfff00d00) == 0xf8500c00) {
                        goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8500c00 | 0x000ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 5:
            case 7: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xff7f0000) == 0xf85f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfff00d00) == 0xf8500d00) {
                        goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8500d00 | 0x000ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 6: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xff7f0000) == 0xf85f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfff00f00) == 0xf8500e00) {
                        goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8500e00 | 0x000ff0ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 6:
    case 14: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 25) & 0x3) {
            case 0: {
                if ((op & 0xff700000) == 0xe8600000) {
                    insn_rGPR_Rt_addr_offset_none_addr_S_4_t2STL:;
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(rGPR_Rt_addr_offset_none_addr_S_4_t2STL)(ctx, Rt, addr); /* 0xe8600000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
                return P(unidentified)(ctx);
            case 2: {
                if ((op & 0xef300000) == 0xec200000) {
                    goto insn_addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST; /* 0xec200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 7: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 25) & 0x3) {
            case 0: {
                if ((op & 0xff700000) == 0xe8700000) {
                    insn_addr_offset_none_addr_unk_Rt_11_t2LDA:;
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(addr_offset_none_addr_unk_Rt_11_t2LDA)(ctx, Rt, addr); /* 0xe8700000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
                return P(unidentified)(ctx);
            case 2: {
                if ((op & 0xef300000) == 0xec300000) {
                    goto insn_addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST; /* 0xec300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 8: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfb5f8000) == 0xf20f0000) {
                    goto insn_t2adrlabel_addr_unk_Rd_1_t2ADR; /* 0xf28f0000 | 0x04007fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 25) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 5:
            case 8:
            case 9:
            case 10:
            case 11:
            case 13:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xffd0a000) == 0xe8800000) {
                    insn_GPR_Rn_reglist_regs_S_4_t2STMDB:;
                    struct bitslice regs = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,13}, {14,14,1}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(GPR_Rn_reglist_regs_S_4_t2STMDB)(ctx, regs, Rn); /* 0xe8800000 | 0x002f5fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 6:
            case 14: {
                if ((op & 0xefb00000) == 0xec800000) {
                    insn_addr_offset_none_addr_S_4_t2STC2L_OPTION:;
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(addr_offset_none_addr_S_4_t2STC2L_OPTION)(ctx, addr); /* 0xec800000 | 0x104fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 7:
            case 15: {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12: {
                if ((op & 0xffd00000) == 0xf8800000) {
                    insn_rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12:;
                    struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12)(ctx, addr, Rt); /* 0xf8800000 | 0x002fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 9: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2: {
            switch ((op >> 28) & 0x1) {
            case 0: {
                if ((op & 0xffd00000) == 0xe8900000) {
                    insn_GPR_Rn_reglist_regs_4_t2LDMDB:;
                    struct bitslice regs = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,16}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(GPR_Rn_reglist_regs_4_t2LDMDB)(ctx, regs, Rn); /* 0xe8900000 | 0x002fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                switch ((op >> 16) & 0xf) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14: {
                    if ((op & 0xfed00000) == 0xf8900000) {
                        insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12:;
                        struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}}};
                        struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                        return P(t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12)(ctx, addr, Rt); /* 0xf8900000 | 0x012fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 15: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 3: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xefb00000) == 0xec900000) {
                    insn_addr_offset_none_addr_4_t2LDC2L_OPTION:;
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(addr_offset_none_addr_4_t2LDC2L_OPTION)(ctx, addr); /* 0xec900000 | 0x104fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 10: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfb5f8000) == 0xf20f0000) {
                    goto insn_t2adrlabel_addr_unk_Rd_1_t2ADR; /* 0xf2af0000 | 0x04007fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 25) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 5:
            case 8:
            case 9:
            case 10:
            case 11:
            case 13:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xffd0a000) == 0xe8800000) {
                    goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe8800000 | 0x002f5fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 6:
            case 14: {
                if ((op & 0xef300000) == 0xec200000) {
                    goto insn_addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST; /* 0xec200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 7:
            case 15: {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12: {
                if ((op & 0xffd00000) == 0xf8800000) {
                    goto insn_rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12; /* 0xf8800000 | 0x002fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 11: {
        switch ((op >> 26) & 0x3) {
        case 0:
        case 1: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2: {
            switch ((op >> 28) & 0x1) {
            case 0: {
                if ((op & 0xffd00000) == 0xe8900000) {
                    goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe8900000 | 0x002fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                switch ((op >> 16) & 0xf) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14: {
                    if ((op & 0xfed00000) == 0xf8900000) {
                        goto insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12; /* 0xf8900000 | 0x012fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 15: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 3: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xef300000) == 0xec300000) {
                    goto insn_addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST; /* 0xec300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 12: {
        switch ((op >> 26) & 0x7) {
        case 0:
        case 1:
            return P(unidentified)(ctx);
        case 2: {
            switch ((op >> 4) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 6:
            case 11:
                return P(unidentified)(ctx);
            case 4: {
                if ((op & 0xfff00ff0) == 0xe8c00f40) {
                    insn_rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX:;
                    struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX)(ctx, Rd, Rt, addr); /* 0xe8c00f40 | 0x000ff00f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 13: {
                if ((op & 0xfff00f70) == 0xe8c00f50) {
                    goto insn_rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX; /* 0xe8c00f50 | 0x000ff08f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 7:
            case 15: {
                if ((op & 0xfff00070) == 0xe8c00070) {
                    goto insn_rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX; /* 0xe8c00070 | 0x000fff8f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xfff00fdf) == 0xe8c00f8f) {
                    goto insn_rGPR_Rt_addr_offset_none_addr_S_4_t2STL; /* 0xe8c00f8f | 0x000ff020 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9: {
                if ((op & 0xfff00fff) == 0xe8c00f9f) {
                    goto insn_rGPR_Rt_addr_offset_none_addr_S_4_t2STL; /* 0xe8c00f9f | 0x000ff000 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xfff00fd0) == 0xe8c00fc0) {
                    goto insn_rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX; /* 0xe8c00fc0 | 0x000ff02f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 3:
        case 7: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xefb00000) == 0xec800000) {
                    goto insn_addr_offset_none_addr_S_4_t2STC2L_OPTION; /* 0xec800000 | 0x104fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee000010) {
                    goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 5: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfb708000) == 0xf2400000) {
                    goto insn_unk_Rd_3_t2MOVTi16; /* 0xf2400000 | 0x048f7fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6: {
            if ((op & 0xfff00000) == 0xf8c00000) {
                struct bitslice addr = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}}};
                struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                return P(GPR_Rt_t2addrmode_imm12_addr_S_1_t2STRi12)(ctx, addr, Rt); /* 0xf8c00000 | 0x000fffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        }
    }
    case 13: {
        switch ((op >> 26) & 0x7) {
        case 0:
        case 1:
            return P(unidentified)(ctx);
        case 2: {
            switch ((op >> 4) & 0xf) {
            case 0:
            case 1: {
                if ((op & 0xfff0ffe0) == 0xe8d0f000) {
                    struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
                    return P(unk_Rm_B_2_t2TBB)(ctx, Rm); /* 0xe8d0f000 | 0x000f001f */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2:
            case 3:
            case 6:
            case 11:
                return P(unidentified)(ctx);
            case 4:
            case 5: {
                if ((op & 0xfff00fef) == 0xe8d00f4f) {
                    goto insn_addr_offset_none_addr_unk_Rt_11_t2LDA; /* 0xe8d00f4f | 0x000ff010 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 7:
            case 15: {
                if ((op & 0xfff0007f) == 0xe8d0007f) {
                    goto insn_addr_offset_none_addr_unk_Rt_11_t2LDA; /* 0xe8d0007f | 0x000fff80 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10:
            case 12:
            case 14: {
                if ((op & 0xfff00f9f) == 0xe8d00f8f) {
                    goto insn_addr_offset_none_addr_unk_Rt_11_t2LDA; /* 0xe8d00f8f | 0x000ff060 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 13: {
                if ((op & 0xfff00fbf) == 0xe8d00f9f) {
                    goto insn_addr_offset_none_addr_unk_Rt_11_t2LDA; /* 0xe8d00f9f | 0x000ff040 */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 3:
        case 7: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xefb00000) == 0xec900000) {
                    goto insn_addr_offset_none_addr_4_t2LDC2L_OPTION; /* 0xec900000 | 0x104fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef100010) == 0xee100010) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 5: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6: {
            switch ((op >> 16) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 14: {
                if ((op & 0xfff00000) == 0xf8d00000) {
                    goto insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12; /* 0xf8d00000 | 0x000fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 15: {
                if ((op & 0xff7f0000) == 0xf85f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf85f0000 | 0x0080ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 15: {
        switch ((op >> 25) & 0x7) {
        case 0:
        case 1:
        case 2:
        case 3: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4: {
            if ((op & 0xff700000) == 0xe8700000) {
                goto insn_addr_offset_none_addr_unk_Rt_11_t2LDA; /* 0xe8700000 | 0x008fffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 5:
            return P(unidentified)(ctx);
        case 6: {
            if ((op & 0xef300000) == 0xec300000) {
                goto insn_addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST; /* 0xec300000 | 0x10cfffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 7: {
            switch ((op >> 17) & 0x3) {
            case 0: {
                if ((op & 0xff60fff) == 0xef00a10) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0x0ef00a10 | 0xf009f000 */
                } else {
                    if ((op & 0xef100010) == 0xee100010) {
                        goto insn_unk_Rt_13_VMOVRRD; /* 0xeef00010 | 0x1009ffef */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1: {
                if ((op & 0xfff0fff) == 0xefa0a10) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0x0efa0a10 | 0xf000f000 */
                } else {
                    if ((op & 0xef100010) == 0xee100010) {
                        goto insn_unk_Rt_13_VMOVRRD; /* 0xeef20010 | 0x1009ffef */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 2: {
                if ((op & 0xfff0fff) == 0xef50a10) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0x0ef50a10 | 0xf000f000 */
                } else {
                    if ((op & 0xef100010) == 0xee100010) {
                        goto insn_unk_Rt_13_VMOVRRD; /* 0xeef40010 | 0x1009ffef */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 3: {
                if ((op & 0xffe0fff) == 0xef60a10) {
                    goto insn_unk_Rt_13_VMOVRRD; /* 0x0ef60a10 | 0xf001f000 */
                } else {
                    if ((op & 0xef100010) == 0xee100010) {
                        goto insn_unk_Rt_13_VMOVRRD; /* 0xeef60010 | 0x1009ffef */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            }
        }
        }
    }
    case 16: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfbe08000) == 0xf1000000) {
                    insn_GPRnopc_Rn_unk_Rd_2_t2ADDri:;
                    struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(GPRnopc_Rn_unk_Rd_2_t2ADDri)(ctx, Rd, Rn); /* 0xf1000000 | 0x041f7fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 25) & 0x3) {
            case 0: {
                if ((op & 0xffd0a000) == 0xe9000000) {
                    goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe9000000 | 0x002f5fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xffe070f0) == 0xeb000000) {
                    insn_GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr:;
                    struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
                    struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{8,0,4}}};
                    struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr)(ctx, Rm, Rd, Rn); /* 0xeb000000 | 0x001f8f0f */
                } else {
                    if ((op & 0xffe00000) == 0xeb000000) {
                        goto insn_GPRnopc_Rn_unk_Rd_2_t2ADDri; /* 0xeb000000 | 0x001fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 2: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        insn_addrmode5_addr_8_VLDRD:;
                        struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                        return P(addrmode5_addr_8_VLDRD)(ctx, addr); /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    insn_addrmode5_addr_S_4_t2STC2L_OFFSET:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    return P(addrmode5_addr_S_4_t2STC2L_OFFSET)(ctx, addr); /* 0xed000000 | 0x10cfffff */
                }
                }
            }
            case 3:
                return P(unidentified)(ctx);
            }
        }
        }
    }
    case 17: {
        switch ((op >> 26) & 0x7) {
        case 0:
        case 1:
            return P(unidentified)(ctx);
        case 2: {
            switch ((op >> 25) & 0x1) {
            case 0: {
                if ((op & 0xffd00000) == 0xe9100000) {
                    goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe9100000 | 0x002fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xffe070f0) == 0xeb000000) {
                    goto insn_GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr; /* 0xeb000000 | 0x001f8f0f */
                } else {
                    if ((op & 0xffe00000) == 0xeb000000) {
                        goto insn_GPRnopc_Rn_unk_Rd_2_t2ADDri; /* 0xeb000000 | 0x001fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            }
        }
        case 3:
        case 7: {
            switch ((op >> 29) & 0x7) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6: {
                if ((op & 0xf200e00) == 0xd000a00) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 7: {
                if ((op & 0xef300000) == 0xed100000) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 5: {
            switch ((op >> 12) & 0xf) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7: {
                if ((op & 0xfbe08000) == 0xf1000000) {
                    goto insn_GPRnopc_Rn_unk_Rd_2_t2ADDri; /* 0xf1000000 | 0x041f7fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 8:
            case 10: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 9:
            case 11: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 12:
            case 14: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 13:
            case 15: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfed00fc0) == 0xf8100000) {
                    goto insn_t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs; /* 0xf8100000 | 0x012ff03f */
                } else {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x0120f8ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1:
            case 3: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100900) {
                        goto insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST; /* 0xf8100900 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 2: {
                if ((op & 0xfe5f0000) == 0xf81f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100c00) {
                        goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8100c00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 5:
            case 7: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100d00) {
                        goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8100d00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 6: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00f00) == 0xf8100e00) {
                        goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8100e00 | 0x012ff0ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 18: {
        switch ((op >> 12) & 0xf) {
        case 0:
        case 1:
        case 4:
        case 5: {
            switch ((op >> 26) & 0x1) {
            case 0: {
                if ((op & 0xffd0a000) == 0xe9000000) {
                    goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe9000000 | 0x002f5fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    insn_addrmode5_pre_addr_S_4_t2STC2L_PRE:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    return P(addrmode5_pre_addr_S_4_t2STC2L_PRE)(ctx, addr); /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2:
        case 3:
        case 6:
        case 7: {
            if ((op & 0xef300000) == 0xed200000) {
                goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 8:
        case 10: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 9:
        case 11: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 12:
        case 14: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 13:
        case 15: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 19: {
        switch ((op >> 26) & 0x7) {
        case 0:
        case 1:
            return P(unidentified)(ctx);
        case 2: {
            if ((op & 0xffd00000) == 0xe9100000) {
                goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe9100000 | 0x002fffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 3:
        case 7: {
            if ((op & 0xef300000) == 0xed300000) {
                insn_addrmode5_pre_addr_4_t2LDC2L_PRE:;
                struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                return P(addrmode5_pre_addr_4_t2LDC2L_PRE)(ctx, addr); /* 0xed300000 | 0x10cfffff */
            } else {
                return P(unidentified)(ctx);
            }
        }
        case 4:
        case 5: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6: {
            switch ((op >> 8) & 0x7) {
            case 0: {
                if ((op & 0xfed00fc0) == 0xf8100000) {
                    goto insn_t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs; /* 0xf8100000 | 0x012ff03f */
                } else {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x0120f8ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1:
            case 3: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100900) {
                        goto insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST; /* 0xf8100900 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 2: {
                if ((op & 0xfe5f0000) == 0xf81f0000) {
                    goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100c00) {
                        goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8100c00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 5:
            case 7: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00d00) == 0xf8100d00) {
                        goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8100d00 | 0x012ff2ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 6: {
                switch ((op >> 11) & 0x1) {
                case 0: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xfed00f00) == 0xf8100e00) {
                        goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8100e00 | 0x012ff0ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 20: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 26) & 0x1) {
            case 0: {
                if ((op & 0xff700000) == 0xe9400000) {
                    insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8)(ctx, addr, Rt); /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 21:
    case 29: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 26) & 0x1) {
            case 0: {
                if ((op & 0xff700000) == 0xe9500000) {
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(t2addrmode_imm8s4_addr_unk_Rt_1_t2LDRDi8)(ctx, addr, Rt); /* 0xe9500000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed100000) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 22:
    case 30: {
        switch ((op >> 12) & 0x7) {
        case 0:
        case 2: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9600000) {
                    insn_rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE)(ctx, addr, Rt); /* 0xe9600000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1:
        case 3: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9600000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE; /* 0xe9600000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 6: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9600000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE; /* 0xe9600000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 5:
        case 7: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9600000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE; /* 0xe9600000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 23:
    case 31: {
        switch ((op >> 12) & 0x7) {
        case 0:
        case 2: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9700000) {
                    insn_t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE:;
                    struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
                    struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
                    return P(t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE)(ctx, addr, Rt); /* 0xe9700000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed300000) {
                    goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1:
        case 3: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9700000) {
                    goto insn_t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE; /* 0xe9700000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed300000) {
                    goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 6: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9700000) {
                    goto insn_t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE; /* 0xe9700000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed300000) {
                    goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 5:
        case 7: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9700000) {
                    goto insn_t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE; /* 0xe9700000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed300000) {
                    goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 24: {
        switch ((op >> 12) & 0x7) {
        case 0:
        case 2: {
            switch ((op >> 27) & 0x1f) {
            case 0:
            case 2:
            case 4:
            case 6:
            case 8:
            case 10:
            case 12:
            case 14:
            case 16:
            case 18:
            case 20:
            case 22:
            case 24:
            case 26:
            case 28:
                return P(unidentified)(ctx);
            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
            case 13:
            case 15:
            case 17:
            case 19:
            case 21:
            case 23:
            case 25:
            case 27: {
                if ((op & 0xf200e00) == 0xd000a00) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 29:
            case 31: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 30: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1:
        case 3: {
            switch ((op >> 27) & 0x1f) {
            case 0:
            case 2:
            case 4:
            case 6:
            case 8:
            case 10:
            case 12:
            case 14:
            case 16:
            case 18:
            case 20:
            case 22:
            case 24:
            case 26:
            case 28:
                return P(unidentified)(ctx);
            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
            case 13:
            case 15:
            case 17:
            case 19:
            case 21:
            case 23:
            case 25:
            case 27: {
                if ((op & 0xf200e00) == 0xd000a00) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 29:
            case 31: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 30: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 6: {
            switch ((op >> 27) & 0x1f) {
            case 0:
            case 2:
            case 4:
            case 6:
            case 8:
            case 10:
            case 12:
            case 14:
            case 16:
            case 18:
            case 20:
            case 22:
            case 24:
            case 26:
            case 28:
                return P(unidentified)(ctx);
            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
            case 13:
            case 15:
            case 17:
            case 19:
            case 21:
            case 23:
            case 25:
            case 27: {
                if ((op & 0xf200e00) == 0xd000a00) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 29:
            case 31: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 30: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 5:
        case 7: {
            switch ((op >> 27) & 0x1f) {
            case 0:
            case 2:
            case 4:
            case 6:
            case 8:
            case 10:
            case 12:
            case 14:
            case 16:
            case 18:
            case 20:
            case 22:
            case 24:
            case 26:
            case 28:
                return P(unidentified)(ctx);
            case 1:
            case 3:
            case 5:
            case 7:
            case 9:
            case 11:
            case 13:
            case 15:
            case 17:
            case 19:
            case 21:
            case 23:
            case 25:
            case 27: {
                if ((op & 0xf200e00) == 0xd000a00) {
                    goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 29:
            case 31: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 30: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 25: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 26) & 0x1) {
            case 0: {
                switch ((op >> 16) & 0xf) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14: {
                    if ((op & 0xfed00000) == 0xf8900000) {
                        goto insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12; /* 0xf8900000 | 0x012fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 15: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 1: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed100000) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    case 26: {
        switch ((op >> 12) & 0x7) {
        case 0:
        case 2: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1:
        case 3: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 4:
        case 6: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 5:
        case 7: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed200000) {
                    goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 27: {
        switch ((op >> 27) & 0x1) {
        case 0: {
            switch ((op >> 12) & 0x7) {
            case 0:
            case 2: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 1:
            case 3: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 4:
            case 6: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 5:
            case 7: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 1: {
            switch ((op >> 26) & 0x1) {
            case 0: {
                switch ((op >> 16) & 0xf) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14: {
                    if ((op & 0xfed00000) == 0xf8900000) {
                        goto insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12; /* 0xf8900000 | 0x012fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 15: {
                    if ((op & 0xfe5f0000) == 0xf81f0000) {
                        goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            case 1: {
                if ((op & 0xef300000) == 0xed300000) {
                    goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        }
    }
    case 28: {
        switch ((op >> 10) & 0x1f) {
        case 0:
        case 1:
        case 8:
        case 9:
        case 11: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 2:
        case 10: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0008000) {
                    goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 3: {
            switch ((op >> 27) & 0x1) {
            case 0: {
                if ((op & 0xfff0ffff) == 0xf3c08f00) {
                    struct bitslice func = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
                    return P(rGPR_func_1_t2BXJ)(ctx, func); /* 0xf3c08f00 | 0x000f0000 */
                } else {
                    if ((op & 0xf800d000) == 0xf0008000) {
                        goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf1c08c00 | 0x060f03ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
            }
            case 1: {
                switch ((op >> 26) & 0x1) {
                case 0: {
                    if ((op & 0xff700000) == 0xe9400000) {
                        goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 1: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 4:
        case 5:
        case 7:
        case 12:
        case 13:
        case 15: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 6:
        case 14: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf0009000) {
                    goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 16:
        case 17:
        case 19:
        case 24:
        case 25:
        case 27: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 18:
        case 26: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d001) == 0xf000c000) {
                    goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        case 20:
        case 21:
        case 23:
        case 28:
        case 29:
        case 31: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                if ((op & 0xef300000) == 0xed000000) {
                    goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            }
        }
        case 22:
        case 30: {
            switch ((op >> 26) & 0x3) {
            case 0:
            case 1: {
                if ((op & 0xf800d000) == 0xf000d000) {
                    goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 2: {
                if ((op & 0xff700000) == 0xe9400000) {
                    goto insn_rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8; /* 0xe9400000 | 0x008fffff */
                } else {
                    return P(unidentified)(ctx);
                }
            }
            case 3: {
                switch ((op >> 29) & 0x7) {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6: {
                    if ((op & 0xf200e00) == 0xd000a00) {
                        goto insn_addrmode5_addr_8_VLDRD; /* 0x0d000a00 | 0xf0dff1ff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                case 7: {
                    if ((op & 0xef300000) == 0xed000000) {
                        goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
                    } else {
                        return P(unidentified)(ctx);
                    }
                }
                }
            }
            }
        }
        }
    }
    }
/*
static INLINE tdis_ret P(GPR_Rm_unk_Rd_1_t2MOVr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rd) {}
static INLINE tdis_ret P(GPR_Rn_reglist_regs_4_t2LDMDB)(struct bitslice ctx, struct bitslice regs, struct bitslice Rn) {}
static INLINE tdis_ret P(GPR_Rn_reglist_regs_S_4_t2STMDB)(struct bitslice ctx, struct bitslice regs, struct bitslice Rn) {}
static INLINE tdis_ret P(GPR_Rn_unk_Rd_1_t2ADDri12)(struct bitslice ctx, struct bitslice Rd, struct bitslice Rn) {}
static INLINE tdis_ret P(GPR_Rt_8_VMOVDRR)(struct bitslice ctx, struct bitslice Rt) {}
static INLINE tdis_ret P(GPR_Rt_t2addrmode_imm12_addr_S_1_t2STRi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(GPR_Rt_t2addrmode_negimm8_addr_S_1_t2STRi8)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(GPR_Rt_t2addrmode_so_reg_addr_S_1_t2STRs)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rd, struct bitslice Rn) {}
static INLINE tdis_ret P(GPRnopc_Rn_unk_Rd_2_t2ADDri)(struct bitslice ctx, struct bitslice Rd, struct bitslice Rn) {}
static INLINE tdis_ret P(GPRnopc_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_1_t2STR_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice Rn) {}
static INLINE tdis_ret P(GPRnopc_Rt_t2addrmode_imm8_pre_addr_S_1_t2STR_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice Rn) {}
static INLINE tdis_ret P(addr_offset_none_addr_4_t2LDC2L_OPTION)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addr_offset_none_addr_S_4_t2STC2L_OPTION)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice addr) {}
static INLINE tdis_ret P(addr_offset_none_addr_postidx_imm8s4_offset_S_4_t2STC2L_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice addr) {}
static INLINE tdis_ret P(addr_offset_none_addr_unk_Rt_11_t2LDA)(struct bitslice ctx, struct bitslice Rt, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_addr_8_VLDRD)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_addr_S_4_t2STC2L_OFFSET)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_pre_addr_4_t2LDC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_pre_addr_S_4_t2STC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(brtarget_target_pred_p_B_1_t2Bcc)(struct bitslice ctx, struct bitslice target, struct bitslice p) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice Rn) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_addr_S_4_t2STL)(struct bitslice ctx, struct bitslice Rt, struct bitslice addr) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX)(struct bitslice ctx, struct bitslice Rd, struct bitslice Rt, struct bitslice addr) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm0_1020s4_addr_unk_Rd_S_1_t2STREX)(struct bitslice ctx, struct bitslice addr, struct bitslice Rd, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm8_pre_addr_S_2_t2STRB_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm8s4_pre_addr_S_1_t2STRD_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_negimm8_addr_S_2_t2STRBi8)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_Rt_t2addrmode_so_reg_addr_S_2_t2STRBs)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(rGPR_func_1_t2BXJ)(struct bitslice ctx, struct bitslice func) {}
static INLINE tdis_ret P(t2addrmode_imm0_1020s4_addr_unk_Rt_1_t2LDREX)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_imm8_addr_unk_Rt_S_3_t2STRBT)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_imm8s4_addr_unk_Rt_1_t2LDRDi8)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_imm8s4_pre_addr_unk_Rt_1_t2LDRD_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2addrmode_so_reg_addr_unk_Rt_5_t2LDRBs)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t2adrlabel_addr_unk_Rd_1_t2ADR)(struct bitslice ctx, struct bitslice addr, struct bitslice Rd) {}
static INLINE tdis_ret P(t2ldrlabel_addr_unk_Rt_5_t2LDRBpci)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
static INLINE tdis_ret P(t_bltarget_func_1_tBL)(struct bitslice ctx, struct bitslice func) {}
static INLINE tdis_ret P(t_blxtarget_func_1_tBLXi)(struct bitslice ctx, struct bitslice func) {}
static INLINE tdis_ret P(uncondbrtarget_target_B_1_t2B)(struct bitslice ctx, struct bitslice target) {}
static INLINE tdis_ret P(unk_Rd_3_t2MOVTi16)(struct bitslice ctx, struct bitslice Rd) {}
static INLINE tdis_ret P(unk_Rm_B_2_t2TBB)(struct bitslice ctx, struct bitslice Rm) {}
static INLINE tdis_ret P(unk_Rt_13_VMOVRRD)(struct bitslice ctx, struct bitslice Rt) {}
*/

