aboutsummaryrefslogtreecommitdiff
path: root/generated/generic-dis-thumb2.inc.h
diff options
context:
space:
mode:
authorcomex2015-02-01 01:56:29 -0500
committercomex2015-02-01 01:56:42 -0500
commita23ef990492cd0384de1a924c44805587d5b5aed (patch)
treeaa3a28446fc1a7ca1d799c8f3ad3acc6afdea0f2 /generated/generic-dis-thumb2.inc.h
parenttrivial wording tweak (diff)
downloadsubstitute-a23ef990492cd0384de1a924c44805587d5b5aed.tar.gz
fix my utter failure to handle branches/conditionals correctly (on ARM)
Diffstat (limited to 'generated/generic-dis-thumb2.inc.h')
-rw-r--r--generated/generic-dis-thumb2.inc.h83
1 files changed, 42 insertions, 41 deletions
diff --git a/generated/generic-dis-thumb2.inc.h b/generated/generic-dis-thumb2.inc.h
index 6cad07c..b685f0d 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'
+ generated by tables/gen.js from imaon2 '2b8112204067abe3d0643e23c2486656841ecafe-dirty'
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,7 +16,7 @@
/* GPRnopc_Rn_rGPR_Rm_unk_Rd_1_t2ADDrr: t2ADDrr */
/* t2adrlabel_addr_unk_Rd_1_t2ADR: t2ADR */
/* uncondbrtarget_target_B_1_t2B: t2B */
-/* brtarget_target_B_1_t2Bcc: t2Bcc */
+/* brtarget_target_pred_p_B_1_t2Bcc: t2Bcc */
/* addr_offset_none_addr_unk_Rt_11_t2LDA: t2LDA, t2LDAB, t2LDAEX, t2LDAEXB, t2LDAEXD, t2LDAEXH, t2LDAH, t2LDRD_POST, t2LDREXB, t2LDREXD, t2LDREXH */
/* addr_offset_none_addr_4_t2LDC2L_OPTION: t2LDC2L_OPTION, t2LDC2_OPTION, t2LDCL_OPTION, t2LDC_OPTION */
/* addr_offset_none_addr_postidx_imm8s4_offset_4_t2LDC2L_POST: t2LDC2L_POST, t2LDC2_POST, t2LDCL_POST, t2LDC_POST */
@@ -82,9 +82,10 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- insn_brtarget_target_B_1_t2Bcc:;
+ insn_brtarget_target_pred_p_B_1_t2Bcc:;
struct bitslice target = {.nruns = 5, .runs = (struct bitslice_run[]) {{0,1,11}, {11,19,1}, {13,18,1}, {16,12,6}, {26,20,1}}};
- return P(brtarget_target_B_1_t2Bcc)(ctx, target); /* 0xf0008000 | 0x07ff2fff */
+ struct bitslice p = {.nruns = 1, .runs = (struct bitslice_run[]) {{22,0,4}}};
+ return P(brtarget_target_pred_p_B_1_t2Bcc)(ctx, target, p); /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -185,7 +186,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -235,7 +236,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -287,7 +288,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -328,7 +329,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -380,7 +381,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -431,7 +432,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -499,7 +500,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -592,7 +593,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -804,7 +805,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -942,7 +943,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1068,7 +1069,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1119,7 +1120,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1185,7 +1186,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1292,7 +1293,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1365,7 +1366,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1459,7 +1460,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1612,7 +1613,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1724,7 +1725,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1781,7 +1782,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -1886,7 +1887,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2034,7 +2035,7 @@
case 8:
case 10: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2158,7 +2159,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2223,7 +2224,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2276,7 +2277,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2317,7 +2318,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2383,7 +2384,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2443,7 +2444,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2502,7 +2503,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2546,7 +2547,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2603,7 +2604,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2659,7 +2660,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2702,7 +2703,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2744,7 +2745,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2791,7 +2792,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2869,7 +2870,7 @@
switch ((op >> 27) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2910,7 +2911,7 @@
switch ((op >> 12) & 0x1) {
case 0: {
if ((op & 0xf800d000) == 0xf0008000) {
- goto insn_brtarget_target_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
+ goto insn_brtarget_target_pred_p_B_1_t2Bcc; /* 0xf0008000 | 0x07ff2fff */
} else {
return P(unidentified)(ctx);
}
@@ -2989,7 +2990,7 @@ static INLINE tdis_ret P(addrmode5_addr_8_VLDRD)(struct bitslice ctx, struct bit
static INLINE tdis_ret P(addrmode5_addr_S_4_t2STC2L_OFFSET)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_pre_addr_4_t2LDC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
static INLINE tdis_ret P(addrmode5_pre_addr_S_4_t2STC2L_PRE)(struct bitslice ctx, struct bitslice addr) {}
-static INLINE tdis_ret P(brtarget_target_B_1_t2Bcc)(struct bitslice ctx, struct bitslice target) {}
+static INLINE tdis_ret P(brtarget_target_pred_p_B_1_t2Bcc)(struct bitslice ctx, struct bitslice target, struct bitslice p) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_Rn_t2am_imm8_offset_offset_S_2_t2STRB_POST)(struct bitslice ctx, struct bitslice offset, struct bitslice Rt, struct bitslice Rn) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_addr_S_4_t2STL)(struct bitslice ctx, struct bitslice Rt, struct bitslice addr) {}
static INLINE tdis_ret P(rGPR_Rt_addr_offset_none_addr_unk_Rd_S_7_t2STLEX)(struct bitslice ctx, struct bitslice Rd, struct bitslice Rt, struct bitslice addr) {}