aboutsummaryrefslogtreecommitdiff
path: root/generated/generic-dis-thumb2.inc.h
diff options
context:
space:
mode:
authorcomex2015-02-23 00:41:29 -0500
committercomex2015-02-23 00:54:13 -0500
commitb63f1dff9dc736f7fa66f04976436f1f3fe2ac5d (patch)
treedb70eb338a0107fdc70992ea2522fd03f2ecf32e /generated/generic-dis-thumb2.inc.h
parentfix some i386 stuff (diff)
downloadsubstitute-b63f1dff9dc736f7fa66f04976436f1f3fe2ac5d.tar.gz
Ban calls within transform regions in threadsafe mode.
Diffstat (limited to 'generated/generic-dis-thumb2.inc.h')
-rw-r--r--generated/generic-dis-thumb2.inc.h2599
1 files changed, 1722 insertions, 877 deletions
diff --git a/generated/generic-dis-thumb2.inc.h b/generated/generic-dis-thumb2.inc.h
index b685f0d..e4e8ee0 100644
--- a/generated/generic-dis-thumb2.inc.h
+++ b/generated/generic-dis-thumb2.inc.h
@@ -1,5 +1,5 @@
/* Generated code; do not edit!
- generated by tables/gen.js from imaon2 '2b8112204067abe3d0643e23c2486656841ecafe-dirty'
+ 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
@@ -16,6 +16,7 @@
/* 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 */
@@ -56,13 +57,16 @@
/* 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 >> 15) & 0x1) {
- case 0: {
+ 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}}};
@@ -78,7 +82,7 @@
}
}
}
- case 1: {
+ case 2: {
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
@@ -101,6 +105,28 @@
}
}
}
+ 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: {
@@ -178,29 +204,47 @@
}
}
case 1: {
- switch ((op >> 8) & 0x7) {
- case 0: {
- switch ((op >> 26) & 0x3) {
+ switch ((op >> 26) & 0x3) {
+ case 0:
+ case 1: {
+ switch ((op >> 12) & 0x7) {
case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
+ case 2: {
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
}
- case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 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 2: {
+ 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}}};
@@ -217,40 +261,8 @@
}
}
}
+ case 1:
case 3: {
- if ((op & 0xef100010) == 0xee100010) {
- 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); /* 0xee100010 | 0x10efffef */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 1:
- case 3: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 2: {
switch ((op >> 11) & 0x1) {
case 0: {
if ((op & 0xfe5f0000) == 0xf81f0000) {
@@ -272,36 +284,6 @@
}
}
}
- case 3: {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 2: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
case 2: {
if ((op & 0xfe5f0000) == 0xf81f0000) {
goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
@@ -309,41 +291,7 @@
return P(unidentified)(ctx);
}
}
- case 3: {
- if ((op & 0xff00f7f) == 0xe100a10) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0x0e100a10 | 0xf00ff080 */
- } else {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100210 | 0x100ff8ef */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- }
- case 4: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 2: {
+ case 4: {
switch ((op >> 11) & 0x1) {
case 0: {
if ((op & 0xfe5f0000) == 0xf81f0000) {
@@ -364,38 +312,8 @@
}
}
}
- case 3: {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 5:
- case 7: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 2: {
+ case 5:
+ case 7: {
switch ((op >> 11) & 0x1) {
case 0: {
if ((op & 0xfe5f0000) == 0xf81f0000) {
@@ -416,37 +334,7 @@
}
}
}
- case 3: {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 6: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- }
- }
- case 2: {
+ case 6: {
switch ((op >> 11) & 0x1) {
case 0: {
if ((op & 0xfe5f0000) == 0xf81f0000) {
@@ -467,14 +355,20 @@
}
}
}
- case 3: {
+ }
+ }
+ 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 | 0x10efffef */
+ goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x100fffef */
} else {
return P(unidentified)(ctx);
}
}
- }
}
}
}
@@ -514,10 +408,21 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
}
}
case 2: {
@@ -590,21 +495,39 @@
switch ((op >> 26) & 0x3) {
case 0:
case 1: {
- switch ((op >> 12) & 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 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: {
@@ -727,101 +650,158 @@
}
}
case 4: {
- switch ((op >> 26) & 0x7) {
+ switch ((op >> 25) & 0xf) {
case 0:
case 1:
+ case 2:
+ case 3:
+ case 13:
return P(unidentified)(ctx);
- case 2: {
- switch ((op >> 25) & 0x1) {
- case 0: {
- 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 */
+ 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 1: {
- if ((op & 0xffef70f0) == 0xea4f0000) {
- insn_GPR_Rm_unk_Rd_1_t2MOVr:;
- struct bitslice Rm = {.nruns = 1, .runs = (struct bitslice_run[]) {{0,0,4}}};
+ }
+ 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(GPR_Rm_unk_Rd_1_t2MOVr)(ctx, Rm, Rd); /* 0xea4f0000 | 0x00108f0f */
+ 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 3:
- case 7: {
- switch ((op >> 25) & 0x1) {
- case 0: {
- if ((op & 0xff00fd0) == 0xc400b10) {
- goto insn_GPR_Rt_8_VMOVDRR; /* 0x0c400b10 | 0xf00ff02f */
+ case 9:
+ case 11: {
+ if ((op & 0xf800d000) == 0xf0009000) {
+ goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
} else {
- if ((op & 0xefe00000) == 0xec400000) {
- goto insn_GPR_Rt_8_VMOVDRR; /* 0xec400000 | 0x100fffff */
- } else {
- return P(unidentified)(ctx);
- }
+ return P(unidentified)(ctx);
}
}
- case 1: {
- if ((op & 0xef100010) == 0xee000010) {
- goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
+ 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 4:
- case 5: {
- switch ((op >> 15) & 0x1) {
- case 0: {
- switch ((op >> 25) & 0x1) {
- case 0: {
- 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 1: {
- if ((op & 0xfb708000) == 0xf2400000) {
- goto insn_unk_Rd_3_t2MOVTi16; /* 0xf2400000 | 0x048f7fff */
- } 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 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
- 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 1: {
- 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: {
+ case 12: {
switch ((op >> 8) & 0x7) {
case 0: {
if ((op & 0xfff00fc0) == 0xf8400000) {
@@ -957,10 +937,21 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
}
}
case 6: {
@@ -1063,46 +1054,65 @@
}
case 6:
case 14: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
+ 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 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: {
- 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 3: {
- switch ((op >> 25) & 0x1) {
+ 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 1: {
+ case 3: {
if ((op & 0xef100010) == 0xee000010) {
goto insn_GPR_Rt_8_VMOVDRR; /* 0xee000010 | 0x10efffef */
} else {
@@ -1114,46 +1124,65 @@
}
}
case 7: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
+ 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 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: {
- 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 3: {
- switch ((op >> 25) & 0x1) {
+ 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 1: {
+ case 3: {
if ((op & 0xef100010) == 0xee100010) {
goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
} else {
@@ -1165,9 +1194,8 @@
}
}
case 8: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
+ switch ((op >> 27) & 0x1) {
+ case 0: {
switch ((op >> 12) & 0xf) {
case 0:
case 1:
@@ -1200,15 +1228,37 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ 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: {
+ 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}}};
@@ -1218,21 +1268,8 @@
return P(unidentified)(ctx);
}
}
- case 1: {
- 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 3: {
- switch ((op >> 25) & 0x1) {
- case 0: {
+ 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}}};
@@ -1241,101 +1278,130 @@
return P(unidentified)(ctx);
}
}
- case 1: {
+ 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) & 0x7) {
+ switch ((op >> 26) & 0x3) {
case 0:
- case 1:
- return P(unidentified)(ctx);
- case 2: {
- 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 >> 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 3:
- case 7: {
- 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 */
+ case 1:
+ case 3: {
+ if ((op & 0xf800d000) == 0xf0009000) {
+ goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 1: {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
+ 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:
- case 5: {
- switch ((op >> 12) & 0x1) {
+ case 2: {
+ switch ((op >> 28) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ 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: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
+ 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 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 & 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 */
+ 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 15: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ case 1: {
+ if ((op & 0xef100010) == 0xee100010) {
+ goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
} else {
return P(unidentified)(ctx);
}
@@ -1345,9 +1411,8 @@
}
}
case 10: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
+ switch ((op >> 27) & 0x1) {
+ case 0: {
switch ((op >> 12) & 0xf) {
case 0:
case 1:
@@ -1380,126 +1445,164 @@
}
}
case 12:
- case 13:
- case 14:
- case 15:
- return P(unidentified)(ctx);
- }
- }
- case 2: {
- switch ((op >> 28) & 0x1) {
- case 0: {
- if ((op & 0xffd0a000) == 0xe8800000) {
- goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe8800000 | 0x002f5fff */
+ case 14: {
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
} else {
return P(unidentified)(ctx);
}
}
- case 1: {
- if ((op & 0xffd00000) == 0xf8800000) {
- goto insn_rGPR_Rt_t2addrmode_imm12_addr_S_2_t2STRBi12; /* 0xf8800000 | 0x002fffff */
+ case 13:
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- case 3: {
- switch ((op >> 25) & 0x1) {
- case 0: {
+ 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 1: {
+ 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) & 0x7) {
+ switch ((op >> 26) & 0x3) {
case 0:
- case 1:
- return P(unidentified)(ctx);
- case 2: {
- if ((op & 0xffd00000) == 0xe8900000) {
- goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe8900000 | 0x002fffff */
- } else {
- return P(unidentified)(ctx);
+ 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 3:
- case 7: {
- switch ((op >> 25) & 0x1) {
- case 0: {
- if ((op & 0xef300000) == 0xec300000) {
- goto insn_addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST; /* 0xec300000 | 0x10cfffff */
+ case 1:
+ case 3: {
+ if ((op & 0xf800d000) == 0xf0009000) {
+ goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 1: {
- if ((op & 0xef100010) == 0xee100010) {
- goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
+ 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:
- case 5: {
- switch ((op >> 12) & 0x1) {
+ case 2: {
+ switch ((op >> 28) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ if ((op & 0xffd00000) == 0xe8900000) {
+ goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe8900000 | 0x002fffff */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
+ 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 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 & 0xfed00000) == 0xf8900000) {
- goto insn_t2addrmode_imm12_addr_unk_Rt_5_t2LDRBi12; /* 0xf8900000 | 0x012fffff */
+ 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 15: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ case 1: {
+ if ((op & 0xef100010) == 0xee100010) {
+ goto insn_unk_Rt_13_VMOVRRD; /* 0xee100010 | 0x10efffef */
} else {
return P(unidentified)(ctx);
}
@@ -1627,10 +1730,21 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
}
}
case 6: {
@@ -1722,21 +1836,39 @@
}
case 4:
case 5: {
- switch ((op >> 12) & 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 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: {
@@ -1779,21 +1911,39 @@
case 1:
case 2:
case 3: {
- switch ((op >> 12) & 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 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: {
@@ -1863,9 +2013,8 @@
}
}
case 16: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
+ switch ((op >> 27) & 0x1) {
+ case 0: {
switch ((op >> 12) & 0xf) {
case 0:
case 1:
@@ -1901,14 +2050,25 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
}
}
- case 2: {
- switch ((op >> 25) & 0x1) {
+ case 1: {
+ switch ((op >> 25) & 0x3) {
case 0: {
if ((op & 0xffd0a000) == 0xe9000000) {
goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe9000000 | 0x002f5fff */
@@ -1931,34 +2091,32 @@
}
}
}
- }
- }
- case 3: {
- 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 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: {
- if ((op & 0xef300000) == 0xed000000) {
+ 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 */
- } else {
- return P(unidentified)(ctx);
+ }
}
}
+ case 3:
+ return P(unidentified)(ctx);
}
}
}
@@ -2049,10 +2207,21 @@
}
}
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 14:
- case 15:
- return P(unidentified)(ctx);
+ case 15: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
+ } else {
+ return P(unidentified)(ctx);
+ }
+ }
}
}
case 6: {
@@ -2154,9 +2323,43 @@
}
}
case 18: {
- switch ((op >> 27) & 0x1) {
- case 0: {
- switch ((op >> 12) & 0x1) {
+ 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 */
@@ -2165,28 +2368,65 @@
}
}
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 1: {
- switch ((op >> 26) & 0x1) {
+ case 12:
+ case 14: {
+ switch ((op >> 27) & 0x1) {
case 0: {
- if ((op & 0xffd0a000) == 0xe9000000) {
- goto insn_GPR_Rn_reglist_regs_S_4_t2STMDB; /* 0xe9000000 | 0x002f5fff */
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
} 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 */
+ 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);
}
@@ -2196,49 +2436,67 @@
}
}
case 19: {
- switch ((op >> 8) & 0x7) {
- case 0: {
- switch ((op >> 26) & 0x7) {
- case 0:
- case 1:
+ 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 & 0xffd00000) == 0xe9100000) {
- goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe9100000 | 0x002fffff */
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} 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 */
+ 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 5: {
- switch ((op >> 12) & 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
+ 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: {
+ }
+ }
+ 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 {
@@ -2249,49 +2507,33 @@
}
}
}
- }
- }
- case 1:
- case 3: {
- 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) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
- } else {
- return P(unidentified)(ctx);
- }
- }
- case 4:
- case 5: {
- switch ((op >> 12) & 0x1) {
+ case 3: {
+ switch ((op >> 11) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ if ((op & 0xfe5f0000) == 0xf81f0000) {
+ goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
+ 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 6: {
+ 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) {
@@ -2301,115 +2543,123 @@
}
}
case 1: {
- if ((op & 0xfed00d00) == 0xf8100900) {
- goto insn_addr_offset_none_Rn_t2am_imm8_offset_offset_unk_Rt_5_t2LDRB_POST; /* 0xf8100900 | 0x012ff2ff */
+ if ((op & 0xfed00d00) == 0xf8100c00) {
+ goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8100c00 | 0x012ff2ff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- }
- }
- case 2: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
+ case 5:
+ case 7: {
+ switch ((op >> 11) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ if ((op & 0xfe5f0000) == 0xf81f0000) {
+ goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
+ if ((op & 0xfed00d00) == 0xf8100d00) {
+ goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8100d00 | 0x012ff2ff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- case 2: {
- switch ((op >> 28) & 0x1) {
+ case 6: {
+ switch ((op >> 11) & 0x1) {
case 0: {
- if ((op & 0xffd00000) == 0xe9100000) {
- goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe9100000 | 0x002fffff */
+ if ((op & 0xfe5f0000) == 0xf81f0000) {
+ goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ if ((op & 0xfed00f00) == 0xf8100e00) {
+ goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8100e00 | 0x012ff0ff */
} 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: {
- switch ((op >> 26) & 0x7) {
+ }
+ }
+ case 20: {
+ switch ((op >> 27) & 0x1) {
+ case 0: {
+ switch ((op >> 12) & 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 */
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 3:
- case 7: {
- if ((op & 0xef300000) == 0xed300000) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
+ 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 5: {
- switch ((op >> 12) & 0x1) {
- case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
+ case 6: {
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
+ } else {
+ return P(unidentified)(ctx);
}
- case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } 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 6: {
- switch ((op >> 11) & 0x1) {
- case 0: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ 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 1: {
- if ((op & 0xfed00d00) == 0xf8100c00) {
- goto insn_t2addrmode_negimm8_addr_unk_Rt_5_t2LDRBi8; /* 0xf8100c00 | 0x012ff2ff */
+ case 7: {
+ if ((op & 0xef300000) == 0xed000000) {
+ goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
} else {
return P(unidentified)(ctx);
}
@@ -2418,58 +2668,76 @@
}
}
}
- case 5:
- case 7: {
- switch ((op >> 26) & 0x7) {
+ }
+ }
+ case 21:
+ case 29: {
+ switch ((op >> 27) & 0x1) {
+ case 0: {
+ switch ((op >> 12) & 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 */
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 3:
- case 7: {
- if ((op & 0xef300000) == 0xed300000) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
+ 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 5: {
- switch ((op >> 12) & 0x1) {
- case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
- }
+ case 6: {
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
+ } else {
+ return P(unidentified)(ctx);
}
- case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
- } 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 6: {
- switch ((op >> 11) & 0x1) {
- case 0: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ 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 1: {
- if ((op & 0xfed00d00) == 0xf8100d00) {
- goto insn_t2addrmode_imm8_pre_addr_unk_Rt_5_t2LDRB_PRE; /* 0xf8100d00 | 0x012ff2ff */
+ case 7: {
+ if ((op & 0xef300000) == 0xed100000) {
+ goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
} else {
return P(unidentified)(ctx);
}
@@ -2478,80 +2746,161 @@
}
}
}
- case 6: {
- switch ((op >> 26) & 0x7) {
+ }
+ }
+ case 22:
+ case 30: {
+ switch ((op >> 12) & 0x7) {
+ case 0:
+ case 2: {
+ switch ((op >> 26) & 0x3) {
case 0:
- case 1:
- return P(unidentified)(ctx);
+ 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 & 0xffd00000) == 0xe9100000) {
- goto insn_GPR_Rn_reglist_regs_4_t2LDMDB; /* 0xe9100000 | 0x002fffff */
+ 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:
- case 7: {
- if ((op & 0xef300000) == 0xed300000) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
+ 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 5: {
- switch ((op >> 12) & 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:
+ 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 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 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 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 1: {
- if ((op & 0xfed00f00) == 0xf8100e00) {
- goto insn_t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT; /* 0xf8100e00 | 0x012ff0ff */
- } 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 20:
- case 28: {
- switch ((op >> 26) & 0x3) {
+ case 23:
+ case 31: {
+ switch ((op >> 12) & 0x7) {
case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- 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 */
@@ -2559,57 +2908,184 @@
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 2: {
- if ((op & 0xff700000) == 0xe9400000) {
- 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 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 3: {
- switch ((op >> 29) & 0x7) {
+ 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 1:
case 2:
- case 3:
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 6: {
+ 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 7: {
+ case 29:
+ case 31: {
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 >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
+ 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 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 {
@@ -2618,33 +3094,112 @@
}
}
}
- case 2: {
- 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 {
+ 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 3: {
- switch ((op >> 29) & 0x7) {
+ case 5:
+ case 7: {
+ switch ((op >> 27) & 0x1f) {
case 0:
- case 1:
case 2:
- case 3:
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 6: {
+ 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 7: {
- if ((op & 0xef300000) == 0xed100000) {
- goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
+ 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);
}
@@ -2653,34 +3208,114 @@
}
}
}
- case 22:
- case 30: {
+ case 25: {
switch ((op >> 27) & 0x1) {
case 0: {
- switch ((op >> 12) & 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 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) == 0xe9600000) {
- 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 */
+ 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);
}
@@ -2694,43 +3329,57 @@
}
}
}
+ 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 23:
- case 31: {
- switch ((op >> 27) & 0x1) {
- case 0: {
- switch ((op >> 12) & 0x1) {
+ case 4:
+ case 6: {
+ switch ((op >> 27) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
+ if ((op & 0xef300000) == 0xed200000) {
+ goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- case 1: {
- switch ((op >> 26) & 0x1) {
+ case 5:
+ case 7: {
+ switch ((op >> 27) & 0x1) {
case 0: {
- if ((op & 0xff700000) == 0xe9700000) {
- 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 */
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
case 1: {
- if ((op & 0xef300000) == 0xed300000) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
+ if ((op & 0xef300000) == 0xed200000) {
+ goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
} else {
return P(unidentified)(ctx);
}
@@ -2739,229 +3388,422 @@
}
}
}
- case 24: {
+ case 27: {
switch ((op >> 27) & 0x1) {
case 0: {
- switch ((op >> 12) & 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 1:
+ case 3: {
if ((op & 0xf800d000) == 0xf0009000) {
goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
} 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 */
+ if ((op & 0xf800d001) == 0xf000c000) {
+ goto insn_t_blxtarget_func_1_tBLXi; /* 0xf000c000 | 0x07ff2ffe */
} else {
return P(unidentified)(ctx);
}
}
+ case 5:
case 7: {
- if ((op & 0xef300000) == 0xed000000) {
- goto insn_addrmode5_addr_S_4_t2STC2L_OFFSET; /* 0xed000000 | 0x10cfffff */
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- }
- }
- case 25: {
- switch ((op >> 26) & 0x3) {
- case 0:
case 1: {
- switch ((op >> 12) & 0x1) {
+ switch ((op >> 26) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
- } else {
- return P(unidentified)(ctx);
+ 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
+ if ((op & 0xef300000) == 0xed300000) {
+ goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 0x10cfffff */
} else {
return P(unidentified)(ctx);
}
}
}
}
- case 2: {
- switch ((op >> 16) & 0xf) {
+ }
+ }
+ case 28: {
+ switch ((op >> 10) & 0x1f) {
+ case 0:
+ case 1:
+ case 8:
+ case 9:
+ case 11: {
+ switch ((op >> 26) & 0x3) {
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 */
+ case 1: {
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 15: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ 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 3: {
- switch ((op >> 29) & 0x7) {
+ case 2:
+ case 10: {
+ switch ((op >> 26) & 0x3) {
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 */
+ case 1: {
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 7: {
- if ((op & 0xef300000) == 0xed100000) {
- goto insn_addrmode5_addr_8_VLDRD; /* 0xed100000 | 0x10cfffff */
+ 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 26: {
- switch ((op >> 12) & 0x1) {
- case 0: {
+ case 3: {
switch ((op >> 27) & 0x1) {
case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ 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 {
- return P(unidentified)(ctx);
+ if ((op & 0xf800d000) == 0xf0008000) {
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf1c08c00 | 0x060f03ff */
+ } else {
+ return P(unidentified)(ctx);
+ }
}
}
case 1: {
- if ((op & 0xef300000) == 0xed200000) {
- goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
+ 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 1: {
- switch ((op >> 27) & 0x1) {
- case 0: {
+ 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 1: {
- if ((op & 0xef300000) == 0xed200000) {
- goto insn_addrmode5_pre_addr_S_4_t2STC2L_PRE; /* 0xed200000 | 0x10cfffff */
+ 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 27: {
- switch ((op >> 26) & 0x3) {
- case 0:
- case 1: {
- switch ((op >> 12) & 0x1) {
- case 0: {
- if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ 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 & 0xf800d000) == 0xf0009000) {
- goto insn_uncondbrtarget_target_B_1_t2B; /* 0xf0009000 | 0x07ff2fff */
+ 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 2: {
- switch ((op >> 16) & 0xf) {
+ case 20:
+ case 21:
+ case 23:
+ case 28:
+ case 29:
+ case 31: {
+ switch ((op >> 26) & 0x3) {
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 */
+ case 1: {
+ if ((op & 0xf800d000) == 0xf000d000) {
+ goto insn_t_bltarget_func_1_tBL; /* 0xf000d000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
}
- case 15: {
- if ((op & 0xfe5f0000) == 0xf81f0000) {
- goto insn_t2ldrlabel_addr_unk_Rt_5_t2LDRBpci; /* 0xf81f0000 | 0x01a0ffff */
+ 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 3: {
- if ((op & 0xef300000) == 0xed300000) {
- goto insn_addrmode5_pre_addr_4_t2LDC2L_PRE; /* 0xed300000 | 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);
+ }
+ }
+ }
+ }
}
}
}
@@ -3001,6 +3843,7 @@ static INLINE tdis_ret P(rGPR_Rt_t2addrmode_imm8s4_addr_S_1_t2STRDi8)(struct bit
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) {}
@@ -3012,6 +3855,8 @@ static INLINE tdis_ret P(t2addrmode_posimm8_addr_unk_Rt_5_t2LDRBT)(struct bitsli
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) {}