unicorn/qemu/target/arm/decode-t32.inc.c
Nguyen Anh Quynh aaaea14214 import Unicorn2
2021-10-03 22:14:44 +08:00

3018 lines
152 KiB
C

/* This file is autogenerated by scripts/decodetree.py. */
typedef struct {
int cond;
int imm;
} arg_ci;
typedef struct {
int rd;
int sysm;
} arg_disas_t3227;
typedef struct {
int mask;
int rn;
int sysm;
} arg_disas_t3228;
typedef struct {
int A;
int T;
int rd;
int rn;
} arg_disas_t3230;
typedef struct {
int imm;
int p;
int rn;
int rt;
int rt2;
int u;
int w;
} arg_ldst_ri2;
typedef struct {
int rm;
int rn;
} arg_tbranch;
#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_TST_xrri;
static bool trans_TST_xrri(DisasContext *ctx, arg_TST_xrri *a);
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_BIC_rrri;
static bool trans_BIC_rrri(DisasContext *ctx, arg_BIC_rrri *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_ORR_rrri;
static bool trans_ORR_rrri(DisasContext *ctx, arg_ORR_rrri *a);
typedef arg_s_rrr_shi arg_MVN_rxri;
static bool trans_MVN_rxri(DisasContext *ctx, arg_MVN_rxri *a);
typedef arg_s_rrr_shi arg_ORN_rrri;
static bool trans_ORN_rrri(DisasContext *ctx, arg_ORN_rrri *a);
typedef arg_s_rrr_shi arg_TEQ_xrri;
static bool trans_TEQ_xrri(DisasContext *ctx, arg_TEQ_xrri *a);
typedef arg_s_rrr_shi arg_EOR_rrri;
static bool trans_EOR_rrri(DisasContext *ctx, arg_EOR_rrri *a);
typedef arg_pkh arg_PKH;
static bool trans_PKH(DisasContext *ctx, arg_PKH *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_ADD_rrri;
static bool trans_ADD_rrri(DisasContext *ctx, arg_ADD_rrri *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_CMP_xrri;
static bool trans_CMP_xrri(DisasContext *ctx, arg_CMP_xrri *a);
typedef arg_s_rrr_shi arg_SUB_rrri;
static bool trans_SUB_rrri(DisasContext *ctx, arg_SUB_rrri *a);
typedef arg_s_rrr_shi arg_RSB_rrri;
static bool trans_RSB_rrri(DisasContext *ctx, arg_RSB_rrri *a);
typedef arg_s_rrr_shr arg_MOV_rxrr;
static bool trans_MOV_rxrr(DisasContext *ctx, arg_MOV_rxrr *a);
typedef arg_s_rri_rot arg_TST_xri;
static bool trans_TST_xri(DisasContext *ctx, arg_TST_xri *a);
typedef arg_s_rri_rot arg_AND_rri;
static bool trans_AND_rri(DisasContext *ctx, arg_AND_rri *a);
typedef arg_s_rri_rot arg_BIC_rri;
static bool trans_BIC_rri(DisasContext *ctx, arg_BIC_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_ORR_rri;
static bool trans_ORR_rri(DisasContext *ctx, arg_ORR_rri *a);
typedef arg_s_rri_rot arg_MVN_rxi;
static bool trans_MVN_rxi(DisasContext *ctx, arg_MVN_rxi *a);
typedef arg_s_rri_rot arg_ORN_rri;
static bool trans_ORN_rri(DisasContext *ctx, arg_ORN_rri *a);
typedef arg_s_rri_rot arg_TEQ_xri;
static bool trans_TEQ_xri(DisasContext *ctx, arg_TEQ_xri *a);
typedef arg_s_rri_rot arg_EOR_rri;
static bool trans_EOR_rri(DisasContext *ctx, arg_EOR_rri *a);
typedef arg_s_rri_rot arg_CMN_xri;
static bool trans_CMN_xri(DisasContext *ctx, arg_CMN_xri *a);
typedef arg_s_rri_rot arg_ADD_rri;
static bool trans_ADD_rri(DisasContext *ctx, arg_ADD_rri *a);
typedef arg_s_rri_rot arg_ADC_rri;
static bool trans_ADC_rri(DisasContext *ctx, arg_ADC_rri *a);
typedef arg_s_rri_rot arg_SBC_rri;
static bool trans_SBC_rri(DisasContext *ctx, arg_SBC_rri *a);
typedef arg_s_rri_rot arg_CMP_xri;
static bool trans_CMP_xri(DisasContext *ctx, arg_CMP_xri *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_RSB_rri;
static bool trans_RSB_rri(DisasContext *ctx, arg_RSB_rri *a);
typedef arg_ri arg_ADR;
static bool trans_ADR(DisasContext *ctx, arg_ADR *a);
typedef arg_ri arg_MOVW;
static bool trans_MOVW(DisasContext *ctx, arg_MOVW *a);
typedef arg_ri arg_MOVT;
static bool trans_MOVT(DisasContext *ctx, arg_MOVT *a);
typedef arg_sat arg_SSAT16;
static bool trans_SSAT16(DisasContext *ctx, arg_SSAT16 *a);
typedef arg_sat arg_SSAT;
static bool trans_SSAT(DisasContext *ctx, arg_SSAT *a);
typedef arg_sat arg_USAT16;
static bool trans_USAT16(DisasContext *ctx, arg_USAT16 *a);
typedef arg_sat arg_USAT;
static bool trans_USAT(DisasContext *ctx, arg_USAT *a);
typedef arg_bfx arg_SBFX;
static bool trans_SBFX(DisasContext *ctx, arg_SBFX *a);
typedef arg_bfx arg_UBFX;
static bool trans_UBFX(DisasContext *ctx, arg_UBFX *a);
typedef arg_bfi arg_BFCI;
static bool trans_BFCI(DisasContext *ctx, arg_BFCI *a);
typedef arg_s_rrrr arg_MUL;
static bool trans_MUL(DisasContext *ctx, arg_MUL *a);
typedef arg_s_rrrr arg_MLA;
static bool trans_MLA(DisasContext *ctx, arg_MLA *a);
typedef arg_rrrr arg_MLS;
static bool trans_MLS(DisasContext *ctx, arg_MLS *a);
typedef arg_s_rrrr arg_SMULL;
static bool trans_SMULL(DisasContext *ctx, arg_SMULL *a);
typedef arg_s_rrrr arg_UMULL;
static bool trans_UMULL(DisasContext *ctx, arg_UMULL *a);
typedef arg_s_rrrr arg_SMLAL;
static bool trans_SMLAL(DisasContext *ctx, arg_SMLAL *a);
typedef arg_s_rrrr arg_UMLAL;
static bool trans_UMLAL(DisasContext *ctx, arg_UMLAL *a);
typedef arg_rrrr arg_UMAAL;
static bool trans_UMAAL(DisasContext *ctx, arg_UMAAL *a);
typedef arg_rrrr arg_SMULWB;
static bool trans_SMULWB(DisasContext *ctx, arg_SMULWB *a);
typedef arg_rrrr arg_SMLAWB;
static bool trans_SMLAWB(DisasContext *ctx, arg_SMLAWB *a);
typedef arg_rrrr arg_SMULWT;
static bool trans_SMULWT(DisasContext *ctx, arg_SMULWT *a);
typedef arg_rrrr arg_SMLAWT;
static bool trans_SMLAWT(DisasContext *ctx, arg_SMLAWT *a);
typedef arg_rrrr arg_SMULBB;
static bool trans_SMULBB(DisasContext *ctx, arg_SMULBB *a);
typedef arg_rrrr arg_SMLABB;
static bool trans_SMLABB(DisasContext *ctx, arg_SMLABB *a);
typedef arg_rrrr arg_SMULBT;
static bool trans_SMULBT(DisasContext *ctx, arg_SMULBT *a);
typedef arg_rrrr arg_SMLABT;
static bool trans_SMLABT(DisasContext *ctx, arg_SMLABT *a);
typedef arg_rrrr arg_SMULTB;
static bool trans_SMULTB(DisasContext *ctx, arg_SMULTB *a);
typedef arg_rrrr arg_SMLATB;
static bool trans_SMLATB(DisasContext *ctx, arg_SMLATB *a);
typedef arg_rrrr arg_SMULTT;
static bool trans_SMULTT(DisasContext *ctx, arg_SMULTT *a);
typedef arg_rrrr arg_SMLATT;
static bool trans_SMLATT(DisasContext *ctx, arg_SMLATT *a);
typedef arg_rrrr arg_SMLALBB;
static bool trans_SMLALBB(DisasContext *ctx, arg_SMLALBB *a);
typedef arg_rrrr arg_SMLALBT;
static bool trans_SMLALBT(DisasContext *ctx, arg_SMLALBT *a);
typedef arg_rrrr arg_SMLALTB;
static bool trans_SMLALTB(DisasContext *ctx, arg_SMLALTB *a);
typedef arg_rrrr arg_SMLALTT;
static bool trans_SMLALTT(DisasContext *ctx, arg_SMLALTT *a);
typedef arg_rrrr arg_USADA8;
static bool trans_USADA8(DisasContext *ctx, arg_USADA8 *a);
typedef arg_rrrr arg_SMLAD;
static bool trans_SMLAD(DisasContext *ctx, arg_SMLAD *a);
typedef arg_rrrr arg_SMLADX;
static bool trans_SMLADX(DisasContext *ctx, arg_SMLADX *a);
typedef arg_rrrr arg_SMLSD;
static bool trans_SMLSD(DisasContext *ctx, arg_SMLSD *a);
typedef arg_rrrr arg_SMLSDX;
static bool trans_SMLSDX(DisasContext *ctx, arg_SMLSDX *a);
typedef arg_rrrr arg_SMLALD;
static bool trans_SMLALD(DisasContext *ctx, arg_SMLALD *a);
typedef arg_rrrr arg_SMLALDX;
static bool trans_SMLALDX(DisasContext *ctx, arg_SMLALDX *a);
typedef arg_rrrr arg_SMLSLD;
static bool trans_SMLSLD(DisasContext *ctx, arg_SMLSLD *a);
typedef arg_rrrr arg_SMLSLDX;
static bool trans_SMLSLDX(DisasContext *ctx, arg_SMLSLDX *a);
typedef arg_rrrr arg_SMMLA;
static bool trans_SMMLA(DisasContext *ctx, arg_SMMLA *a);
typedef arg_rrrr arg_SMMLAR;
static bool trans_SMMLAR(DisasContext *ctx, arg_SMMLAR *a);
typedef arg_rrrr arg_SMMLS;
static bool trans_SMMLS(DisasContext *ctx, arg_SMMLS *a);
typedef arg_rrrr arg_SMMLSR;
static bool trans_SMMLSR(DisasContext *ctx, arg_SMMLSR *a);
typedef arg_rrr arg_SDIV;
static bool trans_SDIV(DisasContext *ctx, arg_SDIV *a);
typedef arg_rrr arg_UDIV;
static bool trans_UDIV(DisasContext *ctx, arg_UDIV *a);
typedef arg_rrr arg_QADD;
static bool trans_QADD(DisasContext *ctx, arg_QADD *a);
typedef arg_rrr arg_QSUB;
static bool trans_QSUB(DisasContext *ctx, arg_QSUB *a);
typedef arg_rrr arg_QDADD;
static bool trans_QDADD(DisasContext *ctx, arg_QDADD *a);
typedef arg_rrr arg_QDSUB;
static bool trans_QDSUB(DisasContext *ctx, arg_QDSUB *a);
typedef arg_rrr arg_CRC32B;
static bool trans_CRC32B(DisasContext *ctx, arg_CRC32B *a);
typedef arg_rrr arg_CRC32H;
static bool trans_CRC32H(DisasContext *ctx, arg_CRC32H *a);
typedef arg_rrr arg_CRC32W;
static bool trans_CRC32W(DisasContext *ctx, arg_CRC32W *a);
typedef arg_rrr arg_CRC32CB;
static bool trans_CRC32CB(DisasContext *ctx, arg_CRC32CB *a);
typedef arg_rrr arg_CRC32CH;
static bool trans_CRC32CH(DisasContext *ctx, arg_CRC32CH *a);
typedef arg_rrr arg_CRC32CW;
static bool trans_CRC32CW(DisasContext *ctx, arg_CRC32CW *a);
typedef arg_rrr arg_SEL;
static bool trans_SEL(DisasContext *ctx, arg_SEL *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_RBIT;
static bool trans_RBIT(DisasContext *ctx, arg_RBIT *a);
typedef arg_rr arg_REVSH;
static bool trans_REVSH(DisasContext *ctx, arg_REVSH *a);
typedef arg_rr arg_CLZ;
static bool trans_CLZ(DisasContext *ctx, arg_CLZ *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_cps arg_CPS;
static bool trans_CPS(DisasContext *ctx, arg_CPS *a);
typedef arg_empty arg_CLREX;
static bool trans_CLREX(DisasContext *ctx, arg_CLREX *a);
typedef arg_empty arg_DSB;
static bool trans_DSB(DisasContext *ctx, arg_DSB *a);
typedef arg_empty arg_DMB;
static bool trans_DMB(DisasContext *ctx, arg_DMB *a);
typedef arg_empty arg_ISB;
static bool trans_ISB(DisasContext *ctx, arg_ISB *a);
typedef arg_empty arg_SB;
static bool trans_SB(DisasContext *ctx, arg_SB *a);
typedef arg_mrs_bank arg_MRS_bank;
static bool trans_MRS_bank(DisasContext *ctx, arg_MRS_bank *a);
typedef arg_mrs_reg arg_MRS_reg;
static bool trans_MRS_reg(DisasContext *ctx, arg_MRS_reg *a);
typedef arg_disas_t3227 arg_MRS_v7m;
static bool trans_MRS_v7m(DisasContext *ctx, arg_MRS_v7m *a);
typedef arg_msr_bank arg_MSR_bank;
static bool trans_MSR_bank(DisasContext *ctx, arg_MSR_bank *a);
typedef arg_msr_reg arg_MSR_reg;
static bool trans_MSR_reg(DisasContext *ctx, arg_MSR_reg *a);
typedef arg_disas_t3228 arg_MSR_v7m;
static bool trans_MSR_v7m(DisasContext *ctx, arg_MSR_v7m *a);
typedef arg_r arg_BXJ;
static bool trans_BXJ(DisasContext *ctx, arg_BXJ *a);
typedef arg_empty arg_ERET;
static bool trans_ERET(DisasContext *ctx, arg_ERET *a);
typedef arg_i arg_SMC;
static bool trans_SMC(DisasContext *ctx, arg_SMC *a);
typedef arg_i arg_HVC;
static bool trans_HVC(DisasContext *ctx, arg_HVC *a);
typedef arg_empty arg_UDF;
static bool trans_UDF(DisasContext *ctx, arg_UDF *a);
typedef arg_ci arg_B_cond_thumb;
static bool trans_B_cond_thumb(DisasContext *ctx, arg_B_cond_thumb *a);
typedef arg_ldst_rr arg_STRB_rr;
static bool trans_STRB_rr(DisasContext *ctx, arg_STRB_rr *a);
typedef arg_ldst_ri arg_STRB_ri;
static bool trans_STRB_ri(DisasContext *ctx, arg_STRB_ri *a);
typedef arg_ldst_ri arg_STRBT_ri;
static bool trans_STRBT_ri(DisasContext *ctx, arg_STRBT_ri *a);
typedef arg_ldst_rr arg_STRH_rr;
static bool trans_STRH_rr(DisasContext *ctx, arg_STRH_rr *a);
typedef arg_ldst_ri arg_STRH_ri;
static bool trans_STRH_ri(DisasContext *ctx, arg_STRH_ri *a);
typedef arg_ldst_ri arg_STRHT_ri;
static bool trans_STRHT_ri(DisasContext *ctx, arg_STRHT_ri *a);
typedef arg_ldst_rr arg_STR_rr;
static bool trans_STR_rr(DisasContext *ctx, arg_STR_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_STRT_ri;
static bool trans_STRT_ri(DisasContext *ctx, arg_STRT_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_LDRBT_ri;
static bool trans_LDRBT_ri(DisasContext *ctx, arg_LDRBT_ri *a);
typedef arg_ldst_rr arg_LDRB_rr;
static bool trans_LDRB_rr(DisasContext *ctx, arg_LDRB_rr *a);
typedef arg_ldst_ri arg_LDRH_ri;
static bool trans_LDRH_ri(DisasContext *ctx, arg_LDRH_ri *a);
typedef arg_ldst_ri arg_LDRHT_ri;
static bool trans_LDRHT_ri(DisasContext *ctx, arg_LDRHT_ri *a);
typedef arg_ldst_rr arg_LDRH_rr;
static bool trans_LDRH_rr(DisasContext *ctx, arg_LDRH_rr *a);
typedef arg_ldst_ri arg_LDR_ri;
static bool trans_LDR_ri(DisasContext *ctx, arg_LDR_ri *a);
typedef arg_ldst_ri arg_LDRT_ri;
static bool trans_LDRT_ri(DisasContext *ctx, arg_LDRT_ri *a);
typedef arg_ldst_rr arg_LDR_rr;
static bool trans_LDR_rr(DisasContext *ctx, arg_LDR_rr *a);
typedef arg_ldst_ri arg_LDRSB_ri;
static bool trans_LDRSB_ri(DisasContext *ctx, arg_LDRSB_ri *a);
typedef arg_ldst_ri arg_LDRSBT_ri;
static bool trans_LDRSBT_ri(DisasContext *ctx, arg_LDRSBT_ri *a);
typedef arg_ldst_rr arg_LDRSB_rr;
static bool trans_LDRSB_rr(DisasContext *ctx, arg_LDRSB_rr *a);
typedef arg_ldst_ri arg_LDRSH_ri;
static bool trans_LDRSH_ri(DisasContext *ctx, arg_LDRSH_ri *a);
typedef arg_ldst_ri arg_LDRSHT_ri;
static bool trans_LDRSHT_ri(DisasContext *ctx, arg_LDRSHT_ri *a);
typedef arg_ldst_rr arg_LDRSH_rr;
static bool trans_LDRSH_rr(DisasContext *ctx, arg_LDRSH_rr *a);
typedef arg_ldst_ri2 arg_STRD_ri_t32;
static bool trans_STRD_ri_t32(DisasContext *ctx, arg_STRD_ri_t32 *a);
typedef arg_ldst_ri2 arg_LDRD_ri_t32;
static bool trans_LDRD_ri_t32(DisasContext *ctx, arg_LDRD_ri_t32 *a);
typedef arg_empty arg_SG;
static bool trans_SG(DisasContext *ctx, arg_SG *a);
typedef arg_disas_t3230 arg_TT;
static bool trans_TT(DisasContext *ctx, arg_TT *a);
typedef arg_strex arg_STREX;
static bool trans_STREX(DisasContext *ctx, arg_STREX *a);
typedef arg_strex arg_STREXB;
static bool trans_STREXB(DisasContext *ctx, arg_STREXB *a);
typedef arg_strex arg_STREXH;
static bool trans_STREXH(DisasContext *ctx, arg_STREXH *a);
typedef arg_strex arg_STREXD_t32;
static bool trans_STREXD_t32(DisasContext *ctx, arg_STREXD_t32 *a);
typedef arg_strex arg_STLEX;
static bool trans_STLEX(DisasContext *ctx, arg_STLEX *a);
typedef arg_strex arg_STLEXB;
static bool trans_STLEXB(DisasContext *ctx, arg_STLEXB *a);
typedef arg_strex arg_STLEXH;
static bool trans_STLEXH(DisasContext *ctx, arg_STLEXH *a);
typedef arg_strex arg_STLEXD_t32;
static bool trans_STLEXD_t32(DisasContext *ctx, arg_STLEXD_t32 *a);
typedef arg_ldrex arg_STL;
static bool trans_STL(DisasContext *ctx, arg_STL *a);
typedef arg_ldrex arg_STLB;
static bool trans_STLB(DisasContext *ctx, arg_STLB *a);
typedef arg_ldrex arg_STLH;
static bool trans_STLH(DisasContext *ctx, arg_STLH *a);
typedef arg_ldrex arg_LDREX;
static bool trans_LDREX(DisasContext *ctx, arg_LDREX *a);
typedef arg_ldrex arg_LDREXB;
static bool trans_LDREXB(DisasContext *ctx, arg_LDREXB *a);
typedef arg_ldrex arg_LDREXH;
static bool trans_LDREXH(DisasContext *ctx, arg_LDREXH *a);
typedef arg_ldrex arg_LDREXD_t32;
static bool trans_LDREXD_t32(DisasContext *ctx, arg_LDREXD_t32 *a);
typedef arg_ldrex arg_LDAEX;
static bool trans_LDAEX(DisasContext *ctx, arg_LDAEX *a);
typedef arg_ldrex arg_LDAEXB;
static bool trans_LDAEXB(DisasContext *ctx, arg_LDAEXB *a);
typedef arg_ldrex arg_LDAEXH;
static bool trans_LDAEXH(DisasContext *ctx, arg_LDAEXH *a);
typedef arg_ldrex arg_LDAEXD_t32;
static bool trans_LDAEXD_t32(DisasContext *ctx, arg_LDAEXD_t32 *a);
typedef arg_ldrex arg_LDA;
static bool trans_LDA(DisasContext *ctx, arg_LDA *a);
typedef arg_ldrex arg_LDAB;
static bool trans_LDAB(DisasContext *ctx, arg_LDAB *a);
typedef arg_ldrex arg_LDAH;
static bool trans_LDAH(DisasContext *ctx, arg_LDAH *a);
typedef arg_tbranch arg_TBB;
static bool trans_TBB(DisasContext *ctx, arg_TBB *a);
typedef arg_tbranch arg_TBH;
static bool trans_TBH(DisasContext *ctx, arg_TBH *a);
typedef arg_rrr arg_SADD8;
static bool trans_SADD8(DisasContext *ctx, arg_SADD8 *a);
typedef arg_rrr arg_QADD8;
static bool trans_QADD8(DisasContext *ctx, arg_QADD8 *a);
typedef arg_rrr arg_SHADD8;
static bool trans_SHADD8(DisasContext *ctx, arg_SHADD8 *a);
typedef arg_rrr arg_UADD8;
static bool trans_UADD8(DisasContext *ctx, arg_UADD8 *a);
typedef arg_rrr arg_UQADD8;
static bool trans_UQADD8(DisasContext *ctx, arg_UQADD8 *a);
typedef arg_rrr arg_UHADD8;
static bool trans_UHADD8(DisasContext *ctx, arg_UHADD8 *a);
typedef arg_rrr arg_SADD16;
static bool trans_SADD16(DisasContext *ctx, arg_SADD16 *a);
typedef arg_rrr arg_QADD16;
static bool trans_QADD16(DisasContext *ctx, arg_QADD16 *a);
typedef arg_rrr arg_SHADD16;
static bool trans_SHADD16(DisasContext *ctx, arg_SHADD16 *a);
typedef arg_rrr arg_UADD16;
static bool trans_UADD16(DisasContext *ctx, arg_UADD16 *a);
typedef arg_rrr arg_UQADD16;
static bool trans_UQADD16(DisasContext *ctx, arg_UQADD16 *a);
typedef arg_rrr arg_UHADD16;
static bool trans_UHADD16(DisasContext *ctx, arg_UHADD16 *a);
typedef arg_rrr arg_SASX;
static bool trans_SASX(DisasContext *ctx, arg_SASX *a);
typedef arg_rrr arg_QASX;
static bool trans_QASX(DisasContext *ctx, arg_QASX *a);
typedef arg_rrr arg_SHASX;
static bool trans_SHASX(DisasContext *ctx, arg_SHASX *a);
typedef arg_rrr arg_UASX;
static bool trans_UASX(DisasContext *ctx, arg_UASX *a);
typedef arg_rrr arg_UQASX;
static bool trans_UQASX(DisasContext *ctx, arg_UQASX *a);
typedef arg_rrr arg_UHASX;
static bool trans_UHASX(DisasContext *ctx, arg_UHASX *a);
typedef arg_rrr arg_SSUB8;
static bool trans_SSUB8(DisasContext *ctx, arg_SSUB8 *a);
typedef arg_rrr arg_QSUB8;
static bool trans_QSUB8(DisasContext *ctx, arg_QSUB8 *a);
typedef arg_rrr arg_SHSUB8;
static bool trans_SHSUB8(DisasContext *ctx, arg_SHSUB8 *a);
typedef arg_rrr arg_USUB8;
static bool trans_USUB8(DisasContext *ctx, arg_USUB8 *a);
typedef arg_rrr arg_UQSUB8;
static bool trans_UQSUB8(DisasContext *ctx, arg_UQSUB8 *a);
typedef arg_rrr arg_UHSUB8;
static bool trans_UHSUB8(DisasContext *ctx, arg_UHSUB8 *a);
typedef arg_rrr arg_SSUB16;
static bool trans_SSUB16(DisasContext *ctx, arg_SSUB16 *a);
typedef arg_rrr arg_QSUB16;
static bool trans_QSUB16(DisasContext *ctx, arg_QSUB16 *a);
typedef arg_rrr arg_SHSUB16;
static bool trans_SHSUB16(DisasContext *ctx, arg_SHSUB16 *a);
typedef arg_rrr arg_USUB16;
static bool trans_USUB16(DisasContext *ctx, arg_USUB16 *a);
typedef arg_rrr arg_UQSUB16;
static bool trans_UQSUB16(DisasContext *ctx, arg_UQSUB16 *a);
typedef arg_rrr arg_UHSUB16;
static bool trans_UHSUB16(DisasContext *ctx, arg_UHSUB16 *a);
typedef arg_rrr arg_SSAX;
static bool trans_SSAX(DisasContext *ctx, arg_SSAX *a);
typedef arg_rrr arg_QSAX;
static bool trans_QSAX(DisasContext *ctx, arg_QSAX *a);
typedef arg_rrr arg_SHSAX;
static bool trans_SHSAX(DisasContext *ctx, arg_SHSAX *a);
typedef arg_rrr arg_USAX;
static bool trans_USAX(DisasContext *ctx, arg_USAX *a);
typedef arg_rrr arg_UQSAX;
static bool trans_UQSAX(DisasContext *ctx, arg_UQSAX *a);
typedef arg_rrr arg_UHSAX;
static bool trans_UHSAX(DisasContext *ctx, arg_UHSAX *a);
typedef arg_rrr_rot arg_SXTAH;
static bool trans_SXTAH(DisasContext *ctx, arg_SXTAH *a);
typedef arg_rrr_rot arg_UXTAH;
static bool trans_UXTAH(DisasContext *ctx, arg_UXTAH *a);
typedef arg_rrr_rot arg_SXTAB16;
static bool trans_SXTAB16(DisasContext *ctx, arg_SXTAB16 *a);
typedef arg_rrr_rot arg_UXTAB16;
static bool trans_UXTAB16(DisasContext *ctx, arg_UXTAB16 *a);
typedef arg_rrr_rot arg_SXTAB;
static bool trans_SXTAB(DisasContext *ctx, arg_SXTAB *a);
typedef arg_rrr_rot arg_UXTAB;
static bool trans_UXTAB(DisasContext *ctx, arg_UXTAB *a);
typedef arg_ldst_block arg_STM_t32;
static bool trans_STM_t32(DisasContext *ctx, arg_STM_t32 *a);
typedef arg_ldst_block arg_LDM_t32;
static bool trans_LDM_t32(DisasContext *ctx, arg_LDM_t32 *a);
typedef arg_rfe arg_RFE;
static bool trans_RFE(DisasContext *ctx, arg_RFE *a);
typedef arg_srs arg_SRS;
static bool trans_SRS(DisasContext *ctx, arg_SRS *a);
typedef arg_i arg_B;
static bool trans_B(DisasContext *ctx, arg_B *a);
typedef arg_i arg_BL;
static bool trans_BL(DisasContext *ctx, arg_BL *a);
typedef arg_i arg_BLX_i;
static bool trans_BLX_i(DisasContext *ctx, arg_BLX_i *a);
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
# pragma GCC diagnostic pop
#endif
static void disas_t32_extract_S_xri_rot(DisasContext *ctx, arg_s_rri_rot *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->imm = t32_expandimm_imm(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
a->rot = t32_expandimm_rot(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
a->s = 1;
a->rd = 0;
}
static void disas_t32_extract_S_xrr_shi(DisasContext *ctx, arg_s_rrr_shi *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->shty = extract32(insn, 4, 2);
a->rm = extract32(insn, 0, 4);
a->shim = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
a->s = 1;
a->rd = 0;
}
static void disas_t32_extract_bfi(DisasContext *ctx, arg_bfi *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->msb = extract32(insn, 0, 5);
a->lsb = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
}
static void disas_t32_extract_bfx(DisasContext *ctx, arg_bfx *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->widthm1 = extract32(insn, 0, 5);
a->lsb = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
}
static void disas_t32_extract_branch24(DisasContext *ctx, arg_i *a, uint32_t insn)
{
a->imm = t32_branch24(ctx, deposit32(deposit32(deposit32(deposit32(extract32(insn, 0, 11), 11, 21, extract32(insn, 16, 10)), 21, 11, extract32(insn, 11, 1)), 22, 10, extract32(insn, 13, 1)), 23, 9, sextract32(insn, 26, 1)));
}
static void disas_t32_extract_disas_t32_Fmt_10(DisasContext *ctx, arg_ri *a, uint32_t insn)
{
a->rd = extract32(insn, 8, 4);
a->imm = negate(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
}
static void disas_t32_extract_disas_t32_Fmt_22(DisasContext *ctx, arg_empty *a, uint32_t insn)
{
}
static void disas_t32_extract_disas_t32_Fmt_23(DisasContext *ctx, arg_cps *a, uint32_t insn)
{
a->imod = extract32(insn, 9, 2);
a->M = extract32(insn, 8, 1);
a->A = extract32(insn, 7, 1);
a->I = extract32(insn, 6, 1);
a->F = extract32(insn, 5, 1);
a->mode = extract32(insn, 0, 5);
}
static void disas_t32_extract_disas_t32_Fmt_24(DisasContext *ctx, arg_mrs_bank *a, uint32_t insn)
{
a->r = extract32(insn, 20, 1);
a->rd = extract32(insn, 8, 4);
a->sysm = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 4, 1));
}
static void disas_t32_extract_disas_t32_Fmt_25(DisasContext *ctx, arg_mrs_reg *a, uint32_t insn)
{
a->r = extract32(insn, 20, 1);
a->rd = extract32(insn, 8, 4);
}
static void disas_t32_extract_disas_t32_Fmt_26(DisasContext *ctx, arg_disas_t3227 *a, uint32_t insn)
{
a->rd = extract32(insn, 8, 4);
a->sysm = extract32(insn, 0, 8);
}
static void disas_t32_extract_disas_t32_Fmt_27(DisasContext *ctx, arg_msr_bank *a, uint32_t insn)
{
a->r = extract32(insn, 20, 1);
a->rn = extract32(insn, 16, 4);
a->sysm = deposit32(extract32(insn, 8, 4), 4, 28, extract32(insn, 4, 1));
}
static void disas_t32_extract_disas_t32_Fmt_28(DisasContext *ctx, arg_msr_reg *a, uint32_t insn)
{
a->r = extract32(insn, 20, 1);
a->rn = extract32(insn, 16, 4);
a->mask = extract32(insn, 8, 4);
}
static void disas_t32_extract_disas_t32_Fmt_29(DisasContext *ctx, arg_disas_t3228 *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->mask = extract32(insn, 10, 2);
a->sysm = extract32(insn, 0, 8);
}
static void disas_t32_extract_disas_t32_Fmt_3(DisasContext *ctx, arg_pkh *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->tb = extract32(insn, 5, 1);
a->rm = extract32(insn, 0, 4);
a->imm = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
}
static void disas_t32_extract_disas_t32_Fmt_30(DisasContext *ctx, arg_r *a, uint32_t insn)
{
a->rm = extract32(insn, 16, 4);
}
static void disas_t32_extract_disas_t32_Fmt_31(DisasContext *ctx, arg_s_rri_rot *a, uint32_t insn)
{
a->imm = extract32(insn, 0, 8);
a->rot = 0;
a->s = 1;
a->rd = 15;
a->rn = 14;
}
static void disas_t32_extract_disas_t32_Fmt_32(DisasContext *ctx, arg_i *a, uint32_t insn)
{
a->imm = extract32(insn, 16, 4);
}
static void disas_t32_extract_disas_t32_Fmt_33(DisasContext *ctx, arg_i *a, uint32_t insn)
{
a->imm = deposit32(extract32(insn, 0, 12), 12, 20, extract32(insn, 16, 4));
}
static void disas_t32_extract_disas_t32_Fmt_34(DisasContext *ctx, arg_ci *a, uint32_t insn)
{
a->cond = extract32(insn, 22, 4);
a->imm = times_2(ctx, deposit32(deposit32(deposit32(deposit32(extract32(insn, 0, 11), 11, 21, extract32(insn, 16, 6)), 17, 15, extract32(insn, 13, 1)), 18, 14, extract32(insn, 11, 1)), 19, 13, sextract32(insn, 26, 1)));
}
static void disas_t32_extract_disas_t32_Fmt_4(DisasContext *ctx, arg_s_rrr_shr *a, uint32_t insn)
{
a->shty = extract32(insn, 21, 2);
a->s = extract32(insn, 20, 1);
a->rm = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->rs = extract32(insn, 0, 4);
a->rn = 0;
}
static void disas_t32_extract_disas_t32_Fmt_48(DisasContext *ctx, arg_disas_t3230 *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->A = extract32(insn, 7, 1);
a->T = extract32(insn, 6, 1);
}
static void disas_t32_extract_disas_t32_Fmt_9(DisasContext *ctx, arg_ri *a, uint32_t insn)
{
a->rd = extract32(insn, 8, 4);
a->imm = deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1));
}
static void disas_t32_extract_ldrex_0(DisasContext *ctx, arg_ldrex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rt2 = 15;
a->imm = 0;
}
static void disas_t32_extract_ldrex_d(DisasContext *ctx, arg_ldrex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rt2 = extract32(insn, 8, 4);
a->imm = 0;
}
static void disas_t32_extract_ldrex_i(DisasContext *ctx, arg_ldrex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rt2 = 15;
a->imm = times_4(ctx, extract32(insn, 0, 8));
}
static void disas_t32_extract_ldst_ri_idx(DisasContext *ctx, arg_ldst_ri *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->p = extract32(insn, 10, 1);
a->u = extract32(insn, 9, 1);
a->imm = extract32(insn, 0, 8);
a->w = 1;
}
static void disas_t32_extract_ldst_ri_lit(DisasContext *ctx, arg_ldst_ri *a, uint32_t insn)
{
a->u = extract32(insn, 23, 1);
a->rt = extract32(insn, 12, 4);
a->imm = extract32(insn, 0, 12);
a->p = 1;
a->w = 0;
a->rn = 15;
}
static void disas_t32_extract_ldst_ri_neg(DisasContext *ctx, arg_ldst_ri *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->imm = extract32(insn, 0, 8);
a->p = 1;
a->w = 0;
a->u = 0;
}
static void disas_t32_extract_ldst_ri_pos(DisasContext *ctx, arg_ldst_ri *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->imm = extract32(insn, 0, 12);
a->p = 1;
a->w = 0;
a->u = 1;
}
static void disas_t32_extract_ldst_ri_unp(DisasContext *ctx, arg_ldst_ri *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->imm = extract32(insn, 0, 8);
a->p = 1;
a->w = 0;
a->u = 1;
}
static void disas_t32_extract_ldst_rr(DisasContext *ctx, arg_ldst_rr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->shimm = extract32(insn, 4, 2);
a->rm = extract32(insn, 0, 4);
a->p = 1;
a->w = 0;
a->u = 1;
a->shtype = 0;
}
static void disas_t32_extract_ldstd_ri8(DisasContext *ctx, arg_ldst_ri2 *a, uint32_t insn)
{
a->u = extract32(insn, 23, 1);
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rt2 = extract32(insn, 8, 4);
a->imm = times_4(ctx, extract32(insn, 0, 8));
}
static void disas_t32_extract_ldstm(DisasContext *ctx, arg_ldst_block *a, uint32_t insn)
{
a->w = extract32(insn, 21, 1);
a->rn = extract32(insn, 16, 4);
a->list = extract32(insn, 0, 16);
a->u = 0;
}
static void disas_t32_extract_mov16(DisasContext *ctx, arg_ri *a, uint32_t insn)
{
a->rd = extract32(insn, 8, 4);
a->imm = deposit32(deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)), 12, 20, extract32(insn, 16, 4));
}
static void disas_t32_extract_rdm(DisasContext *ctx, arg_rr *a, uint32_t insn)
{
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
}
static void disas_t32_extract_rfe(DisasContext *ctx, arg_rfe *a, uint32_t insn)
{
a->w = extract32(insn, 21, 1);
a->rn = extract32(insn, 16, 4);
}
static void disas_t32_extract_rn0dm(DisasContext *ctx, arg_rrrr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
a->ra = 0;
}
static void disas_t32_extract_rnadm(DisasContext *ctx, arg_rrrr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->ra = extract32(insn, 12, 4);
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
}
static void disas_t32_extract_rndm(DisasContext *ctx, arg_rrr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
}
static void disas_t32_extract_rrr_rot(DisasContext *ctx, arg_rrr_rot *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->rot = extract32(insn, 4, 2);
a->rm = extract32(insn, 0, 4);
}
static void disas_t32_extract_s0_rn0dm(DisasContext *ctx, arg_s_rrrr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
a->ra = 0;
a->s = 0;
}
static void disas_t32_extract_s0_rnadm(DisasContext *ctx, arg_s_rrrr *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->ra = extract32(insn, 12, 4);
a->rd = extract32(insn, 8, 4);
a->rm = extract32(insn, 0, 4);
a->s = 0;
}
static void disas_t32_extract_s0_rri_12(DisasContext *ctx, arg_s_rri_rot *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->imm = deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1));
a->rot = 0;
a->s = 0;
}
static void disas_t32_extract_s_rri_rot(DisasContext *ctx, arg_s_rri_rot *a, uint32_t insn)
{
a->s = extract32(insn, 20, 1);
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->imm = t32_expandimm_imm(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
a->rot = t32_expandimm_rot(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
}
static void disas_t32_extract_s_rrr_shi(DisasContext *ctx, arg_s_rrr_shi *a, uint32_t insn)
{
a->s = extract32(insn, 20, 1);
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->shty = extract32(insn, 4, 2);
a->rm = extract32(insn, 0, 4);
a->shim = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
}
static void disas_t32_extract_s_rxi_rot(DisasContext *ctx, arg_s_rri_rot *a, uint32_t insn)
{
a->s = extract32(insn, 20, 1);
a->rd = extract32(insn, 8, 4);
a->imm = t32_expandimm_imm(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
a->rot = t32_expandimm_rot(ctx, deposit32(deposit32(extract32(insn, 0, 8), 8, 24, extract32(insn, 12, 3)), 11, 21, extract32(insn, 26, 1)));
a->rn = 0;
}
static void disas_t32_extract_s_rxr_shi(DisasContext *ctx, arg_s_rrr_shi *a, uint32_t insn)
{
a->s = extract32(insn, 20, 1);
a->rd = extract32(insn, 8, 4);
a->shty = extract32(insn, 4, 2);
a->rm = extract32(insn, 0, 4);
a->shim = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
a->rn = 0;
}
static void disas_t32_extract_sat(DisasContext *ctx, arg_sat *a, uint32_t insn)
{
a->sh = extract32(insn, 21, 1);
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->satimm = extract32(insn, 0, 5);
a->imm = deposit32(extract32(insn, 6, 2), 2, 30, extract32(insn, 12, 3));
}
static void disas_t32_extract_sat16(DisasContext *ctx, arg_sat *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rd = extract32(insn, 8, 4);
a->satimm = extract32(insn, 0, 5);
a->sh = 0;
a->imm = 0;
}
static void disas_t32_extract_srs(DisasContext *ctx, arg_srs *a, uint32_t insn)
{
a->w = extract32(insn, 21, 1);
a->mode = extract32(insn, 0, 5);
}
static void disas_t32_extract_strex_0(DisasContext *ctx, arg_strex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rd = extract32(insn, 0, 4);
a->rt2 = 15;
a->imm = 0;
}
static void disas_t32_extract_strex_d(DisasContext *ctx, arg_strex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rt2 = extract32(insn, 8, 4);
a->rd = extract32(insn, 0, 4);
a->imm = 0;
}
static void disas_t32_extract_strex_i(DisasContext *ctx, arg_strex *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rt = extract32(insn, 12, 4);
a->rd = extract32(insn, 8, 4);
a->rt2 = 15;
a->imm = times_4(ctx, extract32(insn, 0, 8));
}
static void disas_t32_extract_tbranch(DisasContext *ctx, arg_tbranch *a, uint32_t insn)
{
a->rn = extract32(insn, 16, 4);
a->rm = extract32(insn, 0, 4);
}
static bool disas_t32(DisasContext *ctx, uint32_t insn)
{
union {
arg_bfi f_bfi;
arg_bfx f_bfx;
arg_ci f_ci;
arg_cps f_cps;
arg_disas_t3227 f_disas_t3227;
arg_disas_t3228 f_disas_t3228;
arg_disas_t3230 f_disas_t3230;
arg_empty f_empty;
arg_i f_i;
arg_ldrex f_ldrex;
arg_ldst_block f_ldst_block;
arg_ldst_ri f_ldst_ri;
arg_ldst_ri2 f_ldst_ri2;
arg_ldst_rr f_ldst_rr;
arg_mrs_bank f_mrs_bank;
arg_mrs_reg f_mrs_reg;
arg_msr_bank f_msr_bank;
arg_msr_reg f_msr_reg;
arg_pkh f_pkh;
arg_r f_r;
arg_rfe f_rfe;
arg_ri f_ri;
arg_rr f_rr;
arg_rrr f_rrr;
arg_rrr_rot f_rrr_rot;
arg_rrrr f_rrrr;
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_sat f_sat;
arg_srs f_srs;
arg_strex f_strex;
arg_tbranch f_tbranch;
} u;
switch ((insn >> 27) & 0x1f) {
case 0x1d:
/* 11101... ........ ........ ........ */
switch (insn & 0x07400000) {
case 0x00000000:
/* 11101000 .0...... ........ ........ */
switch (insn & 0x00900000) {
case 0x00000000:
/* 11101000 00.0.... ........ ........ */
disas_t32_extract_srs(ctx, &u.f_srs, insn);
switch ((insn >> 5) & 0x7fff) {
case 0x6e00:
/* 11101000 00.01101 11000000 000..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:621 */
u.f_srs.pu = 2;
if (trans_SRS(ctx, &u.f_srs)) return true;
return false;
}
return false;
case 0x00100000:
/* 11101000 00.1.... ........ ........ */
disas_t32_extract_rfe(ctx, &u.f_rfe, insn);
switch (insn & 0x0000ffff) {
case 0x0000c000:
/* 11101000 00.1.... 11000000 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:615 */
u.f_rfe.pu = 2;
if (trans_RFE(ctx, &u.f_rfe)) return true;
return false;
}
return false;
case 0x00800000:
/* 11101000 10.0.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:607 */
disas_t32_extract_ldstm(ctx, &u.f_ldst_block, insn);
u.f_ldst_block.i = 1;
u.f_ldst_block.b = 0;
if (trans_STM_t32(ctx, &u.f_ldst_block)) return true;
return false;
case 0x00900000:
/* 11101000 10.1.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:609 */
disas_t32_extract_ldstm(ctx, &u.f_ldst_block, insn);
u.f_ldst_block.i = 1;
u.f_ldst_block.b = 0;
if (trans_LDM_t32(ctx, &u.f_ldst_block)) return true;
return false;
}
return false;
case 0x00400000:
/* 11101000 .1...... ........ ........ */
switch ((insn >> 20) & 0x3) {
case 0x0:
/* 11101000 .100.... ........ ........ */
switch ((insn >> 23) & 0x1) {
case 0x0:
/* 11101000 0100.... ........ ........ */
if ((insn & 0x0000f03f) == 0x0000f000) {
/* 11101000 0100.... 1111.... ..000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:512 */
disas_t32_extract_disas_t32_Fmt_48(ctx, &u.f_disas_t3230, insn);
if (trans_TT(ctx, &u.f_disas_t3230)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:513 */
disas_t32_extract_strex_i(ctx, &u.f_strex, insn);
if (trans_STREX(ctx, &u.f_strex)) return true;
return false;
case 0x1:
/* 11101000 1100.... ........ ........ */
switch ((insn >> 4) & 0xf) {
case 0x4:
/* 11101000 1100.... ........ 0100.... */
disas_t32_extract_strex_0(ctx, &u.f_strex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 1100.... ....1111 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:515 */
if (trans_STREXB(ctx, &u.f_strex)) return true;
return false;
}
return false;
case 0x5:
/* 11101000 1100.... ........ 0101.... */
disas_t32_extract_strex_0(ctx, &u.f_strex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 1100.... ....1111 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:516 */
if (trans_STREXH(ctx, &u.f_strex)) return true;
return false;
}
return false;
case 0x7:
/* 11101000 1100.... ........ 0111.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:517 */
disas_t32_extract_strex_d(ctx, &u.f_strex, insn);
if (trans_STREXD_t32(ctx, &u.f_strex)) return true;
return false;
case 0x8:
/* 11101000 1100.... ........ 1000.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1100.... ....1111 10001111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:525 */
if (trans_STLB(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x9:
/* 11101000 1100.... ........ 1001.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1100.... ....1111 10011111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:526 */
if (trans_STLH(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xa:
/* 11101000 1100.... ........ 1010.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1100.... ....1111 10101111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:524 */
if (trans_STL(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xc:
/* 11101000 1100.... ........ 1100.... */
disas_t32_extract_strex_0(ctx, &u.f_strex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 1100.... ....1111 1100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:520 */
if (trans_STLEXB(ctx, &u.f_strex)) return true;
return false;
}
return false;
case 0xd:
/* 11101000 1100.... ........ 1101.... */
disas_t32_extract_strex_0(ctx, &u.f_strex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 1100.... ....1111 1101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:521 */
if (trans_STLEXH(ctx, &u.f_strex)) return true;
return false;
}
return false;
case 0xe:
/* 11101000 1100.... ........ 1110.... */
disas_t32_extract_strex_0(ctx, &u.f_strex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 1100.... ....1111 1110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:519 */
if (trans_STLEX(ctx, &u.f_strex)) return true;
return false;
}
return false;
case 0xf:
/* 11101000 1100.... ........ 1111.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:522 */
disas_t32_extract_strex_d(ctx, &u.f_strex, insn);
if (trans_STLEXD_t32(ctx, &u.f_strex)) return true;
return false;
}
return false;
}
return false;
case 0x1:
/* 11101000 .101.... ........ ........ */
switch ((insn >> 23) & 0x1) {
case 0x0:
/* 11101000 0101.... ........ ........ */
disas_t32_extract_ldrex_i(ctx, &u.f_ldrex, insn);
switch ((insn >> 8) & 0xf) {
case 0xf:
/* 11101000 0101.... ....1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:528 */
if (trans_LDREX(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x1:
/* 11101000 1101.... ........ ........ */
switch ((insn >> 4) & 0xf) {
case 0x0:
/* 11101000 1101.... ........ 0000.... */
disas_t32_extract_tbranch(ctx, &u.f_tbranch, insn);
switch ((insn >> 8) & 0xff) {
case 0xf0:
/* 11101000 1101.... 11110000 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:545 */
if (trans_TBB(ctx, &u.f_tbranch)) return true;
return false;
}
return false;
case 0x1:
/* 11101000 1101.... ........ 0001.... */
disas_t32_extract_tbranch(ctx, &u.f_tbranch, insn);
switch ((insn >> 8) & 0xff) {
case 0xf0:
/* 11101000 1101.... 11110000 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:546 */
if (trans_TBH(ctx, &u.f_tbranch)) return true;
return false;
}
return false;
case 0x4:
/* 11101000 1101.... ........ 0100.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 01001111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:529 */
if (trans_LDREXB(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x5:
/* 11101000 1101.... ........ 0101.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 01011111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:530 */
if (trans_LDREXH(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x7:
/* 11101000 1101.... ........ 0111.... */
disas_t32_extract_ldrex_d(ctx, &u.f_ldrex, insn);
switch (insn & 0x0000000f) {
case 0x0000000f:
/* 11101000 1101.... ........ 01111111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:531 */
if (trans_LDREXD_t32(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x8:
/* 11101000 1101.... ........ 1000.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 10001111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:539 */
if (trans_LDAB(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0x9:
/* 11101000 1101.... ........ 1001.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 10011111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:540 */
if (trans_LDAH(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xa:
/* 11101000 1101.... ........ 1010.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 10101111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:538 */
if (trans_LDA(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xc:
/* 11101000 1101.... ........ 1100.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 11001111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:534 */
if (trans_LDAEXB(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xd:
/* 11101000 1101.... ........ 1101.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 11011111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:535 */
if (trans_LDAEXH(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xe:
/* 11101000 1101.... ........ 1110.... */
disas_t32_extract_ldrex_0(ctx, &u.f_ldrex, insn);
switch (insn & 0x00000f0f) {
case 0x00000f0f:
/* 11101000 1101.... ....1111 11101111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:533 */
if (trans_LDAEX(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
case 0xf:
/* 11101000 1101.... ........ 1111.... */
disas_t32_extract_ldrex_d(ctx, &u.f_ldrex, insn);
switch (insn & 0x0000000f) {
case 0x0000000f:
/* 11101000 1101.... ........ 11111111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:536 */
if (trans_LDAEXD_t32(ctx, &u.f_ldrex)) return true;
return false;
}
return false;
}
return false;
}
return false;
case 0x2:
/* 11101000 .110.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:483 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 1;
u.f_ldst_ri2.p = 0;
if (trans_STRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
case 0x3:
/* 11101000 .111.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:484 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 1;
u.f_ldst_ri2.p = 0;
if (trans_LDRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
}
return false;
case 0x01000000:
/* 11101001 .0...... ........ ........ */
switch (insn & 0x00900000) {
case 0x00000000:
/* 11101001 00.0.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:608 */
disas_t32_extract_ldstm(ctx, &u.f_ldst_block, insn);
u.f_ldst_block.i = 0;
u.f_ldst_block.b = 1;
if (trans_STM_t32(ctx, &u.f_ldst_block)) return true;
return false;
case 0x00100000:
/* 11101001 00.1.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:610 */
disas_t32_extract_ldstm(ctx, &u.f_ldst_block, insn);
u.f_ldst_block.i = 0;
u.f_ldst_block.b = 1;
if (trans_LDM_t32(ctx, &u.f_ldst_block)) return true;
return false;
case 0x00800000:
/* 11101001 10.0.... ........ ........ */
disas_t32_extract_srs(ctx, &u.f_srs, insn);
switch ((insn >> 5) & 0x7fff) {
case 0x6e00:
/* 11101001 10.01101 11000000 000..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:622 */
u.f_srs.pu = 1;
if (trans_SRS(ctx, &u.f_srs)) return true;
return false;
}
return false;
case 0x00900000:
/* 11101001 10.1.... ........ ........ */
disas_t32_extract_rfe(ctx, &u.f_rfe, insn);
switch (insn & 0x0000ffff) {
case 0x0000c000:
/* 11101001 10.1.... 11000000 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:616 */
u.f_rfe.pu = 1;
if (trans_RFE(ctx, &u.f_rfe)) return true;
return false;
}
return false;
}
return false;
case 0x01400000:
/* 11101001 .1...... ........ ........ */
switch ((insn >> 20) & 0x3) {
case 0x0:
/* 11101001 .100.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:486 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 0;
u.f_ldst_ri2.p = 1;
if (trans_STRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
case 0x1:
/* 11101001 .101.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:487 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 0;
u.f_ldst_ri2.p = 1;
if (trans_LDRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
case 0x2:
/* 11101001 .110.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:489 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 1;
u.f_ldst_ri2.p = 1;
if (trans_STRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
case 0x3:
/* 11101001 .111.... ........ ........ */
if ((insn & 0x008fffff) == 0x000fe97f) {
/* 11101001 01111111 11101001 01111111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:491 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_SG(ctx, &u.f_empty)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:492 */
disas_t32_extract_ldstd_ri8(ctx, &u.f_ldst_ri2, insn);
u.f_ldst_ri2.w = 1;
u.f_ldst_ri2.p = 1;
if (trans_LDRD_ri_t32(ctx, &u.f_ldst_ri2)) return true;
return false;
}
return false;
case 0x02000000:
/* 11101010 .0...... ........ ........ */
switch (insn & 0x00a08000) {
case 0x00000000:
/* 11101010 000..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11101010 0001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:61 */
disas_t32_extract_S_xrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_TST_xrri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:62 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_AND_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00200000:
/* 11101010 001..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:64 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_BIC_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00800000:
/* 11101010 100..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11101010 1001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:74 */
disas_t32_extract_S_xrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_TEQ_xrri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:75 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_EOR_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
}
return false;
case 0x02400000:
/* 11101010 .1...... ........ ........ */
switch (insn & 0x00a08000) {
case 0x00000000:
/* 11101010 010..... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11101010 010.1111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:66 */
disas_t32_extract_s_rxr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_MOV_rxri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:67 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_ORR_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00200000:
/* 11101010 011..... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11101010 011.1111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:70 */
disas_t32_extract_s_rxr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_MVN_rxri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:71 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_ORN_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00800000:
/* 11101010 110..... 0....... ........ */
disas_t32_extract_disas_t32_Fmt_3(ctx, &u.f_pkh, insn);
switch (insn & 0x00100010) {
case 0x00000000:
/* 11101010 1100.... 0....... ...0.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:77 */
if (trans_PKH(ctx, &u.f_pkh)) return true;
return false;
}
return false;
}
return false;
case 0x03000000:
/* 11101011 .0...... ........ ........ */
switch (insn & 0x00a08000) {
case 0x00000000:
/* 11101011 000..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11101011 0001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:80 */
disas_t32_extract_S_xrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_CMN_xrri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:81 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_ADD_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00a00000:
/* 11101011 101..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11101011 1011.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:86 */
disas_t32_extract_S_xrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_CMP_xrri(ctx, &u.f_s_rrr_shi)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:87 */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
if (trans_SUB_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
}
return false;
case 0x03400000:
/* 11101011 .1...... ........ ........ */
disas_t32_extract_s_rrr_shi(ctx, &u.f_s_rrr_shi, insn);
switch (insn & 0x00a08000) {
case 0x00000000:
/* 11101011 010..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:83 */
if (trans_ADC_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00200000:
/* 11101011 011..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:84 */
if (trans_SBC_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
case 0x00800000:
/* 11101011 110..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:89 */
if (trans_RSB_rrri(ctx, &u.f_s_rrr_shi)) return true;
return false;
}
return false;
}
return false;
case 0x1e:
/* 11110... ........ ........ ........ */
switch ((insn >> 15) & 0x1) {
case 0x0:
/* 11110... ........ 0....... ........ */
switch ((insn >> 22) & 0xf) {
case 0x0:
/* 11110.00 00...... 0....... ........ */
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.00 000..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11110.00 0001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:109 */
disas_t32_extract_S_xri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_TST_xri(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:110 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_AND_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
case 0x1:
/* 11110.00 001..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:112 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_BIC_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x1:
/* 11110.00 01...... 0....... ........ */
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.00 010..... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11110.00 010.1111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:114 */
disas_t32_extract_s_rxi_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_MOV_rxi(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:115 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_ORR_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
case 0x1:
/* 11110.00 011..... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11110.00 011.1111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:118 */
disas_t32_extract_s_rxi_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_MVN_rxi(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:119 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_ORN_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x2:
/* 11110.00 10...... 0....... ........ */
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.00 100..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11110.00 1001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:122 */
disas_t32_extract_S_xri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_TEQ_xri(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:123 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_EOR_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x4:
/* 11110.01 00...... 0....... ........ */
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.01 000..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11110.01 0001.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:126 */
disas_t32_extract_S_xri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_CMN_xri(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:127 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x5:
/* 11110.01 01...... 0....... ........ */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.01 010..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:129 */
if (trans_ADC_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
case 0x1:
/* 11110.01 011..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:130 */
if (trans_SBC_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x6:
/* 11110.01 10...... 0....... ........ */
switch ((insn >> 21) & 0x1) {
case 0x1:
/* 11110.01 101..... 0....... ........ */
if ((insn & 0x00100f00) == 0x00100f00) {
/* 11110.01 1011.... 0...1111 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:132 */
disas_t32_extract_S_xri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_CMP_xri(ctx, &u.f_s_rri_rot)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:133 */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x7:
/* 11110.01 11...... 0....... ........ */
disas_t32_extract_s_rri_rot(ctx, &u.f_s_rri_rot, insn);
switch ((insn >> 21) & 0x1) {
case 0x0:
/* 11110.01 110..... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:135 */
if (trans_RSB_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x8:
/* 11110.10 00...... 0....... ........ */
switch ((insn >> 20) & 0x3) {
case 0x0:
/* 11110.10 0000.... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11110.10 00001111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:145 */
disas_t32_extract_disas_t32_Fmt_9(ctx, &u.f_ri, insn);
if (trans_ADR(ctx, &u.f_ri)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:147 */
disas_t32_extract_s0_rri_12(ctx, &u.f_s_rri_rot, insn);
if (trans_ADD_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0x9:
/* 11110.10 01...... 0....... ........ */
disas_t32_extract_mov16(ctx, &u.f_ri, insn);
switch ((insn >> 20) & 0x3) {
case 0x0:
/* 11110.10 0100.... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:161 */
if (trans_MOVW(ctx, &u.f_ri)) return true;
return false;
}
return false;
case 0xa:
/* 11110.10 10...... 0....... ........ */
switch ((insn >> 20) & 0x3) {
case 0x2:
/* 11110.10 1010.... 0....... ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11110.10 10101111 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:150 */
disas_t32_extract_disas_t32_Fmt_10(ctx, &u.f_ri, insn);
if (trans_ADR(ctx, &u.f_ri)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:152 */
disas_t32_extract_s0_rri_12(ctx, &u.f_s_rri_rot, insn);
if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true;
return false;
}
return false;
case 0xb:
/* 11110.10 11...... 0....... ........ */
disas_t32_extract_mov16(ctx, &u.f_ri, insn);
switch ((insn >> 20) & 0x3) {
case 0x0:
/* 11110.10 1100.... 0....... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:162 */
if (trans_MOVT(ctx, &u.f_ri)) return true;
return false;
}
return false;
case 0xc:
/* 11110.11 00...... 0....... ........ */
switch (insn & 0x04100020) {
case 0x00000000:
/* 11110011 00.0.... 0....... ..0..... */
if ((insn & 0x002070c0) == 0x00200000) {
/* 11110011 0010.... 0000.... 000..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:172 */
disas_t32_extract_sat16(ctx, &u.f_sat, insn);
if (trans_SSAT16(ctx, &u.f_sat)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:173 */
disas_t32_extract_sat(ctx, &u.f_sat, insn);
if (trans_SSAT(ctx, &u.f_sat)) return true;
return false;
}
return false;
case 0xd:
/* 11110.11 01...... 0....... ........ */
switch (insn & 0x04300020) {
case 0x00000000:
/* 11110011 0100.... 0....... ..0..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:185 */
disas_t32_extract_bfx(ctx, &u.f_bfx, insn);
if (trans_SBFX(ctx, &u.f_bfx)) return true;
return false;
case 0x00200000:
/* 11110011 0110.... 0....... ..0..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:189 */
disas_t32_extract_bfi(ctx, &u.f_bfi, insn);
if (trans_BFCI(ctx, &u.f_bfi)) return true;
return false;
}
return false;
case 0xe:
/* 11110.11 10...... 0....... ........ */
switch (insn & 0x04100020) {
case 0x00000000:
/* 11110011 10.0.... 0....... ..0..... */
if ((insn & 0x002070c0) == 0x00200000) {
/* 11110011 1010.... 0000.... 000..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:176 */
disas_t32_extract_sat16(ctx, &u.f_sat, insn);
if (trans_USAT16(ctx, &u.f_sat)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:177 */
disas_t32_extract_sat(ctx, &u.f_sat, insn);
if (trans_USAT(ctx, &u.f_sat)) return true;
return false;
}
return false;
case 0xf:
/* 11110.11 11...... 0....... ........ */
disas_t32_extract_bfx(ctx, &u.f_bfx, insn);
switch (insn & 0x04300020) {
case 0x00000000:
/* 11110011 1100.... 0....... ..0..... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:186 */
if (trans_UBFX(ctx, &u.f_bfx)) return true;
return false;
}
return false;
}
return false;
case 0x1:
/* 11110... ........ 1....... ........ */
switch (insn & 0x00005000) {
case 0x00000000:
/* 11110... ........ 10.0.... ........ */
if ((insn & 0x03800000) == 0x03800000) {
/* 11110.11 1....... 10.0.... ........ */
if ((insn & 0x047f2f00) == 0x002f0000) {
/* 11110011 10101111 10000000 ........ */
if ((insn & 0x000000ff) == 0x00000001) {
/* 11110011 10101111 10000000 00000001 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:297 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_YIELD(ctx, &u.f_empty)) return true;
}
if ((insn & 0x000000ff) == 0x00000002) {
/* 11110011 10101111 10000000 00000010 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:298 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_WFE(ctx, &u.f_empty)) return true;
}
if ((insn & 0x000000ff) == 0x00000003) {
/* 11110011 10101111 10000000 00000011 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:299 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:307 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_NOP(ctx, &u.f_empty)) return true;
}
if ((insn & 0x047f2800) == 0x002f0000) {
/* 11110011 10101111 10000... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:311 */
disas_t32_extract_disas_t32_Fmt_23(ctx, &u.f_cps, insn);
if (trans_CPS(ctx, &u.f_cps)) return true;
}
if ((insn & 0x047f2f80) == 0x003f0f00) {
/* 11110011 10111111 10001111 0....... */
if ((insn & 0x0000007f) == 0x0000002f) {
/* 11110011 10111111 10001111 00101111 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:316 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_CLREX(ctx, &u.f_empty)) return true;
}
if ((insn & 0x00000070) == 0x00000040) {
/* 11110011 10111111 10001111 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:317 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_DSB(ctx, &u.f_empty)) return true;
}
if ((insn & 0x00000070) == 0x00000050) {
/* 11110011 10111111 10001111 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:318 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_DMB(ctx, &u.f_empty)) return true;
}
if ((insn & 0x00000070) == 0x00000060) {
/* 11110011 10111111 10001111 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:319 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_ISB(ctx, &u.f_empty)) return true;
}
if ((insn & 0x0000007f) == 0x00000070) {
/* 11110011 10111111 10001111 01110000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:320 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_SB(ctx, &u.f_empty)) return true;
}
}
if ((insn & 0x04602000) == 0x00600000) {
/* 11110011 111..... 1000.... ........ */
if ((insn & 0x000000ef) == 0x00000020) {
/* 11110011 111..... 1000.... 001.0000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:325 */
disas_t32_extract_disas_t32_Fmt_24(ctx, &u.f_mrs_bank, insn);
if (trans_MRS_bank(ctx, &u.f_mrs_bank)) return true;
}
if ((insn & 0x000f00ff) == 0x000f0000) {
/* 11110011 111.1111 1000.... 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:327 */
disas_t32_extract_disas_t32_Fmt_25(ctx, &u.f_mrs_reg, insn);
if (trans_MRS_reg(ctx, &u.f_mrs_reg)) return true;
}
if ((insn & 0x001f0000) == 0x000f0000) {
/* 11110011 11101111 1000.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:328 */
disas_t32_extract_disas_t32_Fmt_26(ctx, &u.f_disas_t3227, insn);
if (trans_MRS_v7m(ctx, &u.f_disas_t3227)) return true;
}
}
if ((insn & 0x04602000) == 0x00000000) {
/* 11110011 100..... 1000.... ........ */
if ((insn & 0x000000ef) == 0x00000020) {
/* 11110011 100..... 1000.... 001.0000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:331 */
disas_t32_extract_disas_t32_Fmt_27(ctx, &u.f_msr_bank, insn);
if (trans_MSR_bank(ctx, &u.f_msr_bank)) return true;
}
if ((insn & 0x000000ff) == 0x00000000) {
/* 11110011 100..... 1000.... 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:333 */
disas_t32_extract_disas_t32_Fmt_28(ctx, &u.f_msr_reg, insn);
if (trans_MSR_reg(ctx, &u.f_msr_reg)) return true;
}
if ((insn & 0x00100300) == 0x00000000) {
/* 11110011 1000.... 1000..00 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:334 */
disas_t32_extract_disas_t32_Fmt_29(ctx, &u.f_disas_t3228, insn);
if (trans_MSR_v7m(ctx, &u.f_disas_t3228)) return true;
}
}
if ((insn & 0x04702fff) == 0x00400f00) {
/* 11110011 1100.... 10001111 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:336 */
disas_t32_extract_disas_t32_Fmt_30(ctx, &u.f_r, insn);
if (trans_BXJ(ctx, &u.f_r)) return true;
}
if ((insn & 0x047f2f00) == 0x005e0f00) {
/* 11110011 11011110 10001111 ........ */
if ((insn & 0x000000ff) == 0x00000000) {
/* 11110011 11011110 10001111 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:341 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_ERET(ctx, &u.f_empty)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:342 */
disas_t32_extract_disas_t32_Fmt_31(ctx, &u.f_s_rri_rot, insn);
if (trans_SUB_rri(ctx, &u.f_s_rri_rot)) return true;
}
if ((insn & 0x04702fff) == 0x04700000) {
/* 11110111 1111.... 10000000 00000000 */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:345 */
disas_t32_extract_disas_t32_Fmt_32(ctx, &u.f_i, insn);
if (trans_SMC(ctx, &u.f_i)) return true;
}
if ((insn & 0x04702000) == 0x04600000) {
/* 11110111 1110.... 1000.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:346 */
disas_t32_extract_disas_t32_Fmt_33(ctx, &u.f_i, insn);
if (trans_HVC(ctx, &u.f_i)) return true;
}
if ((insn & 0x04702000) == 0x04702000) {
/* 11110111 1111.... 1010.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:348 */
disas_t32_extract_disas_t32_Fmt_22(ctx, &u.f_empty, insn);
if (trans_UDF(ctx, &u.f_empty)) return true;
}
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:350 */
disas_t32_extract_disas_t32_Fmt_34(ctx, &u.f_ci, insn);
if (trans_B_cond_thumb(ctx, &u.f_ci)) return true;
return false;
case 0x00001000:
/* 11110... ........ 10.1.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:629 */
disas_t32_extract_branch24(ctx, &u.f_i, insn);
if (trans_B(ctx, &u.f_i)) return true;
return false;
case 0x00004000:
/* 11110... ........ 11.0.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:631 */
disas_t32_extract_branch24(ctx, &u.f_i, insn);
if (trans_BLX_i(ctx, &u.f_i)) return true;
return false;
case 0x00005000:
/* 11110... ........ 11.1.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:630 */
disas_t32_extract_branch24(ctx, &u.f_i, insn);
if (trans_BL(ctx, &u.f_i)) return true;
return false;
}
return false;
}
return false;
case 0x1f:
/* 11111... ........ ........ ........ */
switch ((insn >> 24) & 0x7) {
case 0x0:
/* 11111000 ........ ........ ........ */
switch ((insn >> 20) & 0x7) {
case 0x0:
/* 11111000 .000.... ........ ........ */
switch ((insn >> 23) & 0x1) {
case 0x0:
/* 11111000 0000.... ........ ........ */
switch (insn & 0x00000900) {
case 0x00000000:
/* 11111000 0000.... ....0..0 ........ */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
switch (insn & 0x000006c0) {
case 0x00000000:
/* 11111000 0000.... ....0000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:368 */
if (trans_STRB_rr(ctx, &u.f_ldst_rr)) return true;
return false;
}
return false;
case 0x00000800:
/* 11111000 0000.... ....1..0 ........ */
switch ((insn >> 9) & 0x3) {
case 0x2:
/* 11111000 0000.... ....1100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:370 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_STRB_ri(ctx, &u.f_ldst_ri)) return true;
return false;
case 0x3:
/* 11111000 0000.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:371 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_STRBT_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x00000900:
/* 11111000 0000.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:369 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_STRB_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x1:
/* 11111000 1000.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:372 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_STRB_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x1:
/* 11111000 .001.... ........ ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11111000 .0011111 ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 .0011111 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:389 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:390 */
disas_t32_extract_ldst_ri_lit(ctx, &u.f_ldst_ri, insn);
if (trans_LDRB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800000) == 0x00800000) {
/* 11111000 1001.... ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 1001.... 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:393 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:394 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_LDRB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800900) == 0x00000900) {
/* 11111000 0001.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:396 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_LDRB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000c00) {
/* 11111000 0001.... ....1100 ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 0001.... 11111100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:398 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:399 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_LDRB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000e00) {
/* 11111000 0001.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:401 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_LDRBT_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800fc0) == 0x00000000) {
/* 11111000 0001.... ....0000 00...... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 0001.... 11110000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:403 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:404 */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
if (trans_LDRB_rr(ctx, &u.f_ldst_rr)) return true;
}
return false;
case 0x2:
/* 11111000 .010.... ........ ........ */
switch ((insn >> 23) & 0x1) {
case 0x0:
/* 11111000 0010.... ........ ........ */
switch (insn & 0x00000900) {
case 0x00000000:
/* 11111000 0010.... ....0..0 ........ */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
switch (insn & 0x000006c0) {
case 0x00000000:
/* 11111000 0010.... ....0000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:374 */
if (trans_STRH_rr(ctx, &u.f_ldst_rr)) return true;
return false;
}
return false;
case 0x00000800:
/* 11111000 0010.... ....1..0 ........ */
switch ((insn >> 9) & 0x3) {
case 0x2:
/* 11111000 0010.... ....1100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:376 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_STRH_ri(ctx, &u.f_ldst_ri)) return true;
return false;
case 0x3:
/* 11111000 0010.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:377 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_STRHT_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x00000900:
/* 11111000 0010.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:375 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_STRH_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x1:
/* 11111000 1010.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:378 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_STRH_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x3:
/* 11111000 .011.... ........ ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11111000 .0111111 ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 .0111111 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:409 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:410 */
disas_t32_extract_ldst_ri_lit(ctx, &u.f_ldst_ri, insn);
if (trans_LDRH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800000) == 0x00800000) {
/* 11111000 1011.... ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 1011.... 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:413 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:414 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_LDRH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800900) == 0x00000900) {
/* 11111000 0011.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:416 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_LDRH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000c00) {
/* 11111000 0011.... ....1100 ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 0011.... 11111100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:418 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:419 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_LDRH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000e00) {
/* 11111000 0011.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:421 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_LDRHT_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800fc0) == 0x00000000) {
/* 11111000 0011.... ....0000 00...... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111000 0011.... 11110000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:423 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:424 */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
if (trans_LDRH_rr(ctx, &u.f_ldst_rr)) return true;
}
return false;
case 0x4:
/* 11111000 .100.... ........ ........ */
switch ((insn >> 23) & 0x1) {
case 0x0:
/* 11111000 0100.... ........ ........ */
switch (insn & 0x00000900) {
case 0x00000000:
/* 11111000 0100.... ....0..0 ........ */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
switch (insn & 0x000006c0) {
case 0x00000000:
/* 11111000 0100.... ....0000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:380 */
if (trans_STR_rr(ctx, &u.f_ldst_rr)) return true;
return false;
}
return false;
case 0x00000800:
/* 11111000 0100.... ....1..0 ........ */
switch ((insn >> 9) & 0x3) {
case 0x2:
/* 11111000 0100.... ....1100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:382 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_STR_ri(ctx, &u.f_ldst_ri)) return true;
return false;
case 0x3:
/* 11111000 0100.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:383 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_STRT_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x00000900:
/* 11111000 0100.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:381 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_STR_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x1:
/* 11111000 1100.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:384 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_STR_ri(ctx, &u.f_ldst_ri)) return true;
return false;
}
return false;
case 0x5:
/* 11111000 .101.... ........ ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11111000 .1011111 ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:428 */
disas_t32_extract_ldst_ri_lit(ctx, &u.f_ldst_ri, insn);
if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800000) == 0x00800000) {
/* 11111000 1101.... ........ ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:429 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800900) == 0x00000900) {
/* 11111000 0101.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:430 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000c00) {
/* 11111000 0101.... ....1100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:431 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_LDR_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000e00) {
/* 11111000 0101.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:432 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_LDRT_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800fc0) == 0x00000000) {
/* 11111000 0101.... ....0000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:433 */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
if (trans_LDR_rr(ctx, &u.f_ldst_rr)) return true;
}
return false;
}
return false;
case 0x1:
/* 11111001 ........ ........ ........ */
switch ((insn >> 20) & 0x7) {
case 0x1:
/* 11111001 .001.... ........ ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11111001 .0011111 ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 .0011111 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:438 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:439 */
disas_t32_extract_ldst_ri_lit(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800000) == 0x00800000) {
/* 11111001 1001.... ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 1001.... 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:442 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:443 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800900) == 0x00000900) {
/* 11111001 0001.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:445 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000c00) {
/* 11111001 0001.... ....1100 ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 0001.... 11111100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:447 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:448 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSB_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000e00) {
/* 11111001 0001.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:450 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSBT_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800fc0) == 0x00000000) {
/* 11111001 0001.... ....0000 00...... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 0001.... 11110000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:452 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:453 */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
if (trans_LDRSB_rr(ctx, &u.f_ldst_rr)) return true;
}
return false;
case 0x3:
/* 11111001 .011.... ........ ........ */
if ((insn & 0x000f0000) == 0x000f0000) {
/* 11111001 .0111111 ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 .0111111 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:459 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:460 */
disas_t32_extract_ldst_ri_lit(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800000) == 0x00800000) {
/* 11111001 1011.... ........ ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 1011.... 1111.... ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:463 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:464 */
disas_t32_extract_ldst_ri_pos(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800900) == 0x00000900) {
/* 11111001 0011.... ....1..1 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:466 */
disas_t32_extract_ldst_ri_idx(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000c00) {
/* 11111001 0011.... ....1100 ........ */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 0011.... 11111100 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:468 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:469 */
disas_t32_extract_ldst_ri_neg(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSH_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800f00) == 0x00000e00) {
/* 11111001 0011.... ....1110 ........ */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:471 */
disas_t32_extract_ldst_ri_unp(ctx, &u.f_ldst_ri, insn);
if (trans_LDRSHT_ri(ctx, &u.f_ldst_ri)) return true;
}
if ((insn & 0x00800fc0) == 0x00000000) {
/* 11111001 0011.... ....0000 00...... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111001 0011.... 11110000 00...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:473 */
disas_t32_extract_disas_t32_Fmt_22(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/t32.decode:474 */
disas_t32_extract_ldst_rr(ctx, &u.f_ldst_rr, insn);
if (trans_LDRSH_rr(ctx, &u.f_ldst_rr)) return true;
}
return false;
}
return false;
case 0x2:
/* 11111010 ........ ........ ........ */
switch (insn & 0x0080f0c0) {
case 0x0000f000:
/* 11111010 0....... 1111.... 00...... */
disas_t32_extract_disas_t32_Fmt_4(ctx, &u.f_s_rrr_shr, insn);
switch ((insn >> 4) & 0x3) {
case 0x0:
/* 11111010 0....... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:93 */
if (trans_MOV_rxrr(ctx, &u.f_s_rrr_shr)) return true;
return false;
}
return false;
case 0x0000f080:
/* 11111010 0....... 1111.... 10...... */
disas_t32_extract_rrr_rot(ctx, &u.f_rrr_rot, insn);
switch ((insn >> 20) & 0x7) {
case 0x0:
/* 11111010 0000.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:596 */
if (trans_SXTAH(ctx, &u.f_rrr_rot)) return true;
return false;
case 0x1:
/* 11111010 0001.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:597 */
if (trans_UXTAH(ctx, &u.f_rrr_rot)) return true;
return false;
case 0x2:
/* 11111010 0010.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:598 */
if (trans_SXTAB16(ctx, &u.f_rrr_rot)) return true;
return false;
case 0x3:
/* 11111010 0011.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:599 */
if (trans_UXTAB16(ctx, &u.f_rrr_rot)) return true;
return false;
case 0x4:
/* 11111010 0100.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:600 */
if (trans_SXTAB(ctx, &u.f_rrr_rot)) return true;
return false;
case 0x5:
/* 11111010 0101.... 1111.... 10...... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:601 */
if (trans_UXTAB(ctx, &u.f_rrr_rot)) return true;
return false;
}
return false;
case 0x0080f000:
/* 11111010 1....... 1111.... 00...... */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
switch (insn & 0x00700030) {
case 0x00000000:
/* 11111010 1000.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:550 */
if (trans_SADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00000010:
/* 11111010 1000.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:551 */
if (trans_QADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00000020:
/* 11111010 1000.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:552 */
if (trans_SHADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00100000:
/* 11111010 1001.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:557 */
if (trans_SADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00100010:
/* 11111010 1001.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:558 */
if (trans_QADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00100020:
/* 11111010 1001.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:559 */
if (trans_SHADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00200000:
/* 11111010 1010.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:564 */
if (trans_SASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00200010:
/* 11111010 1010.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:565 */
if (trans_QASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00200020:
/* 11111010 1010.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:566 */
if (trans_SHASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00400000:
/* 11111010 1100.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:571 */
if (trans_SSUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00400010:
/* 11111010 1100.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:572 */
if (trans_QSUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00400020:
/* 11111010 1100.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:573 */
if (trans_SHSUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00500000:
/* 11111010 1101.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:578 */
if (trans_SSUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00500010:
/* 11111010 1101.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:579 */
if (trans_QSUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00500020:
/* 11111010 1101.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:580 */
if (trans_SHSUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00600000:
/* 11111010 1110.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:585 */
if (trans_SSAX(ctx, &u.f_rrr)) return true;
return false;
case 0x00600010:
/* 11111010 1110.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:586 */
if (trans_QSAX(ctx, &u.f_rrr)) return true;
return false;
case 0x00600020:
/* 11111010 1110.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:587 */
if (trans_SHSAX(ctx, &u.f_rrr)) return true;
return false;
}
return false;
case 0x0080f040:
/* 11111010 1....... 1111.... 01...... */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
switch (insn & 0x00700030) {
case 0x00000000:
/* 11111010 1000.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:553 */
if (trans_UADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00000010:
/* 11111010 1000.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:554 */
if (trans_UQADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00000020:
/* 11111010 1000.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:555 */
if (trans_UHADD8(ctx, &u.f_rrr)) return true;
return false;
case 0x00100000:
/* 11111010 1001.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:560 */
if (trans_UADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00100010:
/* 11111010 1001.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:561 */
if (trans_UQADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00100020:
/* 11111010 1001.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:562 */
if (trans_UHADD16(ctx, &u.f_rrr)) return true;
return false;
case 0x00200000:
/* 11111010 1010.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:567 */
if (trans_UASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00200010:
/* 11111010 1010.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:568 */
if (trans_UQASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00200020:
/* 11111010 1010.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:569 */
if (trans_UHASX(ctx, &u.f_rrr)) return true;
return false;
case 0x00400000:
/* 11111010 1100.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:574 */
if (trans_USUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00400010:
/* 11111010 1100.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:575 */
if (trans_UQSUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00400020:
/* 11111010 1100.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:576 */
if (trans_UHSUB8(ctx, &u.f_rrr)) return true;
return false;
case 0x00500000:
/* 11111010 1101.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:581 */
if (trans_USUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00500010:
/* 11111010 1101.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:582 */
if (trans_UQSUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00500020:
/* 11111010 1101.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:583 */
if (trans_UHSUB16(ctx, &u.f_rrr)) return true;
return false;
case 0x00600000:
/* 11111010 1110.... 1111.... 0100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:588 */
if (trans_USAX(ctx, &u.f_rrr)) return true;
return false;
case 0x00600010:
/* 11111010 1110.... 1111.... 0101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:589 */
if (trans_UQSAX(ctx, &u.f_rrr)) return true;
return false;
case 0x00600020:
/* 11111010 1110.... 1111.... 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:590 */
if (trans_UHSAX(ctx, &u.f_rrr)) return true;
return false;
}
return false;
case 0x0080f080:
/* 11111010 1....... 1111.... 10...... */
switch (insn & 0x00700030) {
case 0x00000000:
/* 11111010 1000.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:262 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_QADD(ctx, &u.f_rrr)) return true;
return false;
case 0x00000010:
/* 11111010 1000.... 1111.... 1001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:264 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_QDADD(ctx, &u.f_rrr)) return true;
return false;
case 0x00000020:
/* 11111010 1000.... 1111.... 1010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:263 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_QSUB(ctx, &u.f_rrr)) return true;
return false;
case 0x00000030:
/* 11111010 1000.... 1111.... 1011.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:265 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_QDSUB(ctx, &u.f_rrr)) return true;
return false;
case 0x00100000:
/* 11111010 1001.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:277 */
disas_t32_extract_rdm(ctx, &u.f_rr, insn);
if (trans_REV(ctx, &u.f_rr)) return true;
return false;
case 0x00100010:
/* 11111010 1001.... 1111.... 1001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:278 */
disas_t32_extract_rdm(ctx, &u.f_rr, insn);
if (trans_REV16(ctx, &u.f_rr)) return true;
return false;
case 0x00100020:
/* 11111010 1001.... 1111.... 1010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:279 */
disas_t32_extract_rdm(ctx, &u.f_rr, insn);
if (trans_RBIT(ctx, &u.f_rr)) return true;
return false;
case 0x00100030:
/* 11111010 1001.... 1111.... 1011.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:280 */
disas_t32_extract_rdm(ctx, &u.f_rr, insn);
if (trans_REVSH(ctx, &u.f_rr)) return true;
return false;
case 0x00200000:
/* 11111010 1010.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:274 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_SEL(ctx, &u.f_rrr)) return true;
return false;
case 0x00300000:
/* 11111010 1011.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:281 */
disas_t32_extract_rdm(ctx, &u.f_rr, insn);
if (trans_CLZ(ctx, &u.f_rr)) return true;
return false;
case 0x00400000:
/* 11111010 1100.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:267 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32B(ctx, &u.f_rrr)) return true;
return false;
case 0x00400010:
/* 11111010 1100.... 1111.... 1001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:268 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32H(ctx, &u.f_rrr)) return true;
return false;
case 0x00400020:
/* 11111010 1100.... 1111.... 1010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:269 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32W(ctx, &u.f_rrr)) return true;
return false;
case 0x00500000:
/* 11111010 1101.... 1111.... 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:270 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32CB(ctx, &u.f_rrr)) return true;
return false;
case 0x00500010:
/* 11111010 1101.... 1111.... 1001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:271 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32CH(ctx, &u.f_rrr)) return true;
return false;
case 0x00500020:
/* 11111010 1101.... 1111.... 1010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:272 */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
if (trans_CRC32CW(ctx, &u.f_rrr)) return true;
return false;
}
return false;
}
return false;
case 0x3:
/* 11111011 ........ ........ ........ */
switch (insn & 0x00f000f0) {
case 0x00000000:
/* 11111011 0000.... ........ 0000.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0000.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:201 */
disas_t32_extract_s0_rn0dm(ctx, &u.f_s_rrrr, insn);
if (trans_MUL(ctx, &u.f_s_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:202 */
disas_t32_extract_s0_rnadm(ctx, &u.f_s_rrrr, insn);
if (trans_MLA(ctx, &u.f_s_rrrr)) return true;
return false;
case 0x00000010:
/* 11111011 0000.... ........ 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:204 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_MLS(ctx, &u.f_rrrr)) return true;
return false;
case 0x00100000:
/* 11111011 0001.... ........ 0000.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0001.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:219 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULBB(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:220 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLABB(ctx, &u.f_rrrr)) return true;
return false;
case 0x00100010:
/* 11111011 0001.... ........ 0001.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0001.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:223 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULBT(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:224 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLABT(ctx, &u.f_rrrr)) return true;
return false;
case 0x00100020:
/* 11111011 0001.... ........ 0010.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0001.... 1111.... 0010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:227 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULTB(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:228 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLATB(ctx, &u.f_rrrr)) return true;
return false;
case 0x00100030:
/* 11111011 0001.... ........ 0011.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0001.... 1111.... 0011.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:231 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULTT(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:232 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLATT(ctx, &u.f_rrrr)) return true;
return false;
case 0x00200000:
/* 11111011 0010.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:242 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLAD(ctx, &u.f_rrrr)) return true;
return false;
case 0x00200010:
/* 11111011 0010.... ........ 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:243 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLADX(ctx, &u.f_rrrr)) return true;
return false;
case 0x00300000:
/* 11111011 0011.... ........ 0000.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0011.... 1111.... 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:211 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULWB(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:212 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLAWB(ctx, &u.f_rrrr)) return true;
return false;
case 0x00300010:
/* 11111011 0011.... ........ 0001.... */
if ((insn & 0x0000f000) == 0x0000f000) {
/* 11111011 0011.... 1111.... 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:215 */
disas_t32_extract_rn0dm(ctx, &u.f_rrrr, insn);
if (trans_SMULWT(ctx, &u.f_rrrr)) return true;
}
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:216 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLAWT(ctx, &u.f_rrrr)) return true;
return false;
case 0x00400000:
/* 11111011 0100.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:244 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLSD(ctx, &u.f_rrrr)) return true;
return false;
case 0x00400010:
/* 11111011 0100.... ........ 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:245 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLSDX(ctx, &u.f_rrrr)) return true;
return false;
case 0x00500000:
/* 11111011 0101.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:252 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMMLA(ctx, &u.f_rrrr)) return true;
return false;
case 0x00500010:
/* 11111011 0101.... ........ 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:253 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMMLAR(ctx, &u.f_rrrr)) return true;
return false;
case 0x00600000:
/* 11111011 0110.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:254 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMMLS(ctx, &u.f_rrrr)) return true;
return false;
case 0x00600010:
/* 11111011 0110.... ........ 0001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:255 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMMLSR(ctx, &u.f_rrrr)) return true;
return false;
case 0x00700000:
/* 11111011 0111.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:240 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_USADA8(ctx, &u.f_rrrr)) return true;
return false;
case 0x00800000:
/* 11111011 1000.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:205 */
disas_t32_extract_s0_rnadm(ctx, &u.f_s_rrrr, insn);
if (trans_SMULL(ctx, &u.f_s_rrrr)) return true;
return false;
case 0x009000f0:
/* 11111011 1001.... ........ 1111.... */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
switch ((insn >> 12) & 0xf) {
case 0xf:
/* 11111011 1001.... 1111.... 1111.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:257 */
if (trans_SDIV(ctx, &u.f_rrr)) return true;
return false;
}
return false;
case 0x00a00000:
/* 11111011 1010.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:206 */
disas_t32_extract_s0_rnadm(ctx, &u.f_s_rrrr, insn);
if (trans_UMULL(ctx, &u.f_s_rrrr)) return true;
return false;
case 0x00b000f0:
/* 11111011 1011.... ........ 1111.... */
disas_t32_extract_rndm(ctx, &u.f_rrr, insn);
switch ((insn >> 12) & 0xf) {
case 0xf:
/* 11111011 1011.... 1111.... 1111.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:258 */
if (trans_UDIV(ctx, &u.f_rrr)) return true;
return false;
}
return false;
case 0x00c00000:
/* 11111011 1100.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:207 */
disas_t32_extract_s0_rnadm(ctx, &u.f_s_rrrr, insn);
if (trans_SMLAL(ctx, &u.f_s_rrrr)) return true;
return false;
case 0x00c00080:
/* 11111011 1100.... ........ 1000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:234 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALBB(ctx, &u.f_rrrr)) return true;
return false;
case 0x00c00090:
/* 11111011 1100.... ........ 1001.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:235 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALBT(ctx, &u.f_rrrr)) return true;
return false;
case 0x00c000a0:
/* 11111011 1100.... ........ 1010.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:236 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALTB(ctx, &u.f_rrrr)) return true;
return false;
case 0x00c000b0:
/* 11111011 1100.... ........ 1011.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:237 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALTT(ctx, &u.f_rrrr)) return true;
return false;
case 0x00c000c0:
/* 11111011 1100.... ........ 1100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:247 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALD(ctx, &u.f_rrrr)) return true;
return false;
case 0x00c000d0:
/* 11111011 1100.... ........ 1101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:248 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLALDX(ctx, &u.f_rrrr)) return true;
return false;
case 0x00d000c0:
/* 11111011 1101.... ........ 1100.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:249 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLSLD(ctx, &u.f_rrrr)) return true;
return false;
case 0x00d000d0:
/* 11111011 1101.... ........ 1101.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:250 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_SMLSLDX(ctx, &u.f_rrrr)) return true;
return false;
case 0x00e00000:
/* 11111011 1110.... ........ 0000.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:208 */
disas_t32_extract_s0_rnadm(ctx, &u.f_s_rrrr, insn);
if (trans_UMLAL(ctx, &u.f_s_rrrr)) return true;
return false;
case 0x00e00060:
/* 11111011 1110.... ........ 0110.... */
/* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/t32.decode:209 */
disas_t32_extract_rnadm(ctx, &u.f_rrrr, insn);
if (trans_UMAAL(ctx, &u.f_rrrr)) return true;
return false;
}
return false;
}
return false;
}
return false;
}