/* This file is autogenerated by scripts/decodetree.py. */ typedef struct { int F; int I; int im; } arg_disas_t1616; typedef struct { int cond_mask; } arg_disas_t1617; typedef struct { int imm; int nz; int rn; } arg_disas_t1618; #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wredundant-decls" # ifdef __clang__ # pragma GCC diagnostic ignored "-Wtypedef-redefinition" # endif #endif typedef arg_s_rrr_shi arg_AND_rrri; static bool trans_AND_rrri(DisasContext *ctx, arg_AND_rrri *a); typedef arg_s_rrr_shi arg_EOR_rrri; static bool trans_EOR_rrri(DisasContext *ctx, arg_EOR_rrri *a); typedef arg_s_rrr_shr arg_MOV_rxrr; static bool trans_MOV_rxrr(DisasContext *ctx, arg_MOV_rxrr *a); typedef arg_s_rrr_shi arg_ADC_rrri; static bool trans_ADC_rrri(DisasContext *ctx, arg_ADC_rrri *a); typedef arg_s_rrr_shi arg_SBC_rrri; static bool trans_SBC_rrri(DisasContext *ctx, arg_SBC_rrri *a); typedef arg_s_rrr_shi arg_TST_xrri; static bool trans_TST_xrri(DisasContext *ctx, arg_TST_xrri *a); typedef arg_s_rri_rot arg_RSB_rri; static bool trans_RSB_rri(DisasContext *ctx, arg_RSB_rri *a); typedef arg_s_rrr_shi arg_CMP_xrri; static bool trans_CMP_xrri(DisasContext *ctx, arg_CMP_xrri *a); typedef arg_s_rrr_shi arg_CMN_xrri; static bool trans_CMN_xrri(DisasContext *ctx, arg_CMN_xrri *a); typedef arg_s_rrr_shi arg_ORR_rrri; static bool trans_ORR_rrri(DisasContext *ctx, arg_ORR_rrri *a); typedef arg_s_rrrr arg_MUL; static bool trans_MUL(DisasContext *ctx, arg_MUL *a); typedef arg_s_rrr_shi arg_BIC_rrri; static bool trans_BIC_rrri(DisasContext *ctx, arg_BIC_rrri *a); typedef arg_s_rrr_shi arg_MVN_rxri; static bool trans_MVN_rxri(DisasContext *ctx, arg_MVN_rxri *a); typedef arg_ldst_rr arg_STR_rr; static bool trans_STR_rr(DisasContext *ctx, arg_STR_rr *a); typedef arg_ldst_rr arg_STRH_rr; static bool trans_STRH_rr(DisasContext *ctx, arg_STRH_rr *a); typedef arg_ldst_rr arg_STRB_rr; static bool trans_STRB_rr(DisasContext *ctx, arg_STRB_rr *a); typedef arg_ldst_rr arg_LDRSB_rr; static bool trans_LDRSB_rr(DisasContext *ctx, arg_LDRSB_rr *a); typedef arg_ldst_rr arg_LDR_rr; static bool trans_LDR_rr(DisasContext *ctx, arg_LDR_rr *a); typedef arg_ldst_rr arg_LDRH_rr; static bool trans_LDRH_rr(DisasContext *ctx, arg_LDRH_rr *a); typedef arg_ldst_rr arg_LDRB_rr; static bool trans_LDRB_rr(DisasContext *ctx, arg_LDRB_rr *a); typedef arg_ldst_rr arg_LDRSH_rr; static bool trans_LDRSH_rr(DisasContext *ctx, arg_LDRSH_rr *a); typedef arg_ldst_ri arg_STR_ri; static bool trans_STR_ri(DisasContext *ctx, arg_STR_ri *a); typedef arg_ldst_ri arg_LDR_ri; static bool trans_LDR_ri(DisasContext *ctx, arg_LDR_ri *a); typedef arg_ldst_ri arg_STRB_ri; static bool trans_STRB_ri(DisasContext *ctx, arg_STRB_ri *a); typedef arg_ldst_ri arg_LDRB_ri; static bool trans_LDRB_ri(DisasContext *ctx, arg_LDRB_ri *a); typedef arg_ldst_ri arg_STRH_ri; static bool trans_STRH_ri(DisasContext *ctx, arg_STRH_ri *a); typedef arg_ldst_ri arg_LDRH_ri; static bool trans_LDRH_ri(DisasContext *ctx, arg_LDRH_ri *a); typedef arg_ri arg_ADR; static bool trans_ADR(DisasContext *ctx, arg_ADR *a); typedef arg_s_rri_rot arg_ADD_rri; static bool trans_ADD_rri(DisasContext *ctx, arg_ADD_rri *a); typedef arg_ldst_block arg_STM; static bool trans_STM(DisasContext *ctx, arg_STM *a); typedef arg_ldst_block arg_LDM_t16; static bool trans_LDM_t16(DisasContext *ctx, arg_LDM_t16 *a); typedef arg_s_rrr_shi arg_MOV_rxri; static bool trans_MOV_rxri(DisasContext *ctx, arg_MOV_rxri *a); typedef arg_s_rrr_shi arg_ADD_rrri; static bool trans_ADD_rrri(DisasContext *ctx, arg_ADD_rrri *a); typedef arg_s_rrr_shi arg_SUB_rrri; static bool trans_SUB_rrri(DisasContext *ctx, arg_SUB_rrri *a); typedef arg_s_rri_rot arg_SUB_rri; static bool trans_SUB_rri(DisasContext *ctx, arg_SUB_rri *a); typedef arg_s_rri_rot arg_MOV_rxi; static bool trans_MOV_rxi(DisasContext *ctx, arg_MOV_rxi *a); typedef arg_s_rri_rot arg_CMP_xri; static bool trans_CMP_xri(DisasContext *ctx, arg_CMP_xri *a); typedef arg_r arg_BX; static bool trans_BX(DisasContext *ctx, arg_BX *a); typedef arg_r arg_BLX_r; static bool trans_BLX_r(DisasContext *ctx, arg_BLX_r *a); typedef arg_r arg_BXNS; static bool trans_BXNS(DisasContext *ctx, arg_BXNS *a); typedef arg_r arg_BLXNS; static bool trans_BLXNS(DisasContext *ctx, arg_BLXNS *a); typedef arg_rrr_rot arg_SXTAH; static bool trans_SXTAH(DisasContext *ctx, arg_SXTAH *a); typedef arg_rrr_rot arg_SXTAB; static bool trans_SXTAB(DisasContext *ctx, arg_SXTAB *a); typedef arg_rrr_rot arg_UXTAH; static bool trans_UXTAH(DisasContext *ctx, arg_UXTAH *a); typedef arg_rrr_rot arg_UXTAB; static bool trans_UXTAB(DisasContext *ctx, arg_UXTAB *a); typedef arg_setend arg_SETEND; static bool trans_SETEND(DisasContext *ctx, arg_SETEND *a); typedef arg_cps arg_CPS; static bool trans_CPS(DisasContext *ctx, arg_CPS *a); typedef arg_disas_t1616 arg_CPS_v7m; static bool trans_CPS_v7m(DisasContext *ctx, arg_CPS_v7m *a); typedef arg_rr arg_REV; static bool trans_REV(DisasContext *ctx, arg_REV *a); typedef arg_rr arg_REV16; static bool trans_REV16(DisasContext *ctx, arg_REV16 *a); typedef arg_rr arg_REVSH; static bool trans_REVSH(DisasContext *ctx, arg_REVSH *a); typedef arg_empty arg_YIELD; static bool trans_YIELD(DisasContext *ctx, arg_YIELD *a); typedef arg_empty arg_WFE; static bool trans_WFE(DisasContext *ctx, arg_WFE *a); typedef arg_empty arg_WFI; static bool trans_WFI(DisasContext *ctx, arg_WFI *a); typedef arg_empty arg_NOP; static bool trans_NOP(DisasContext *ctx, arg_NOP *a); typedef arg_disas_t1617 arg_IT; static bool trans_IT(DisasContext *ctx, arg_IT *a); typedef arg_i arg_HLT; static bool trans_HLT(DisasContext *ctx, arg_HLT *a); typedef arg_i arg_BKPT; static bool trans_BKPT(DisasContext *ctx, arg_BKPT *a); typedef arg_disas_t1618 arg_CBZ; static bool trans_CBZ(DisasContext *ctx, arg_CBZ *a); typedef arg_empty arg_UDF; static bool trans_UDF(DisasContext *ctx, arg_UDF *a); typedef arg_i arg_SVC; static bool trans_SVC(DisasContext *ctx, arg_SVC *a); typedef arg_ci arg_B_cond_thumb; static bool trans_B_cond_thumb(DisasContext *ctx, arg_B_cond_thumb *a); typedef arg_i arg_B; static bool trans_B(DisasContext *ctx, arg_B *a); typedef arg_i arg_BLX_suffix; static bool trans_BLX_suffix(DisasContext *ctx, arg_BLX_suffix *a); typedef arg_i arg_BL_BLX_prefix; static bool trans_BL_BLX_prefix(DisasContext *ctx, arg_BL_BLX_prefix *a); typedef arg_i arg_BL_suffix; static bool trans_BL_suffix(DisasContext *ctx, arg_BL_suffix *a); #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE # pragma GCC diagnostic pop #endif static void disas_t16_extract_addsub_2h(DisasContext *ctx, arg_s_rrr_shi *a, uint16_t insn) { a->rm = extract32(insn, 3, 4); a->rd = deposit32(extract32(insn, 0, 3), 3, 29, extract32(insn, 7, 1)); a->rn = deposit32(extract32(insn, 0, 3), 3, 29, extract32(insn, 7, 1)); a->shim = 0; a->shty = 0; } static void disas_t16_extract_addsub_2i(DisasContext *ctx, arg_s_rri_rot *a, uint16_t insn) { a->imm = extract32(insn, 6, 3); a->rn = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->rot = 0; } static void disas_t16_extract_addsub_3(DisasContext *ctx, arg_s_rrr_shi *a, uint16_t insn) { a->rm = extract32(insn, 6, 3); a->rn = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->shim = 0; a->shty = 0; } static void disas_t16_extract_addsub_sp_i(DisasContext *ctx, arg_s_rri_rot *a, uint16_t insn) { a->s = 0; a->rd = 13; a->rn = 13; a->rot = 0; a->imm = times_4(ctx, extract32(insn, 0, 7)); } static void disas_t16_extract_arith_1i(DisasContext *ctx, arg_s_rri_rot *a, uint16_t insn) { a->rd = extract32(insn, 8, 3); a->imm = extract32(insn, 0, 8); a->rot = 0; a->rn = extract32(insn, 8, 3); } static void disas_t16_extract_branchr(DisasContext *ctx, arg_r *a, uint16_t insn) { a->rm = extract32(insn, 3, 4); } static void disas_t16_extract_disas_t16_Fmt_10(DisasContext *ctx, arg_ri *a, uint16_t insn) { a->rd = extract32(insn, 8, 3); a->imm = times_4(ctx, extract32(insn, 0, 8)); } static void disas_t16_extract_disas_t16_Fmt_11(DisasContext *ctx, arg_s_rri_rot *a, uint16_t insn) { a->rd = extract32(insn, 8, 3); a->rn = 13; a->s = 0; a->rot = 0; a->imm = times_4(ctx, extract32(insn, 0, 8)); } static void disas_t16_extract_disas_t16_Fmt_21(DisasContext *ctx, arg_setend *a, uint16_t insn) { a->E = extract32(insn, 3, 1); } static void disas_t16_extract_disas_t16_Fmt_22(DisasContext *ctx, arg_cps *a, uint16_t insn) { a->A = extract32(insn, 2, 1); a->I = extract32(insn, 1, 1); a->F = extract32(insn, 0, 1); a->mode = 0; a->M = 0; a->imod = plus_2(ctx, extract32(insn, 4, 1)); } static void disas_t16_extract_disas_t16_Fmt_23(DisasContext *ctx, arg_disas_t1616 *a, uint16_t insn) { a->im = extract32(insn, 4, 1); a->I = extract32(insn, 1, 1); a->F = extract32(insn, 0, 1); } static void disas_t16_extract_disas_t16_Fmt_25(DisasContext *ctx, arg_empty *a, uint16_t insn) { } static void disas_t16_extract_disas_t16_Fmt_26(DisasContext *ctx, arg_disas_t1617 *a, uint16_t insn) { a->cond_mask = extract32(insn, 0, 8); } static void disas_t16_extract_disas_t16_Fmt_27(DisasContext *ctx, arg_i *a, uint16_t insn) { a->imm = extract32(insn, 0, 6); } static void disas_t16_extract_disas_t16_Fmt_28(DisasContext *ctx, arg_i *a, uint16_t insn) { a->imm = extract32(insn, 0, 8); } static void disas_t16_extract_disas_t16_Fmt_29(DisasContext *ctx, arg_disas_t1618 *a, uint16_t insn) { a->nz = extract32(insn, 11, 1); a->rn = extract32(insn, 0, 3); a->imm = times_2(ctx, deposit32(extract32(insn, 3, 5), 5, 27, extract32(insn, 9, 1))); } static void disas_t16_extract_disas_t16_Fmt_3(DisasContext *ctx, arg_s_rri_rot *a, uint16_t insn) { a->rn = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->imm = 0; a->rot = 0; } static void disas_t16_extract_disas_t16_Fmt_30(DisasContext *ctx, arg_ldst_block *a, uint16_t insn) { a->i = 0; a->b = 1; a->u = 0; a->w = 1; a->rn = 13; a->list = t16_push_list(ctx, extract32(insn, 0, 9)); } static void disas_t16_extract_disas_t16_Fmt_31(DisasContext *ctx, arg_ldst_block *a, uint16_t insn) { a->i = 1; a->b = 0; a->u = 0; a->w = 1; a->rn = 13; a->list = t16_pop_list(ctx, extract32(insn, 0, 9)); } static void disas_t16_extract_disas_t16_Fmt_32(DisasContext *ctx, arg_ci *a, uint16_t insn) { a->cond = extract32(insn, 8, 4); a->imm = times_2(ctx, sextract32(insn, 0, 8)); } static void disas_t16_extract_disas_t16_Fmt_33(DisasContext *ctx, arg_i *a, uint16_t insn) { a->imm = times_2(ctx, sextract32(insn, 0, 11)); } static void disas_t16_extract_disas_t16_Fmt_34(DisasContext *ctx, arg_i *a, uint16_t insn) { a->imm = extract32(insn, 0, 11); } static void disas_t16_extract_disas_t16_Fmt_35(DisasContext *ctx, arg_i *a, uint16_t insn) { a->imm = sextract32(insn, 0, 11); } static void disas_t16_extract_disas_t16_Fmt_4(DisasContext *ctx, arg_s_rrrr *a, uint16_t insn) { a->rn = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->rm = extract32(insn, 0, 3); a->ra = 0; } static void disas_t16_extract_extend(DisasContext *ctx, arg_rrr_rot *a, uint16_t insn) { a->rm = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->rn = 15; a->rot = 0; } static void disas_t16_extract_ldst_ri_1(DisasContext *ctx, arg_ldst_ri *a, uint16_t insn) { a->imm = extract32(insn, 6, 5); a->rn = extract32(insn, 3, 3); a->rt = extract32(insn, 0, 3); a->p = 1; a->w = 0; a->u = 1; } static void disas_t16_extract_ldst_ri_2(DisasContext *ctx, arg_ldst_ri *a, uint16_t insn) { a->rn = extract32(insn, 3, 3); a->rt = extract32(insn, 0, 3); a->p = 1; a->w = 0; a->u = 1; a->imm = times_2(ctx, extract32(insn, 6, 5)); } static void disas_t16_extract_ldst_ri_4(DisasContext *ctx, arg_ldst_ri *a, uint16_t insn) { a->rn = extract32(insn, 3, 3); a->rt = extract32(insn, 0, 3); a->p = 1; a->w = 0; a->u = 1; a->imm = times_4(ctx, extract32(insn, 6, 5)); } static void disas_t16_extract_ldst_rr(DisasContext *ctx, arg_ldst_rr *a, uint16_t insn) { a->rm = extract32(insn, 6, 3); a->rn = extract32(insn, 3, 3); a->rt = extract32(insn, 0, 3); a->p = 1; a->w = 0; a->u = 1; a->shimm = 0; a->shtype = 0; } static void disas_t16_extract_ldst_spec_i(DisasContext *ctx, arg_ldst_ri *a, uint16_t insn) { a->rt = extract32(insn, 8, 3); a->p = 1; a->w = 0; a->u = 1; a->imm = times_4(ctx, extract32(insn, 0, 8)); } static void disas_t16_extract_ldstm(DisasContext *ctx, arg_ldst_block *a, uint16_t insn) { a->rn = extract32(insn, 8, 3); a->list = extract32(insn, 0, 8); a->i = 1; a->b = 0; a->u = 0; a->w = 1; } static void disas_t16_extract_lll_noshr(DisasContext *ctx, arg_s_rrr_shi *a, uint16_t insn) { a->rm = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->rn = extract32(insn, 0, 3); a->shim = 0; a->shty = 0; } static void disas_t16_extract_lxl_shr(DisasContext *ctx, arg_s_rrr_shr *a, uint16_t insn) { a->rs = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->rm = extract32(insn, 0, 3); a->rn = 0; } static void disas_t16_extract_rdm(DisasContext *ctx, arg_rr *a, uint16_t insn) { a->rm = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); } static void disas_t16_extract_shift_i(DisasContext *ctx, arg_s_rrr_shi *a, uint16_t insn) { a->shim = extract32(insn, 6, 5); a->rm = extract32(insn, 3, 3); a->rd = extract32(insn, 0, 3); a->s = t16_setflags(ctx); a->rn = extract32(insn, 0, 3); } static void disas_t16_extract_xll_noshr(DisasContext *ctx, arg_s_rrr_shi *a, uint16_t insn) { a->rm = extract32(insn, 3, 3); a->rn = extract32(insn, 0, 3); a->s = 1; a->rd = 0; a->shim = 0; a->shty = 0; } static bool disas_t16(DisasContext *ctx, uint16_t insn) { union { arg_ci f_ci; arg_cps f_cps; arg_disas_t1616 f_disas_t1616; arg_disas_t1617 f_disas_t1617; arg_disas_t1618 f_disas_t1618; arg_empty f_empty; arg_i f_i; arg_ldst_block f_ldst_block; arg_ldst_ri f_ldst_ri; arg_ldst_rr f_ldst_rr; arg_r f_r; arg_ri f_ri; arg_rr f_rr; arg_rrr_rot f_rrr_rot; arg_s_rri_rot f_s_rri_rot; arg_s_rrr_shi f_s_rrr_shi; arg_s_rrr_shr f_s_rrr_shr; arg_s_rrrr f_s_rrrr; arg_setend f_setend; } u; switch ((insn >> 12) & 0xf) { case 0x0: /* 0000.... ........ */ disas_t16_extract_shift_i(ctx, &u.f_s_rrr_shi, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 00000... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:137 */ u.f_s_rrr_shi.shty = 0; if (trans_MOV_rxri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 00001... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:138 */ u.f_s_rrr_shi.shty = 1; if (trans_MOV_rxri(ctx, &u.f_s_rrr_shi)) return true; return false; } return false; case 0x1: /* 0001.... ........ */ switch ((insn >> 11) & 0x1) { case 0x0: /* 00010... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:139 */ disas_t16_extract_shift_i(ctx, &u.f_s_rrr_shi, insn); u.f_s_rrr_shi.shty = 2; if (trans_MOV_rxri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 00011... ........ */ switch ((insn >> 9) & 0x3) { case 0x0: /* 0001100. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:146 */ disas_t16_extract_addsub_3(ctx, &u.f_s_rrr_shi, insn); if (trans_ADD_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 0001101. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:147 */ disas_t16_extract_addsub_3(ctx, &u.f_s_rrr_shi, insn); if (trans_SUB_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x2: /* 0001110. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:154 */ disas_t16_extract_addsub_2i(ctx, &u.f_s_rri_rot, insn); if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true; return false; case 0x3: /* 0001111. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:155 */ disas_t16_extract_addsub_2i(ctx, &u.f_s_rri_rot, insn); if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true; return false; } return false; } return false; case 0x2: /* 0010.... ........ */ disas_t16_extract_arith_1i(ctx, &u.f_s_rri_rot, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 00100... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:163 */ u.f_s_rri_rot.s = t16_setflags(ctx); if (trans_MOV_rxi(ctx, &u.f_s_rri_rot)) return true; return false; case 0x1: /* 00101... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:164 */ u.f_s_rri_rot.s = 1; if (trans_CMP_xri(ctx, &u.f_s_rri_rot)) return true; return false; } return false; case 0x3: /* 0011.... ........ */ disas_t16_extract_arith_1i(ctx, &u.f_s_rri_rot, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 00110... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:165 */ u.f_s_rri_rot.s = t16_setflags(ctx); if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true; return false; case 0x1: /* 00111... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:166 */ u.f_s_rri_rot.s = t16_setflags(ctx); if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true; return false; } return false; case 0x4: /* 0100.... ........ */ switch ((insn >> 11) & 0x1) { case 0x0: /* 01000... ........ */ switch ((insn >> 8) & 0x7) { case 0x0: /* 01000000 ........ */ switch ((insn >> 6) & 0x3) { case 0x0: /* 01000000 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:53 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_AND_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 01000000 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:54 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_EOR_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x2: /* 01000000 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:55 */ disas_t16_extract_lxl_shr(ctx, &u.f_s_rrr_shr, insn); u.f_s_rrr_shr.shty = 0; if (trans_MOV_rxrr(ctx, &u.f_s_rrr_shr)) return true; return false; case 0x3: /* 01000000 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:56 */ disas_t16_extract_lxl_shr(ctx, &u.f_s_rrr_shr, insn); u.f_s_rrr_shr.shty = 1; if (trans_MOV_rxrr(ctx, &u.f_s_rrr_shr)) return true; return false; } return false; case 0x1: /* 01000001 ........ */ switch ((insn >> 6) & 0x3) { case 0x0: /* 01000001 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:57 */ disas_t16_extract_lxl_shr(ctx, &u.f_s_rrr_shr, insn); u.f_s_rrr_shr.shty = 2; if (trans_MOV_rxrr(ctx, &u.f_s_rrr_shr)) return true; return false; case 0x1: /* 01000001 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:58 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_ADC_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x2: /* 01000001 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:59 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_SBC_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x3: /* 01000001 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:60 */ disas_t16_extract_lxl_shr(ctx, &u.f_s_rrr_shr, insn); u.f_s_rrr_shr.shty = 3; if (trans_MOV_rxrr(ctx, &u.f_s_rrr_shr)) return true; return false; } return false; case 0x2: /* 01000010 ........ */ switch ((insn >> 6) & 0x3) { case 0x0: /* 01000010 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:61 */ disas_t16_extract_xll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_TST_xrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 01000010 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:62 */ disas_t16_extract_disas_t16_Fmt_3(ctx, &u.f_s_rri_rot, insn); if (trans_RSB_rri(ctx, &u.f_s_rri_rot)) return true; return false; case 0x2: /* 01000010 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:63 */ disas_t16_extract_xll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_CMP_xrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x3: /* 01000010 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:64 */ disas_t16_extract_xll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_CMN_xrri(ctx, &u.f_s_rrr_shi)) return true; return false; } return false; case 0x3: /* 01000011 ........ */ switch ((insn >> 6) & 0x3) { case 0x0: /* 01000011 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:65 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_ORR_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x1: /* 01000011 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:66 */ disas_t16_extract_disas_t16_Fmt_4(ctx, &u.f_s_rrrr, insn); if (trans_MUL(ctx, &u.f_s_rrrr)) return true; return false; case 0x2: /* 01000011 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:67 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_BIC_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x3: /* 01000011 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:68 */ disas_t16_extract_lll_noshr(ctx, &u.f_s_rrr_shi, insn); if (trans_MVN_rxri(ctx, &u.f_s_rrr_shi)) return true; return false; } return false; case 0x4: /* 01000100 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:174 */ disas_t16_extract_addsub_2h(ctx, &u.f_s_rrr_shi, insn); u.f_s_rrr_shi.s = 0; if (trans_ADD_rrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x5: /* 01000101 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:175 */ disas_t16_extract_addsub_2h(ctx, &u.f_s_rrr_shi, insn); u.f_s_rrr_shi.s = 1; if (trans_CMP_xrri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x6: /* 01000110 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:176 */ disas_t16_extract_addsub_2h(ctx, &u.f_s_rrr_shi, insn); u.f_s_rrr_shi.s = 0; if (trans_MOV_rxri(ctx, &u.f_s_rrr_shi)) return true; return false; case 0x7: /* 01000111 ........ */ disas_t16_extract_branchr(ctx, &u.f_r, insn); switch (insn & 0x00000087) { case 0x00000000: /* 01000111 0....000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:191 */ if (trans_BX(ctx, &u.f_r)) return true; return false; case 0x00000004: /* 01000111 0....100 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:193 */ if (trans_BXNS(ctx, &u.f_r)) return true; return false; case 0x00000080: /* 01000111 1....000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:192 */ if (trans_BLX_r(ctx, &u.f_r)) return true; return false; case 0x00000084: /* 01000111 1....100 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:194 */ if (trans_BLXNS(ctx, &u.f_r)) return true; return false; } return false; } return false; case 0x1: /* 01001... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:118 */ disas_t16_extract_ldst_spec_i(ctx, &u.f_ldst_ri, insn); u.f_ldst_ri.rn = 15; if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true; return false; } return false; case 0x5: /* 0101.... ........ */ disas_t16_extract_ldst_rr(ctx, &u.f_ldst_rr, insn); switch ((insn >> 9) & 0x7) { case 0x0: /* 0101000. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:75 */ if (trans_STR_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x1: /* 0101001. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:76 */ if (trans_STRH_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x2: /* 0101010. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:77 */ if (trans_STRB_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x3: /* 0101011. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:78 */ if (trans_LDRSB_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x4: /* 0101100. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:79 */ if (trans_LDR_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x5: /* 0101101. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:80 */ if (trans_LDRH_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x6: /* 0101110. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:81 */ if (trans_LDRB_rr(ctx, &u.f_ldst_rr)) return true; return false; case 0x7: /* 0101111. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:82 */ if (trans_LDRSH_rr(ctx, &u.f_ldst_rr)) return true; return false; } return false; case 0x6: /* 0110.... ........ */ disas_t16_extract_ldst_ri_4(ctx, &u.f_ldst_ri, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 01100... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:93 */ if (trans_STR_ri(ctx, &u.f_ldst_ri)) return true; return false; case 0x1: /* 01101... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:94 */ if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true; return false; } return false; case 0x7: /* 0111.... ........ */ disas_t16_extract_ldst_ri_1(ctx, &u.f_ldst_ri, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 01110... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:95 */ if (trans_STRB_ri(ctx, &u.f_ldst_ri)) return true; return false; case 0x1: /* 01111... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:96 */ if (trans_LDRB_ri(ctx, &u.f_ldst_ri)) return true; return false; } return false; case 0x8: /* 1000.... ........ */ disas_t16_extract_ldst_ri_2(ctx, &u.f_ldst_ri, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 10000... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:104 */ if (trans_STRH_ri(ctx, &u.f_ldst_ri)) return true; return false; case 0x1: /* 10001... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:105 */ if (trans_LDRH_ri(ctx, &u.f_ldst_ri)) return true; return false; } return false; case 0x9: /* 1001.... ........ */ disas_t16_extract_ldst_spec_i(ctx, &u.f_ldst_ri, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 10010... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:113 */ u.f_ldst_ri.rn = 13; if (trans_STR_ri(ctx, &u.f_ldst_ri)) return true; return false; case 0x1: /* 10011... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:114 */ u.f_ldst_ri.rn = 13; if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true; return false; } return false; case 0xa: /* 1010.... ........ */ switch ((insn >> 11) & 0x1) { case 0x0: /* 10100... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:122 */ disas_t16_extract_disas_t16_Fmt_10(ctx, &u.f_ri, insn); if (trans_ADR(ctx, &u.f_ri)) return true; return false; case 0x1: /* 10101... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:123 */ disas_t16_extract_disas_t16_Fmt_11(ctx, &u.f_s_rri_rot, insn); if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true; return false; } return false; case 0xb: /* 1011.... ........ */ switch ((insn >> 10) & 0x1) { case 0x0: /* 1011.0.. ........ */ switch ((insn >> 8) & 0x1) { case 0x0: /* 1011.0.0 ........ */ switch (insn & 0x00000a80) { case 0x00000000: /* 10110000 0....... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:184 */ disas_t16_extract_addsub_sp_i(ctx, &u.f_s_rri_rot, insn); if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true; return false; case 0x00000080: /* 10110000 1....... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:185 */ disas_t16_extract_addsub_sp_i(ctx, &u.f_s_rri_rot, insn); if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true; return false; case 0x00000200: /* 10110010 0....... */ disas_t16_extract_extend(ctx, &u.f_rrr_rot, insn); switch ((insn >> 6) & 0x1) { case 0x0: /* 10110010 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:200 */ if (trans_SXTAH(ctx, &u.f_rrr_rot)) return true; return false; case 0x1: /* 10110010 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:201 */ if (trans_SXTAB(ctx, &u.f_rrr_rot)) return true; return false; } return false; case 0x00000280: /* 10110010 1....... */ disas_t16_extract_extend(ctx, &u.f_rrr_rot, insn); switch ((insn >> 6) & 0x1) { case 0x0: /* 10110010 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:202 */ if (trans_UXTAH(ctx, &u.f_rrr_rot)) return true; return false; case 0x1: /* 10110010 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:203 */ if (trans_UXTAB(ctx, &u.f_rrr_rot)) return true; return false; } return false; case 0x00000a00: /* 10111010 0....... */ disas_t16_extract_rdm(ctx, &u.f_rr, insn); switch ((insn >> 6) & 0x1) { case 0x0: /* 10111010 00...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:219 */ if (trans_REV(ctx, &u.f_rr)) return true; return false; case 0x1: /* 10111010 01...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:220 */ if (trans_REV16(ctx, &u.f_rr)) return true; return false; } return false; case 0x00000a80: /* 10111010 1....... */ switch ((insn >> 6) & 0x1) { case 0x0: /* 10111010 10...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:246 */ disas_t16_extract_disas_t16_Fmt_27(ctx, &u.f_i, insn); if (trans_HLT(ctx, &u.f_i)) return true; return false; case 0x1: /* 10111010 11...... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:221 */ disas_t16_extract_rdm(ctx, &u.f_rr, insn); if (trans_REVSH(ctx, &u.f_rr)) return true; return false; } return false; } return false; case 0x1: /* 1011.0.1 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:248 */ disas_t16_extract_disas_t16_Fmt_29(ctx, &u.f_disas_t1618, insn); if (trans_CBZ(ctx, &u.f_disas_t1618)) return true; return false; } return false; case 0x1: /* 1011.1.. ........ */ switch (insn & 0x00000a00) { case 0x00000000: /* 1011010. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:255 */ disas_t16_extract_disas_t16_Fmt_30(ctx, &u.f_ldst_block, insn); if (trans_STM(ctx, &u.f_ldst_block)) return true; return false; case 0x00000200: /* 1011011. ........ */ switch ((insn >> 5) & 0xf) { case 0x2: /* 10110110 010..... */ disas_t16_extract_disas_t16_Fmt_21(ctx, &u.f_setend, insn); switch (insn & 0x00000017) { case 0x00000010: /* 10110110 0101.000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:209 */ if (trans_SETEND(ctx, &u.f_setend)) return true; return false; } return false; case 0x3: /* 10110110 011..... */ switch ((insn >> 3) & 0x1) { case 0x0: /* 10110110 011.0... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:211 */ disas_t16_extract_disas_t16_Fmt_22(ctx, &u.f_cps, insn); if (trans_CPS(ctx, &u.f_cps)) return true; if ((insn & 0x00000004) == 0x00000000) { /* 10110110 011.00.. */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:212 */ disas_t16_extract_disas_t16_Fmt_23(ctx, &u.f_disas_t1616, insn); if (trans_CPS_v7m(ctx, &u.f_disas_t1616)) return true; } return false; } return false; } return false; case 0x00000800: /* 1011110. ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:257 */ disas_t16_extract_disas_t16_Fmt_31(ctx, &u.f_ldst_block, insn); if (trans_LDM_t16(ctx, &u.f_ldst_block)) return true; return false; case 0x00000a00: /* 1011111. ........ */ switch ((insn >> 8) & 0x1) { case 0x0: /* 10111110 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:247 */ disas_t16_extract_disas_t16_Fmt_28(ctx, &u.f_i, insn); if (trans_BKPT(ctx, &u.f_i)) return true; return false; case 0x1: /* 10111111 ........ */ if ((insn & 0x0000000f) == 0x00000000) { /* 10111111 ....0000 */ if ((insn & 0x000000f0) == 0x00000010) { /* 10111111 00010000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:227 */ disas_t16_extract_disas_t16_Fmt_25(ctx, &u.f_empty, insn); if (trans_YIELD(ctx, &u.f_empty)) return true; } if ((insn & 0x000000f0) == 0x00000020) { /* 10111111 00100000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:228 */ disas_t16_extract_disas_t16_Fmt_25(ctx, &u.f_empty, insn); if (trans_WFE(ctx, &u.f_empty)) return true; } if ((insn & 0x000000f0) == 0x00000030) { /* 10111111 00110000 */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:229 */ disas_t16_extract_disas_t16_Fmt_25(ctx, &u.f_empty, insn); if (trans_WFI(ctx, &u.f_empty)) return true; } /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:237 */ disas_t16_extract_disas_t16_Fmt_25(ctx, &u.f_empty, insn); if (trans_NOP(ctx, &u.f_empty)) return true; } /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:239 */ disas_t16_extract_disas_t16_Fmt_26(ctx, &u.f_disas_t1617, insn); if (trans_IT(ctx, &u.f_disas_t1617)) return true; return false; } return false; } return false; } return false; case 0xc: /* 1100.... ........ */ disas_t16_extract_ldstm(ctx, &u.f_ldst_block, insn); switch ((insn >> 11) & 0x1) { case 0x0: /* 11000... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:130 */ if (trans_STM(ctx, &u.f_ldst_block)) return true; return false; case 0x1: /* 11001... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:131 */ if (trans_LDM_t16(ctx, &u.f_ldst_block)) return true; return false; } return false; case 0xd: /* 1101.... ........ */ if ((insn & 0x00000f00) == 0x00000e00) { /* 11011110 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:265 */ disas_t16_extract_disas_t16_Fmt_25(ctx, &u.f_empty, insn); if (trans_UDF(ctx, &u.f_empty)) return true; } if ((insn & 0x00000f00) == 0x00000f00) { /* 11011111 ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:266 */ disas_t16_extract_disas_t16_Fmt_28(ctx, &u.f_i, insn); if (trans_SVC(ctx, &u.f_i)) return true; } /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:267 */ disas_t16_extract_disas_t16_Fmt_32(ctx, &u.f_ci, insn); if (trans_B_cond_thumb(ctx, &u.f_ci)) return true; return false; case 0xe: /* 1110.... ........ */ switch ((insn >> 11) & 0x1) { case 0x0: /* 11100... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:274 */ disas_t16_extract_disas_t16_Fmt_33(ctx, &u.f_i, insn); if (trans_B(ctx, &u.f_i)) return true; return false; case 0x1: /* 11101... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:279 */ disas_t16_extract_disas_t16_Fmt_34(ctx, &u.f_i, insn); if (trans_BLX_suffix(ctx, &u.f_i)) return true; return false; } return false; case 0xf: /* 1111.... ........ */ switch ((insn >> 11) & 0x1) { case 0x0: /* 11110... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:280 */ disas_t16_extract_disas_t16_Fmt_35(ctx, &u.f_i, insn); if (trans_BL_BLX_prefix(ctx, &u.f_i)) return true; return false; case 0x1: /* 11111... ........ */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t16.decode:281 */ disas_t16_extract_disas_t16_Fmt_34(ctx, &u.f_i, insn); if (trans_BL_suffix(ctx, &u.f_i)) return true; return false; } return false; } return false; }