diff options
author | comex | 2015-02-01 01:56:29 -0500 |
---|---|---|
committer | comex | 2015-02-01 01:56:42 -0500 |
commit | a23ef990492cd0384de1a924c44805587d5b5aed (patch) | |
tree | aa3a28446fc1a7ca1d799c8f3ad3acc6afdea0f2 /generated/generic-dis-thumb2.inc.h | |
parent | trivial wording tweak (diff) | |
download | substitute-a23ef990492cd0384de1a924c44805587d5b5aed.tar.gz |
fix my utter failure to handle branches/conditionals correctly (on ARM)
Diffstat (limited to '')
-rw-r--r-- | generated/generic-dis-thumb2.inc.h | 83 |
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) {} |