aboutsummaryrefslogtreecommitdiff
path: root/generated/generic-dis-arm.inc.h
diff options
context:
space:
mode:
authorcomex2015-01-21 18:24:23 -0500
committercomex2015-01-21 18:27:32 -0500
commit4bdad293ee59241af1e19cac1c61089aa77eba84 (patch)
tree8ecce10290b470b8a9674d9083b0d9d75a9570ff /generated/generic-dis-arm.inc.h
parentstopping other threads. (diff)
downloadsubstitute-4bdad293ee59241af1e19cac1c61089aa77eba84.tar.gz
Current version of generic-dis-*, for posterity (I'm sure it'll need to be changed...)
and apparently i changed something in inject-asm
Diffstat (limited to 'generated/generic-dis-arm.inc.h')
-rw-r--r--generated/generic-dis-arm.inc.h1946
1 files changed, 1946 insertions, 0 deletions
diff --git a/generated/generic-dis-arm.inc.h b/generated/generic-dis-arm.inc.h
new file mode 100644
index 0000000..e312884
--- /dev/null
+++ b/generated/generic-dis-arm.inc.h
@@ -0,0 +1,1946 @@
+/* Generated code; do not edit!
+ generated by tables/gen.js from imaon2 '2b8112204067abe3d0643e23c2486656841ecafe'
+ https://github.com/comex/imaon2
+ arguments: '--gen-hook-disassembler -n _arm --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.
+*/
+
+/* GPR_Rn_unk_Rd_1_ADDri: ADDri */
+/* GPR_Rn_GPR_Rm_unk_Rd_1_ADDrr: ADDrr */
+/* GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi: ADDrsi */
+/* GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr: ADDrsr */
+/* adrlabel_label_unk_Rd_1_ADR: ADR */
+/* GPR_dst_B_2_BX: BX, BX_pred */
+/* br_target_target_B_1_Bcc: Bcc */
+/* addr_offset_none_addr_unk_Rt_13_LDA: LDA, LDAB, LDAEX, LDAEXB, LDAEXD, LDAEXH, LDAH, LDREX, LDREXB, LDREXD, LDREXH, SWP, SWPB */
+/* addrmode5_addr_8_LDC2L_OFFSET: LDC2L_OFFSET, LDC2_OFFSET, LDCL_OFFSET, LDC_OFFSET, VLDRD, VLDRS, VSTRD, VSTRS */
+/* addr_offset_none_addr_4_LDC2L_OPTION: LDC2L_OPTION, LDC2_OPTION, LDCL_OPTION, LDC_OPTION */
+/* addr_offset_none_addr_postidx_imm8s4_offset_4_LDC2L_POST: LDC2L_POST, LDC2_POST, LDCL_POST, LDC_POST */
+/* addrmode5_pre_addr_4_LDC2L_PRE: LDC2L_PRE, LDC2_PRE, LDCL_PRE, LDC_PRE */
+/* GPR_Rn_reglist_regs_16_LDMDA: LDMDA, LDMDA_UPD, LDMDB, LDMDB_UPD, LDMIA, LDMIA_UPD, LDMIB, LDMIB_UPD, sysLDMDA, sysLDMDA_UPD, sysLDMDB, sysLDMDB_UPD, sysLDMIA, sysLDMIA_UPD, sysLDMIB, sysLDMIB_UPD */
+/* addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM: LDRBT_POST_IMM, LDRB_POST_IMM, LDRT_POST_IMM, LDR_POST_IMM */
+/* addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG: LDRBT_POST_REG, LDRB_POST_REG, LDRT_POST_REG, LDR_POST_REG */
+/* addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM: LDRB_PRE_IMM, LDR_PRE_IMM */
+/* ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG: LDRB_PRE_REG, LDR_PRE_REG */
+/* addrmode_imm12_addr_unk_Rt_2_LDRBi12: LDRBi12, LDRi12 */
+/* ldst_so_reg_shift_unk_Rt_2_LDRBrs: LDRBrs, LDRrs */
+/* addrmode3_addr_unk_Rt_4_LDRD: LDRD, LDRH, LDRSB, LDRSH */
+/* addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST: LDRD_POST, LDRH_POST, LDRSB_POST, LDRSH_POST */
+/* addrmode3_pre_addr_unk_Rt_4_LDRD_PRE: LDRD_PRE, LDRH_PRE, LDRSB_PRE, LDRSH_PRE */
+/* addr_offset_none_addr_postidx_imm8_offset_unk_Rt_3_LDRHTi: LDRHTi, LDRSBTi, LDRSHTi */
+/* addr_offset_none_addr_postidx_reg_Rm_unk_Rt_3_LDRHTr: LDRHTr, LDRSBTr, LDRSHTr */
+/* GPR_Rt_4_MCR: MCR, MCR2, VMOVDRR, VMOVSR */
+/* GPRnopc_Rt_4_MCRR: MCRR, MCRR2, MRRC, MRRC2 */
+/* unk_Rd_5_MOVTi16: MOVTi16, MOVi, MOVi16, MOVsi, MOVsr */
+/* GPR_Rm_unk_Rd_1_MOVr: MOVr */
+/* tcGPR_Rm_unk_Rd_1_MOVr_TC: MOVr_TC */
+/* unk_Rt_13_MRC: MRC, MRC2, VMOVRRD, VMOVRRS, VMOVRS, VMRS, VMRS_FPEXC, VMRS_FPINST, VMRS_FPINST2, VMRS_FPSID, VMRS_MVFR0, VMRS_MVFR1, VMRS_MVFR2 */
+/* addrmode5_addr_S_4_STC2L_OFFSET: STC2L_OFFSET, STC2_OFFSET, STCL_OFFSET, STC_OFFSET */
+/* addr_offset_none_addr_S_4_STC2L_OPTION: STC2L_OPTION, STC2_OPTION, STCL_OPTION, STC_OPTION */
+/* addr_offset_none_addr_postidx_imm8s4_offset_S_4_STC2L_POST: STC2L_POST, STC2_POST, STCL_POST, STC_POST */
+/* addrmode5_pre_addr_S_4_STC2L_PRE: STC2L_PRE, STC2_PRE, STCL_PRE, STC_PRE */
+/* GPR_Rt_addr_offset_none_addr_S_3_STL: STL, STLB, STLH */
+/* GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX: STLEX, STLEXB, STLEXH, STREX, STREXB, STREXH */
+/* GPRPairOp_Rt_addr_offset_none_addr_unk_Rd_S_2_STLEXD: STLEXD, STREXD */
+/* GPR_Rn_reglist_regs_S_16_STMDA: STMDA, STMDA_UPD, STMDB, STMDB_UPD, STMIA, STMIA_UPD, STMIB, STMIB_UPD, sysSTMDA, sysSTMDA_UPD, sysSTMDB, sysSTMDB_UPD, sysSTMIA, sysSTMIA_UPD, sysSTMIB, sysSTMIB_UPD */
+/* GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM: STRBT_POST_IMM, STRB_POST_IMM, STRT_POST_IMM, STR_POST_IMM */
+/* GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG: STRBT_POST_REG, STRB_POST_REG, STRT_POST_REG, STR_POST_REG */
+/* GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM: STRB_PRE_IMM, STR_PRE_IMM */
+/* GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG: STRB_PRE_REG, STR_PRE_REG */
+/* GPRnopc_Rt_addrmode_imm12_addr_S_1_STRBi12: STRBi12 */
+/* GPRnopc_Rt_ldst_so_reg_shift_S_1_STRBrs: STRBrs */
+/* GPR_Rt_addrmode3_addr_S_2_STRD: STRD, STRH */
+/* GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST: STRD_POST, STRH_POST */
+/* GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE: STRD_PRE, STRH_PRE */
+/* GPR_Rt_addr_offset_none_addr_postidx_imm8_offset_S_1_STRHTi: STRHTi */
+/* GPR_Rt_addr_offset_none_addr_postidx_reg_Rm_S_1_STRHTr: STRHTr */
+/* GPR_Rt_addrmode_imm12_addr_S_1_STRi12: STRi12 */
+/* GPR_Rt_ldst_so_reg_shift_S_1_STRrs: STRrs */
+ switch ((op >> 20) & 0x1f) {
+ case 0: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST:;
+ struct bitslice offset = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {22,9,1}, {23,8,1}}};
+ 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_am3offset_offset_unk_Rt_4_LDRD_POST)(ctx, offset, Rt, addr); /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0xb0) {
+ insn_GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST:;
+ struct bitslice offset = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {22,9,1}, {23,8,1}}};
+ 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(GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST)(ctx, offset, Rt, addr); /* 0x000000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ if ((op & 0xf3f0000) == 0x20f0000) {
+ insn_adrlabel_label_unk_Rd_1_ADR:;
+ struct bitslice label = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {22,12,2}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(adrlabel_label_unk_Rd_1_ADR)(ctx, label, Rd); /* 0x020f0000 | 0xf0c0ffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM:;
+ struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {23,12,1}}};
+ 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(GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM)(ctx, offset, Rt, addr); /* 0x04000000 | 0xf0efffff */
+ }
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG:;
+ struct bitslice offset = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {23,12,1}}};
+ 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(GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG)(ctx, offset, Rt, addr); /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4: {
+ insn_GPR_Rn_reglist_regs_S_16_STMDA:;
+ 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_S_16_STMDA)(ctx, regs, Rn); /* 0x08000000 | 0xf1efffff */
+ }
+ case 5: {
+ insn_br_target_target_B_1_Bcc:;
+ struct bitslice target = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,24}}};
+ return P(br_target_target_B_1_Bcc)(ctx, target); /* 0x0a000000 | 0xf0ffffff */
+ }
+ case 6:
+ return P(unidentified)(ctx);
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ insn_GPR_Rt_4_MCR:;
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_4_MCR)(ctx, Rt); /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x1000b0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x001000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM:;
+ struct bitslice offset = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,12}, {23,12,1}}};
+ 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_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM)(ctx, offset, Rt, addr); /* 0x04100000 | 0xf0efffff */
+ }
+ case 1: {
+ if ((op & 0xf100010) == 0x6100000) {
+ insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG:;
+ struct bitslice offset = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {23,12,1}}};
+ 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_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG)(ctx, offset, Rt, addr); /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_GPR_Rn_reglist_regs_16_LDMDA:;
+ 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_16_LDMDA)(ctx, regs, Rn); /* 0x08100000 | 0xf1efffff */
+ }
+ case 1:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ }
+ }
+ case 3: {
+ if ((op & 0xf100010) == 0xe100010) {
+ insn_unk_Rt_13_MRC:;
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(unk_Rt_13_MRC)(ctx, Rt); /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2:
+ case 10: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ if ((op & 0xf700ff0) == 0x2000b0) {
+ struct bitslice Rm = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,4}, {23,4,1}}};
+ 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(GPR_Rt_addr_offset_none_addr_postidx_reg_Rm_S_1_STRHTr)(ctx, Rm, Rt, addr); /* 0x002000b0 | 0xf08ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ return P(unidentified)(ctx);
+ case 2:
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM; /* 0x04000000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG; /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6: {
+ insn_addr_offset_none_addr_postidx_imm8s4_offset_S_4_STC2L_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_STC2L_POST)(ctx, offset, addr); /* 0x0c200000 | 0xf0cfffff */
+ }
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 3:
+ case 11: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf700ff0) == 0x3000d0) {
+ insn_addr_offset_none_addr_postidx_reg_Rm_unk_Rt_3_LDRHTr:;
+ struct bitslice Rm = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,4}, {23,4,1}}};
+ 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_postidx_reg_Rm_unk_Rt_3_LDRHTr)(ctx, Rm, Rt, addr); /* 0x003000d0 | 0xf08ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf700fb0) == 0x3000b0) {
+ goto insn_addr_offset_none_addr_postidx_reg_Rm_unk_Rt_3_LDRHTr; /* 0x003000b0 | 0xf08ff04f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM; /* 0x04100000 | 0xf0efffff */
+ case 1: {
+ if ((op & 0xf100010) == 0x6100000) {
+ goto insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG; /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 1:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ }
+ }
+ case 3: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_addr_offset_none_addr_postidx_imm8s4_offset_4_LDC2L_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_LDC2L_POST)(ctx, offset, addr); /* 0x0c300000 | 0xf0cfffff */
+ }
+ case 1: {
+ if ((op & 0xf100010) == 0xe100010) {
+ goto insn_unk_Rt_13_MRC; /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+ }
+ case 4: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0xb0) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST; /* 0x000000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ if ((op & 0xf3f0000) == 0x20f0000) {
+ goto insn_adrlabel_label_unk_Rd_1_ADR; /* 0x020f0000 | 0xf0c0ffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2:
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM; /* 0x04000000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG; /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6: {
+ if ((op & 0xff00fd0) == 0xc400b10) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0c400b10 | 0xf00ff02f */
+ } else {
+ insn_GPRnopc_Rt_4_MCRR:;
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPRnopc_Rt_4_MCRR)(ctx, Rt); /* 0x0c400000 | 0xf00fffff */
+ }
+ }
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 5: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x1000b0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x001000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1:
+ return P(unidentified)(ctx);
+ case 2:
+ goto insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM; /* 0x04100000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6100000) {
+ goto insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG; /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6: {
+ if ((op & 0xff00ed0) == 0xc500a10) {
+ goto insn_unk_Rt_13_MRC; /* 0x0c500a10 | 0xf00ff12f */
+ } else {
+ goto insn_GPRnopc_Rt_4_MCRR; /* 0x0c500000 | 0xf00fffff */
+ }
+ }
+ case 7: {
+ if ((op & 0xf100010) == 0xe100010) {
+ goto insn_unk_Rt_13_MRC; /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 6:
+ case 14: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ if ((op & 0xf7000f0) == 0x6000b0) {
+ struct bitslice offset = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {23,8,1}}};
+ 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(GPR_Rt_addr_offset_none_addr_postidx_imm8_offset_S_1_STRHTi)(ctx, offset, Rt, addr); /* 0x006000b0 | 0xf08fff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ return P(unidentified)(ctx);
+ case 2:
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM; /* 0x04000000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG; /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6:
+ goto insn_addr_offset_none_addr_postidx_imm8s4_offset_S_4_STC2L_POST; /* 0x0c200000 | 0xf0cfffff */
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 7:
+ case 15: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf7000f0) == 0x7000d0) {
+ insn_addr_offset_none_addr_postidx_imm8_offset_unk_Rt_3_LDRHTi:;
+ struct bitslice offset = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {23,8,1}}};
+ 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_postidx_imm8_offset_unk_Rt_3_LDRHTi)(ctx, offset, Rt, addr); /* 0x007000d0 | 0xf08fff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf7000b0) == 0x7000b0) {
+ goto insn_addr_offset_none_addr_postidx_imm8_offset_unk_Rt_3_LDRHTi; /* 0x007000b0 | 0xf08fff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM; /* 0x04100000 | 0xf0efffff */
+ case 1: {
+ if ((op & 0xf100010) == 0x6100000) {
+ goto insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG; /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 1:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ }
+ }
+ case 3: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addr_offset_none_addr_postidx_imm8s4_offset_4_LDC2L_POST; /* 0x0c300000 | 0xf0cfffff */
+ case 1: {
+ if ((op & 0xf100010) == 0xe100010) {
+ goto insn_unk_Rt_13_MRC; /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+ }
+ case 8: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 4) & 0x3) {
+ case 0: {
+ if ((op & 0xfe00ff0) == 0x800000) {
+ insn_GPR_Rn_GPR_Rm_unk_Rd_1_ADDrr:;
+ struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rn_GPR_Rm_unk_Rd_1_ADDrr)(ctx, Rm, Rd, Rn); /* 0x00800000 | 0xf01ff00f */
+ } else {
+ insn_GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi:;
+ struct bitslice shift = {.nruns = 2, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi)(ctx, shift, Rd, Rn); /* 0x00800000 | 0xf01fffcf */
+ }
+ }
+ case 1: {
+ switch ((op >> 7) & 0x1) {
+ case 0: {
+ insn_GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr:;
+ struct bitslice shift = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,2}, {8,8,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr)(ctx, shift, Rd, Rn); /* 0x00800010 | 0xf01fff6f */
+ }
+ case 1: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2:
+ goto insn_GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi; /* 0x00800000 | 0xf01fffef */
+ case 3: {
+ switch ((op >> 7) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr; /* 0x00800010 | 0xf01fff6f */
+ case 1:
+ goto insn_GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST; /* 0x000000b0 | 0xf0cfff4f */
+ }
+ }
+ }
+ }
+ 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: {
+ insn_GPR_Rn_unk_Rd_1_ADDri:;
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice Rn = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rn_unk_Rd_1_ADDri)(ctx, Rd, Rn); /* 0x02800000 | 0xf01fffff */
+ }
+ case 15:
+ goto insn_adrlabel_label_unk_Rd_1_ADR; /* 0x020f0000 | 0xf0c0ffff */
+ }
+ }
+ case 2:
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM; /* 0x04000000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG; /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6: {
+ insn_addr_offset_none_addr_S_4_STC2L_OPTION:;
+ struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(addr_offset_none_addr_S_4_STC2L_OPTION)(ctx, addr); /* 0x0c800000 | 0xf04fffff */
+ }
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 9: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 4) & 0x3) {
+ case 0: {
+ if ((op & 0xfe00ff0) == 0x800000) {
+ goto insn_GPR_Rn_GPR_Rm_unk_Rd_1_ADDrr; /* 0x00800000 | 0xf01ff00f */
+ } else {
+ goto insn_GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi; /* 0x00800000 | 0xf01fffcf */
+ }
+ }
+ case 1: {
+ switch ((op >> 7) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr; /* 0x00800010 | 0xf01fff6f */
+ case 1: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2:
+ goto insn_GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi; /* 0x00800000 | 0xf01fffef */
+ case 3: {
+ switch ((op >> 7) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr; /* 0x00800010 | 0xf01fff6f */
+ case 1:
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x001000b0 | 0xf0cfff4f */
+ }
+ }
+ }
+ }
+ case 1:
+ goto insn_GPR_Rn_unk_Rd_1_ADDri; /* 0x02800000 | 0xf01fffff */
+ case 2:
+ goto insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM; /* 0x04100000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6100000) {
+ goto insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG; /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6: {
+ insn_addr_offset_none_addr_4_LDC2L_OPTION:;
+ struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(addr_offset_none_addr_4_LDC2L_OPTION)(ctx, addr); /* 0x0c900000 | 0xf04fffff */
+ }
+ case 7: {
+ if ((op & 0xf100010) == 0xe100010) {
+ goto insn_unk_Rt_13_MRC; /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 12: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0xb0) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST; /* 0x000000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ if ((op & 0xf3f0000) == 0x20f0000) {
+ goto insn_adrlabel_label_unk_Rd_1_ADR; /* 0x020f0000 | 0xf0c0ffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2:
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM; /* 0x04000000 | 0xf0efffff */
+ case 3: {
+ if ((op & 0xf100010) == 0x6000000) {
+ goto insn_GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG; /* 0x06000000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ case 6:
+ goto insn_addr_offset_none_addr_S_4_STC2L_OPTION; /* 0x0c800000 | 0xf04fffff */
+ case 7: {
+ if ((op & 0xf100010) == 0xe000010) {
+ goto insn_GPR_Rt_4_MCR; /* 0x0e000010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 13: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0xd0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x000000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x1000b0) {
+ goto insn_addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST; /* 0x001000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM; /* 0x04100000 | 0xf0efffff */
+ case 1: {
+ if ((op & 0xf100010) == 0x6100000) {
+ goto insn_addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG; /* 0x06100000 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 1:
+ goto insn_br_target_target_B_1_Bcc; /* 0x0a000000 | 0xf0ffffff */
+ }
+ }
+ case 3: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addr_offset_none_addr_4_LDC2L_OPTION; /* 0x0c900000 | 0xf04fffff */
+ case 1: {
+ if ((op & 0xf100010) == 0xe100010) {
+ goto insn_unk_Rt_13_MRC; /* 0x0e100010 | 0xf0efffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+ }
+ case 16: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x3) {
+ case 0: {
+ if ((op & 0xfb00ff0) == 0x1000090) {
+ insn_addr_offset_none_addr_unk_Rt_13_LDA:;
+ 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_13_LDA)(ctx, Rt, addr); /* 0x01000090 | 0xf04ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ case 3: {
+ if ((op & 0xf3000b0) == 0x10000b0) {
+ insn_GPR_Rt_addrmode3_addr_S_2_STRD:;
+ struct bitslice addr = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {16,9,4}, {22,13,1}, {23,8,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_addrmode3_addr_S_2_STRD)(ctx, addr, Rt); /* 0x010000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ insn_addrmode3_addr_unk_Rt_4_LDRD:;
+ struct bitslice addr = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {16,9,4}, {22,13,1}, {23,8,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(addrmode3_addr_unk_Rt_4_LDRD)(ctx, addr, Rt); /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ insn_unk_Rd_5_MOVTi16:;
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(unk_Rd_5_MOVTi16)(ctx, Rd); /* 0x03000000 | 0xf04fffff */
+ }
+ case 2: {
+ insn_GPR_Rt_addrmode_imm12_addr_S_1_STRi12:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_addrmode_imm12_addr_S_1_STRi12)(ctx, addr, Rt); /* 0x05000000 | 0xf08fffff */
+ }
+ case 3: {
+ if ((op & 0xf700010) == 0x7000000) {
+ insn_GPR_Rt_ldst_so_reg_shift_S_1_STRrs:;
+ struct bitslice shift = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_ldst_so_reg_shift_S_1_STRrs)(ctx, shift, Rt); /* 0x07000000 | 0xf08fffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ case 7:
+ return P(unidentified)(ctx);
+ case 6: {
+ switch ((op >> 9) & 0x7) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 6:
+ case 7: {
+ insn_addrmode5_addr_S_4_STC2L_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_STC2L_OFFSET)(ctx, addr); /* 0x0d000000 | 0xf0cfffff */
+ }
+ case 5: {
+ insn_addrmode5_addr_8_LDC2L_OFFSET:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,8}, {16,9,4}, {23,8,1}}};
+ return P(addrmode5_addr_8_LDC2L_OFFSET)(ctx, addr); /* 0x0d000a00 | 0xf0cff1ff */
+ }
+ }
+ }
+ }
+ }
+ case 17:
+ case 21: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x11000b0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x011000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_addrmode_imm12_addr_unk_Rt_2_LDRBi12:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(addrmode_imm12_addr_unk_Rt_2_LDRBi12)(ctx, addr, Rt); /* 0x05100000 | 0xf0cfffff */
+ }
+ case 1: {
+ if ((op & 0xf300010) == 0x7100000) {
+ insn_ldst_so_reg_shift_unk_Rt_2_LDRBrs:;
+ struct bitslice shift = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(ldst_so_reg_shift_unk_Rt_2_LDRBrs)(ctx, shift, Rt); /* 0x07100000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8100000) {
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd100000) {
+ goto insn_addrmode5_addr_8_LDC2L_OFFSET; /* 0x0d100000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 18: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x3) {
+ case 0: {
+ if ((op & 0xffffff0) == 0x12fff10) {
+ struct bitslice dst = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ return P(GPR_dst_B_2_BX)(ctx, dst); /* 0x012fff10 | 0xf000000f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ case 3: {
+ if ((op & 0xf3000b0) == 0x12000b0) {
+ insn_GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE:;
+ struct bitslice addr = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {16,9,4}, {22,13,1}, {23,8,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE)(ctx, addr, Rt); /* 0x012000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ if ((op & 0xf2000f0) == 0x12000d0) {
+ insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE:;
+ struct bitslice addr = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,0,4}, {8,4,4}, {16,9,4}, {22,13,1}, {23,8,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(addrmode3_pre_addr_unk_Rt_4_LDRD_PRE)(ctx, addr, Rt); /* 0x012000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM)(ctx, addr, Rt); /* 0x05200000 | 0xf0cfffff */
+ }
+ case 1: {
+ if ((op & 0xf300010) == 0x7200000) {
+ insn_GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG:;
+ struct bitslice addr = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG)(ctx, addr, Rt); /* 0x07200000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8000000) {
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd200000) {
+ insn_addrmode5_pre_addr_S_4_STC2L_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_STC2L_PRE)(ctx, addr); /* 0x0d200000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 19:
+ case 23: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0x12000d0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x13000b0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x013000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0: {
+ insn_addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM)(ctx, addr, Rt); /* 0x05300000 | 0xf0cfffff */
+ }
+ case 1: {
+ if ((op & 0xf300010) == 0x7300000) {
+ insn_ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG:;
+ struct bitslice addr = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG)(ctx, addr, Rt); /* 0x07300000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8100000) {
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd300000) {
+ insn_addrmode5_pre_addr_4_LDC2L_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_LDC2L_PRE)(ctx, addr); /* 0x0d300000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 20: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 5) & 0x3) {
+ case 0: {
+ if ((op & 0xfb00ff0) == 0x1000090) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01000090 | 0xf04ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ case 3: {
+ if ((op & 0xf3000b0) == 0x10000b0) {
+ goto insn_GPR_Rt_addrmode3_addr_S_2_STRD; /* 0x010000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1:
+ goto insn_unk_Rd_5_MOVTi16; /* 0x03000000 | 0xf04fffff */
+ case 2: {
+ insn_GPRnopc_Rt_addrmode_imm12_addr_S_1_STRBi12:;
+ struct bitslice addr = {.nruns = 3, .runs = (struct bitslice_run[]) {{0,0,12}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPRnopc_Rt_addrmode_imm12_addr_S_1_STRBi12)(ctx, addr, Rt); /* 0x05400000 | 0xf08fffff */
+ }
+ case 3: {
+ if ((op & 0xf700010) == 0x7400000) {
+ insn_GPRnopc_Rt_ldst_so_reg_shift_S_1_STRBrs:;
+ struct bitslice shift = {.nruns = 4, .runs = (struct bitslice_run[]) {{0,0,4}, {5,5,7}, {16,13,4}, {23,12,1}}};
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPRnopc_Rt_ldst_so_reg_shift_S_1_STRBrs)(ctx, shift, Rt); /* 0x07400000 | 0xf08fffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ case 7:
+ return P(unidentified)(ctx);
+ case 6: {
+ switch ((op >> 9) & 0x7) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 6:
+ case 7:
+ goto insn_addrmode5_addr_S_4_STC2L_OFFSET; /* 0x0d000000 | 0xf0cfffff */
+ case 5:
+ goto insn_addrmode5_addr_8_LDC2L_OFFSET; /* 0x0d000a00 | 0xf0cff1ff */
+ }
+ }
+ }
+ }
+ case 22: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1) {
+ case 0: {
+ if ((op & 0xf2000f0) == 0x12000d0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1: {
+ if ((op & 0xf3000b0) == 0x12000b0) {
+ goto insn_GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE; /* 0x012000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM; /* 0x05200000 | 0xf0cfffff */
+ case 1: {
+ if ((op & 0xf300010) == 0x7200000) {
+ goto insn_GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG; /* 0x07200000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8000000) {
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd200000) {
+ goto insn_addrmode5_pre_addr_S_4_STC2L_PRE; /* 0x0d200000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 24: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1f) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ return P(unidentified)(ctx);
+ case 4: {
+ if ((op & 0xfb0fff0) == 0x180fc90) {
+ insn_GPR_Rt_addr_offset_none_addr_S_3_STL:;
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rt_addr_offset_none_addr_S_3_STL)(ctx, Rt, addr); /* 0x0180fc90 | 0xf04f000f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5:
+ case 7:
+ case 13:
+ case 15:
+ case 21:
+ case 23:
+ case 29:
+ case 31: {
+ if ((op & 0xf3000b0) == 0x10000b0) {
+ goto insn_GPR_Rt_addrmode3_addr_S_2_STRD; /* 0x010000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 6:
+ case 14:
+ case 22:
+ case 30: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 20:
+ case 28: {
+ if ((op & 0xfb00ef0) == 0x1800e90) {
+ insn_GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX:;
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX)(ctx, Rt, Rd, addr); /* 0x01800e90 | 0xf04ff10f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rt_addrmode_imm12_addr_S_1_STRi12; /* 0x05000000 | 0xf08fffff */
+ case 1: {
+ if ((op & 0xf700010) == 0x7000000) {
+ goto insn_GPR_Rt_ldst_so_reg_shift_S_1_STRrs; /* 0x07000000 | 0xf08fffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8000000) {
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ switch ((op >> 9) & 0x7) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 6:
+ case 7: {
+ if ((op & 0xf300000) == 0xd000000) {
+ goto insn_addrmode5_addr_S_4_STC2L_OFFSET; /* 0x0d000000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5: {
+ if ((op & 0xf300e00) == 0xd000a00) {
+ goto insn_addrmode5_addr_8_LDC2L_OFFSET; /* 0x0d000a00 | 0xf0cff1ff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+ }
+ case 25:
+ case 29: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0xf) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ return P(unidentified)(ctx);
+ case 4: {
+ if ((op & 0xfb00dff) == 0x1900c9f) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01900c9f | 0xf04ff200 */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5:
+ case 7:
+ case 13:
+ case 15: {
+ if ((op & 0xf3000b0) == 0x11000b0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x011000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 6:
+ case 14: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 12: {
+ if ((op & 0xfb00fff) == 0x1900f9f) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01900f9f | 0xf04ff000 */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addrmode_imm12_addr_unk_Rt_2_LDRBi12; /* 0x05100000 | 0xf0cfffff */
+ case 1: {
+ if ((op & 0xf300010) == 0x7100000) {
+ goto insn_ldst_so_reg_shift_unk_Rt_2_LDRBrs; /* 0x07100000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8100000) {
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd100000) {
+ goto insn_addrmode5_addr_8_LDC2L_OFFSET; /* 0x0d100000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 26: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 4) & 0x3) {
+ case 0: {
+ switch ((op >> 16) & 0xf) {
+ case 0: {
+ if ((op & 0xfef0ff0) == 0x1a00000) {
+ insn_GPR_Rm_unk_Rd_1_MOVr:;
+ struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(GPR_Rm_unk_Rd_1_MOVr)(ctx, Rm, Rd); /* 0x01a00000 | 0xf010f00f */
+ } else {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00000 | 0xf010ffcf */
+ }
+ }
+ 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:
+ case 15: {
+ if ((op & 0xfe00ff0) == 0x1a00000) {
+ insn_tcGPR_Rm_unk_Rd_1_MOVr_TC:;
+ struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ return P(tcGPR_Rm_unk_Rd_1_MOVr_TC)(ctx, Rm, Rd); /* 0x01a00000 | 0xf01ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 6) & 0x3) {
+ case 0:
+ case 1: {
+ if ((op & 0xfef0090) == 0x1a00010) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00010 | 0xf010ff6f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ if ((op & 0xff00ef0) == 0x1a00e90) {
+ struct bitslice Rt = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ struct bitslice Rd = {.nruns = 1, .runs = (struct bitslice_run[]) {{12,0,4}}};
+ struct bitslice addr = {.nruns = 1, .runs = (struct bitslice_run[]) {{16,0,4}}};
+ return P(GPRPairOp_Rt_addr_offset_none_addr_unk_Rd_S_2_STLEXD)(ctx, Rt, Rd, addr); /* 0x01a00e90 | 0xf00ff10f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3:
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ }
+ }
+ case 2: {
+ if ((op & 0xfef0010) == 0x1a00000) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00000 | 0xf010ffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ switch ((op >> 7) & 0x1) {
+ case 0: {
+ if ((op & 0xfef0090) == 0x1a00010) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00010 | 0xf010ff6f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ goto insn_GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE; /* 0x012000b0 | 0xf0cfff4f */
+ }
+ }
+ }
+ }
+ case 1: {
+ if ((op & 0xfef0000) == 0x3a00000) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x03a00000 | 0xf010ffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2:
+ goto insn_GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM; /* 0x05200000 | 0xf0cfffff */
+ case 3: {
+ if ((op & 0xf300010) == 0x7200000) {
+ goto insn_GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG; /* 0x07200000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ case 5:
+ case 7:
+ return P(unidentified)(ctx);
+ case 6:
+ goto insn_addrmode5_pre_addr_S_4_STC2L_PRE; /* 0x0d200000 | 0xf0cfffff */
+ }
+ }
+ case 27: {
+ switch ((op >> 25) & 0x7) {
+ case 0: {
+ switch ((op >> 4) & 0x3) {
+ case 0: {
+ switch ((op >> 16) & 0xf) {
+ case 0: {
+ if ((op & 0xfef0ff0) == 0x1a00000) {
+ goto insn_GPR_Rm_unk_Rd_1_MOVr; /* 0x01a00000 | 0xf010f00f */
+ } else {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00000 | 0xf010ffcf */
+ }
+ }
+ 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:
+ case 15: {
+ if ((op & 0xfe00ff0) == 0x1a00000) {
+ goto insn_tcGPR_Rm_unk_Rd_1_MOVr_TC; /* 0x01a00000 | 0xf01ff00f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 6) & 0x3) {
+ case 0:
+ case 1: {
+ if ((op & 0xfef0090) == 0x1a00010) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00010 | 0xf010ff6f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2: {
+ if ((op & 0xfb00eff) == 0x1b00e9f) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01b00e9f | 0xf04ff100 */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3:
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ }
+ }
+ case 2: {
+ if ((op & 0xfef0010) == 0x1a00000) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00000 | 0xf010ffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ switch ((op >> 7) & 0x1) {
+ case 0: {
+ if ((op & 0xfef0090) == 0x1a00010) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x01a00010 | 0xf010ff6f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 1:
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x013000b0 | 0xf0cfff4f */
+ }
+ }
+ }
+ }
+ case 1: {
+ if ((op & 0xfef0000) == 0x3a00000) {
+ goto insn_unk_Rd_5_MOVTi16; /* 0x03a00000 | 0xf010ffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 2:
+ goto insn_addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM; /* 0x05300000 | 0xf0cfffff */
+ case 3: {
+ if ((op & 0xf300010) == 0x7300000) {
+ goto insn_ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG; /* 0x07300000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 4:
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ case 5:
+ case 7:
+ return P(unidentified)(ctx);
+ case 6:
+ goto insn_addrmode5_pre_addr_4_LDC2L_PRE; /* 0x0d300000 | 0xf0cfffff */
+ }
+ }
+ case 28: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1f) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ return P(unidentified)(ctx);
+ case 4: {
+ if ((op & 0xfb0fff0) == 0x180fc90) {
+ goto insn_GPR_Rt_addr_offset_none_addr_S_3_STL; /* 0x0180fc90 | 0xf04f000f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5:
+ case 7:
+ case 13:
+ case 15:
+ case 21:
+ case 23:
+ case 29:
+ case 31: {
+ if ((op & 0xf3000b0) == 0x10000b0) {
+ goto insn_GPR_Rt_addrmode3_addr_S_2_STRD; /* 0x010000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 6:
+ case 14:
+ case 22:
+ case 30: {
+ if ((op & 0xf2000f0) == 0x10000d0) {
+ goto insn_addrmode3_addr_unk_Rt_4_LDRD; /* 0x010000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 20:
+ case 28: {
+ if ((op & 0xfb00ef0) == 0x1800e90) {
+ goto insn_GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX; /* 0x01800e90 | 0xf04ff10f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPRnopc_Rt_addrmode_imm12_addr_S_1_STRBi12; /* 0x05400000 | 0xf08fffff */
+ case 1: {
+ if ((op & 0xf700010) == 0x7400000) {
+ goto insn_GPRnopc_Rt_ldst_so_reg_shift_S_1_STRBrs; /* 0x07400000 | 0xf08fffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8000000) {
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ switch ((op >> 9) & 0x7) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 6:
+ case 7: {
+ if ((op & 0xf300000) == 0xd000000) {
+ goto insn_addrmode5_addr_S_4_STC2L_OFFSET; /* 0x0d000000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5: {
+ if ((op & 0xf300e00) == 0xd000a00) {
+ goto insn_addrmode5_addr_8_LDC2L_OFFSET; /* 0x0d000a00 | 0xf0cff1ff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+ }
+ case 30: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1f) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ return P(unidentified)(ctx);
+ case 4: {
+ if ((op & 0xff0fff0) == 0x1e0fc90) {
+ goto insn_GPR_Rt_addr_offset_none_addr_S_3_STL; /* 0x01e0fc90 | 0xf00f000f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5:
+ case 7:
+ case 13:
+ case 15:
+ case 21:
+ case 23:
+ case 29:
+ case 31: {
+ if ((op & 0xf3000b0) == 0x12000b0) {
+ goto insn_GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE; /* 0x012000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 6:
+ case 14:
+ case 22:
+ case 30: {
+ if ((op & 0xf2000f0) == 0x12000d0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 20:
+ case 28: {
+ if ((op & 0xff00ef0) == 0x1e00e90) {
+ goto insn_GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX; /* 0x01e00e90 | 0xf00ff10f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM; /* 0x05200000 | 0xf0cfffff */
+ case 1: {
+ if ((op & 0xf300010) == 0x7200000) {
+ goto insn_GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG; /* 0x07200000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8000000) {
+ goto insn_GPR_Rn_reglist_regs_S_16_STMDA; /* 0x08000000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd200000) {
+ goto insn_addrmode5_pre_addr_S_4_STC2L_PRE; /* 0x0d200000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 31: {
+ switch ((op >> 26) & 0x3) {
+ case 0: {
+ switch ((op >> 5) & 0x1f) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ return P(unidentified)(ctx);
+ case 4: {
+ if ((op & 0xff00fff) == 0x1f00c9f) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01f00c9f | 0xf00ff000 */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 5:
+ case 7:
+ case 13:
+ case 15:
+ case 21:
+ case 23:
+ case 29:
+ case 31: {
+ if ((op & 0xf3000b0) == 0x13000b0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x013000b0 | 0xf0cfff4f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 6:
+ case 14:
+ case 22:
+ case 30: {
+ if ((op & 0xf2000f0) == 0x12000d0) {
+ goto insn_addrmode3_pre_addr_unk_Rt_4_LDRD_PRE; /* 0x012000d0 | 0xf0dfff0f */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 20:
+ case 28: {
+ if ((op & 0xfb00eff) == 0x1b00e9f) {
+ goto insn_addr_offset_none_addr_unk_Rt_13_LDA; /* 0x01b00e9f | 0xf04ff100 */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 1: {
+ switch ((op >> 25) & 0x1) {
+ case 0:
+ goto insn_addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM; /* 0x05300000 | 0xf0cfffff */
+ case 1: {
+ if ((op & 0xf300010) == 0x7300000) {
+ goto insn_ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG; /* 0x07300000 | 0xf0cfffef */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ case 2: {
+ if ((op & 0xe100000) == 0x8100000) {
+ goto insn_GPR_Rn_reglist_regs_16_LDMDA; /* 0x08100000 | 0xf1efffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ case 3: {
+ if ((op & 0xf300000) == 0xd300000) {
+ goto insn_addrmode5_pre_addr_4_LDC2L_PRE; /* 0x0d300000 | 0xf0cfffff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
+ }
+ }
+ }
+/*
+static INLINE tdis_ret P(GPRPairOp_Rt_addr_offset_none_addr_unk_Rd_S_2_STLEXD)(struct bitslice ctx, struct bitslice Rt, struct bitslice Rd, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rm_unk_Rd_1_MOVr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rd) {}
+static INLINE tdis_ret P(GPR_Rn_GPR_Rm_unk_Rd_1_ADDrr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rd, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rn_reglist_regs_16_LDMDA)(struct bitslice ctx, struct bitslice regs, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rn_reglist_regs_S_16_STMDA)(struct bitslice ctx, struct bitslice regs, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rn_so_reg_imm_shift_unk_Rd_1_ADDrsi)(struct bitslice ctx, struct bitslice shift, struct bitslice Rd, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rn_so_reg_reg_shift_unk_Rd_1_ADDrsr)(struct bitslice ctx, struct bitslice shift, struct bitslice Rd, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rn_unk_Rd_1_ADDri)(struct bitslice ctx, struct bitslice Rd, struct bitslice Rn) {}
+static INLINE tdis_ret P(GPR_Rt_4_MCR)(struct bitslice ctx, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_S_3_STL)(struct bitslice ctx, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_am2offset_imm_offset_S_4_STRBT_POST_IMM)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_am2offset_reg_offset_S_4_STRBT_POST_REG)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_am3offset_offset_S_2_STRD_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_postidx_imm8_offset_S_1_STRHTi)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_postidx_reg_Rm_S_1_STRHTr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addr_offset_none_addr_unk_Rd_S_6_STLEX)(struct bitslice ctx, struct bitslice Rt, struct bitslice Rd, struct bitslice addr) {}
+static INLINE tdis_ret P(GPR_Rt_addrmode3_addr_S_2_STRD)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_addrmode3_pre_addr_S_2_STRD_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_addrmode_imm12_addr_S_1_STRi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_addrmode_imm12_pre_addr_S_2_STRB_PRE_IMM)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_ldst_so_reg_addr_S_2_STRB_PRE_REG)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_Rt_ldst_so_reg_shift_S_1_STRrs)(struct bitslice ctx, struct bitslice shift, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPR_dst_B_2_BX)(struct bitslice ctx, struct bitslice dst) {}
+static INLINE tdis_ret P(GPRnopc_Rt_4_MCRR)(struct bitslice ctx, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPRnopc_Rt_addrmode_imm12_addr_S_1_STRBi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(GPRnopc_Rt_ldst_so_reg_shift_S_1_STRBrs)(struct bitslice ctx, struct bitslice shift, struct bitslice Rt) {}
+static INLINE tdis_ret P(addr_offset_none_addr_4_LDC2L_OPTION)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_S_4_STC2L_OPTION)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_am2offset_imm_offset_unk_Rt_4_LDRBT_POST_IMM)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_am2offset_reg_offset_unk_Rt_4_LDRBT_POST_REG)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_am3offset_offset_unk_Rt_4_LDRD_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_postidx_imm8_offset_unk_Rt_3_LDRHTi)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_postidx_imm8s4_offset_4_LDC2L_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_postidx_imm8s4_offset_S_4_STC2L_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_postidx_reg_Rm_unk_Rt_3_LDRHTr)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addr_offset_none_addr_unk_Rt_13_LDA)(struct bitslice ctx, struct bitslice Rt, struct bitslice addr) {}
+static INLINE tdis_ret P(addrmode3_addr_unk_Rt_4_LDRD)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(addrmode3_pre_addr_unk_Rt_4_LDRD_PRE)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(addrmode5_addr_8_LDC2L_OFFSET)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addrmode5_addr_S_4_STC2L_OFFSET)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addrmode5_pre_addr_4_LDC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addrmode5_pre_addr_S_4_STC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
+static INLINE tdis_ret P(addrmode_imm12_addr_unk_Rt_2_LDRBi12)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(addrmode_imm12_pre_addr_unk_Rt_2_LDRB_PRE_IMM)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(adrlabel_label_unk_Rd_1_ADR)(struct bitslice ctx, struct bitslice label, struct bitslice Rd) {}
+static INLINE tdis_ret P(br_target_target_B_1_Bcc)(struct bitslice ctx, struct bitslice target) {}
+static INLINE tdis_ret P(ldst_so_reg_addr_unk_Rt_2_LDRB_PRE_REG)(struct bitslice ctx, struct bitslice addr, struct bitslice Rt) {}
+static INLINE tdis_ret P(ldst_so_reg_shift_unk_Rt_2_LDRBrs)(struct bitslice ctx, struct bitslice shift, struct bitslice Rt) {}
+static INLINE tdis_ret P(tcGPR_Rm_unk_Rd_1_MOVr_TC)(struct bitslice ctx, struct bitslice Rm, struct bitslice Rd) {}
+static INLINE tdis_ret P(unk_Rd_5_MOVTi16)(struct bitslice ctx, struct bitslice Rd) {}
+static INLINE tdis_ret P(unk_Rt_13_MRC)(struct bitslice ctx, struct bitslice Rt) {}
+*/
+