mirror of https://github.com/xemu-project/xemu.git
target/arm: Add data argument to do_fp3_vector
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20240625183536.1672454-11-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
9676c9d9b5
commit
6515b13e87
target/arm/tcg
|
@ -5290,7 +5290,7 @@ TRANS(CMHS_s, do_cmop_d, a, TCG_COND_GEU)
|
|||
TRANS(CMEQ_s, do_cmop_d, a, TCG_COND_EQ)
|
||||
TRANS(CMTST_s, do_cmop_d, a, TCG_COND_TSTNE)
|
||||
|
||||
static bool do_fp3_vector(DisasContext *s, arg_qrrr_e *a,
|
||||
static bool do_fp3_vector(DisasContext *s, arg_qrrr_e *a, int data,
|
||||
gen_helper_gvec_3_ptr * const fns[3])
|
||||
{
|
||||
MemOp esz = a->esz;
|
||||
|
@ -5313,7 +5313,7 @@ static bool do_fp3_vector(DisasContext *s, arg_qrrr_e *a,
|
|||
}
|
||||
if (fp_access_check(s)) {
|
||||
gen_gvec_op3_fpst(s, a->q, a->rd, a->rn, a->rm,
|
||||
esz == MO_16, 0, fns[esz - 1]);
|
||||
esz == MO_16, data, fns[esz - 1]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -5323,168 +5323,168 @@ static gen_helper_gvec_3_ptr * const f_vector_fadd[3] = {
|
|||
gen_helper_gvec_fadd_s,
|
||||
gen_helper_gvec_fadd_d,
|
||||
};
|
||||
TRANS(FADD_v, do_fp3_vector, a, f_vector_fadd)
|
||||
TRANS(FADD_v, do_fp3_vector, a, 0, f_vector_fadd)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fsub[3] = {
|
||||
gen_helper_gvec_fsub_h,
|
||||
gen_helper_gvec_fsub_s,
|
||||
gen_helper_gvec_fsub_d,
|
||||
};
|
||||
TRANS(FSUB_v, do_fp3_vector, a, f_vector_fsub)
|
||||
TRANS(FSUB_v, do_fp3_vector, a, 0, f_vector_fsub)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fdiv[3] = {
|
||||
gen_helper_gvec_fdiv_h,
|
||||
gen_helper_gvec_fdiv_s,
|
||||
gen_helper_gvec_fdiv_d,
|
||||
};
|
||||
TRANS(FDIV_v, do_fp3_vector, a, f_vector_fdiv)
|
||||
TRANS(FDIV_v, do_fp3_vector, a, 0, f_vector_fdiv)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmul[3] = {
|
||||
gen_helper_gvec_fmul_h,
|
||||
gen_helper_gvec_fmul_s,
|
||||
gen_helper_gvec_fmul_d,
|
||||
};
|
||||
TRANS(FMUL_v, do_fp3_vector, a, f_vector_fmul)
|
||||
TRANS(FMUL_v, do_fp3_vector, a, 0, f_vector_fmul)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmax[3] = {
|
||||
gen_helper_gvec_fmax_h,
|
||||
gen_helper_gvec_fmax_s,
|
||||
gen_helper_gvec_fmax_d,
|
||||
};
|
||||
TRANS(FMAX_v, do_fp3_vector, a, f_vector_fmax)
|
||||
TRANS(FMAX_v, do_fp3_vector, a, 0, f_vector_fmax)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmin[3] = {
|
||||
gen_helper_gvec_fmin_h,
|
||||
gen_helper_gvec_fmin_s,
|
||||
gen_helper_gvec_fmin_d,
|
||||
};
|
||||
TRANS(FMIN_v, do_fp3_vector, a, f_vector_fmin)
|
||||
TRANS(FMIN_v, do_fp3_vector, a, 0, f_vector_fmin)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmaxnm[3] = {
|
||||
gen_helper_gvec_fmaxnum_h,
|
||||
gen_helper_gvec_fmaxnum_s,
|
||||
gen_helper_gvec_fmaxnum_d,
|
||||
};
|
||||
TRANS(FMAXNM_v, do_fp3_vector, a, f_vector_fmaxnm)
|
||||
TRANS(FMAXNM_v, do_fp3_vector, a, 0, f_vector_fmaxnm)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fminnm[3] = {
|
||||
gen_helper_gvec_fminnum_h,
|
||||
gen_helper_gvec_fminnum_s,
|
||||
gen_helper_gvec_fminnum_d,
|
||||
};
|
||||
TRANS(FMINNM_v, do_fp3_vector, a, f_vector_fminnm)
|
||||
TRANS(FMINNM_v, do_fp3_vector, a, 0, f_vector_fminnm)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmulx[3] = {
|
||||
gen_helper_gvec_fmulx_h,
|
||||
gen_helper_gvec_fmulx_s,
|
||||
gen_helper_gvec_fmulx_d,
|
||||
};
|
||||
TRANS(FMULX_v, do_fp3_vector, a, f_vector_fmulx)
|
||||
TRANS(FMULX_v, do_fp3_vector, a, 0, f_vector_fmulx)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmla[3] = {
|
||||
gen_helper_gvec_vfma_h,
|
||||
gen_helper_gvec_vfma_s,
|
||||
gen_helper_gvec_vfma_d,
|
||||
};
|
||||
TRANS(FMLA_v, do_fp3_vector, a, f_vector_fmla)
|
||||
TRANS(FMLA_v, do_fp3_vector, a, 0, f_vector_fmla)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmls[3] = {
|
||||
gen_helper_gvec_vfms_h,
|
||||
gen_helper_gvec_vfms_s,
|
||||
gen_helper_gvec_vfms_d,
|
||||
};
|
||||
TRANS(FMLS_v, do_fp3_vector, a, f_vector_fmls)
|
||||
TRANS(FMLS_v, do_fp3_vector, a, 0, f_vector_fmls)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fcmeq[3] = {
|
||||
gen_helper_gvec_fceq_h,
|
||||
gen_helper_gvec_fceq_s,
|
||||
gen_helper_gvec_fceq_d,
|
||||
};
|
||||
TRANS(FCMEQ_v, do_fp3_vector, a, f_vector_fcmeq)
|
||||
TRANS(FCMEQ_v, do_fp3_vector, a, 0, f_vector_fcmeq)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fcmge[3] = {
|
||||
gen_helper_gvec_fcge_h,
|
||||
gen_helper_gvec_fcge_s,
|
||||
gen_helper_gvec_fcge_d,
|
||||
};
|
||||
TRANS(FCMGE_v, do_fp3_vector, a, f_vector_fcmge)
|
||||
TRANS(FCMGE_v, do_fp3_vector, a, 0, f_vector_fcmge)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fcmgt[3] = {
|
||||
gen_helper_gvec_fcgt_h,
|
||||
gen_helper_gvec_fcgt_s,
|
||||
gen_helper_gvec_fcgt_d,
|
||||
};
|
||||
TRANS(FCMGT_v, do_fp3_vector, a, f_vector_fcmgt)
|
||||
TRANS(FCMGT_v, do_fp3_vector, a, 0, f_vector_fcmgt)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_facge[3] = {
|
||||
gen_helper_gvec_facge_h,
|
||||
gen_helper_gvec_facge_s,
|
||||
gen_helper_gvec_facge_d,
|
||||
};
|
||||
TRANS(FACGE_v, do_fp3_vector, a, f_vector_facge)
|
||||
TRANS(FACGE_v, do_fp3_vector, a, 0, f_vector_facge)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_facgt[3] = {
|
||||
gen_helper_gvec_facgt_h,
|
||||
gen_helper_gvec_facgt_s,
|
||||
gen_helper_gvec_facgt_d,
|
||||
};
|
||||
TRANS(FACGT_v, do_fp3_vector, a, f_vector_facgt)
|
||||
TRANS(FACGT_v, do_fp3_vector, a, 0, f_vector_facgt)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fabd[3] = {
|
||||
gen_helper_gvec_fabd_h,
|
||||
gen_helper_gvec_fabd_s,
|
||||
gen_helper_gvec_fabd_d,
|
||||
};
|
||||
TRANS(FABD_v, do_fp3_vector, a, f_vector_fabd)
|
||||
TRANS(FABD_v, do_fp3_vector, a, 0, f_vector_fabd)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_frecps[3] = {
|
||||
gen_helper_gvec_recps_h,
|
||||
gen_helper_gvec_recps_s,
|
||||
gen_helper_gvec_recps_d,
|
||||
};
|
||||
TRANS(FRECPS_v, do_fp3_vector, a, f_vector_frecps)
|
||||
TRANS(FRECPS_v, do_fp3_vector, a, 0, f_vector_frecps)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_frsqrts[3] = {
|
||||
gen_helper_gvec_rsqrts_h,
|
||||
gen_helper_gvec_rsqrts_s,
|
||||
gen_helper_gvec_rsqrts_d,
|
||||
};
|
||||
TRANS(FRSQRTS_v, do_fp3_vector, a, f_vector_frsqrts)
|
||||
TRANS(FRSQRTS_v, do_fp3_vector, a, 0, f_vector_frsqrts)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_faddp[3] = {
|
||||
gen_helper_gvec_faddp_h,
|
||||
gen_helper_gvec_faddp_s,
|
||||
gen_helper_gvec_faddp_d,
|
||||
};
|
||||
TRANS(FADDP_v, do_fp3_vector, a, f_vector_faddp)
|
||||
TRANS(FADDP_v, do_fp3_vector, a, 0, f_vector_faddp)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmaxp[3] = {
|
||||
gen_helper_gvec_fmaxp_h,
|
||||
gen_helper_gvec_fmaxp_s,
|
||||
gen_helper_gvec_fmaxp_d,
|
||||
};
|
||||
TRANS(FMAXP_v, do_fp3_vector, a, f_vector_fmaxp)
|
||||
TRANS(FMAXP_v, do_fp3_vector, a, 0, f_vector_fmaxp)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fminp[3] = {
|
||||
gen_helper_gvec_fminp_h,
|
||||
gen_helper_gvec_fminp_s,
|
||||
gen_helper_gvec_fminp_d,
|
||||
};
|
||||
TRANS(FMINP_v, do_fp3_vector, a, f_vector_fminp)
|
||||
TRANS(FMINP_v, do_fp3_vector, a, 0, f_vector_fminp)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fmaxnmp[3] = {
|
||||
gen_helper_gvec_fmaxnump_h,
|
||||
gen_helper_gvec_fmaxnump_s,
|
||||
gen_helper_gvec_fmaxnump_d,
|
||||
};
|
||||
TRANS(FMAXNMP_v, do_fp3_vector, a, f_vector_fmaxnmp)
|
||||
TRANS(FMAXNMP_v, do_fp3_vector, a, 0, f_vector_fmaxnmp)
|
||||
|
||||
static gen_helper_gvec_3_ptr * const f_vector_fminnmp[3] = {
|
||||
gen_helper_gvec_fminnump_h,
|
||||
gen_helper_gvec_fminnump_s,
|
||||
gen_helper_gvec_fminnump_d,
|
||||
};
|
||||
TRANS(FMINNMP_v, do_fp3_vector, a, f_vector_fminnmp)
|
||||
TRANS(FMINNMP_v, do_fp3_vector, a, 0, f_vector_fminnmp)
|
||||
|
||||
static bool do_fmlal(DisasContext *s, arg_qrrr_e *a, bool is_s, bool is_2)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue