target/ppc: Move xs{max, min}[cj]dp to use do_helper_XX3
Also, fixes these instructions not being capitalized. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Víctor Colombo <victor.colombo@eldorado.org.br> Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br> Message-Id: <20220225210936.1749575-44-matheus.ferst@eldorado.org.br> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
72d24354ca
commit
5307df8f3a
@ -2565,8 +2565,8 @@ void helper_##name(CPUPPCState *env, \
|
||||
} \
|
||||
} \
|
||||
|
||||
VSX_MAX_MINC(xsmaxcdp, 1);
|
||||
VSX_MAX_MINC(xsmincdp, 0);
|
||||
VSX_MAX_MINC(XSMAXCDP, 1);
|
||||
VSX_MAX_MINC(XSMINCDP, 0);
|
||||
|
||||
#define VSX_MAX_MINJ(name, max) \
|
||||
void helper_##name(CPUPPCState *env, \
|
||||
@ -2620,8 +2620,8 @@ void helper_##name(CPUPPCState *env, \
|
||||
} \
|
||||
} \
|
||||
|
||||
VSX_MAX_MINJ(xsmaxjdp, 1);
|
||||
VSX_MAX_MINJ(xsminjdp, 0);
|
||||
VSX_MAX_MINJ(XSMAXJDP, 1);
|
||||
VSX_MAX_MINJ(XSMINJDP, 0);
|
||||
|
||||
/*
|
||||
* VSX_CMP - VSX floating point compare
|
||||
|
@ -373,10 +373,10 @@ DEF_HELPER_4(xscmpoqp, void, env, i32, vsr, vsr)
|
||||
DEF_HELPER_4(xscmpuqp, void, env, i32, vsr, vsr)
|
||||
DEF_HELPER_4(xsmaxdp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(xsmindp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(xsmaxcdp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(xsmincdp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(xsmaxjdp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(xsminjdp, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(XSMAXCDP, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(XSMINCDP, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(XSMAXJDP, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_4(XSMINJDP, void, env, vsr, vsr, vsr)
|
||||
DEF_HELPER_3(xscvdphp, void, env, vsr, vsr)
|
||||
DEF_HELPER_4(xscvdpqp, void, env, i32, vsr, vsr)
|
||||
DEF_HELPER_3(xscvdpsp, void, env, vsr, vsr)
|
||||
|
@ -2610,32 +2610,10 @@ static bool do_helper_XX3(DisasContext *ctx, arg_XX3 *a,
|
||||
TRANS(XSCMPEQDP, do_helper_XX3, gen_helper_XSCMPEQDP)
|
||||
TRANS(XSCMPGEDP, do_helper_XX3, gen_helper_XSCMPGEDP)
|
||||
TRANS(XSCMPGTDP, do_helper_XX3, gen_helper_XSCMPGTDP)
|
||||
|
||||
static bool do_xsmaxmincjdp(DisasContext *ctx, arg_XX3 *a,
|
||||
void (*helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr))
|
||||
{
|
||||
TCGv_ptr xt, xa, xb;
|
||||
|
||||
REQUIRE_INSNS_FLAGS2(ctx, ISA300);
|
||||
REQUIRE_VSX(ctx);
|
||||
|
||||
xt = gen_vsr_ptr(a->xt);
|
||||
xa = gen_vsr_ptr(a->xa);
|
||||
xb = gen_vsr_ptr(a->xb);
|
||||
|
||||
helper(cpu_env, xt, xa, xb);
|
||||
|
||||
tcg_temp_free_ptr(xt);
|
||||
tcg_temp_free_ptr(xa);
|
||||
tcg_temp_free_ptr(xb);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
TRANS(XSMAXCDP, do_xsmaxmincjdp, gen_helper_xsmaxcdp)
|
||||
TRANS(XSMINCDP, do_xsmaxmincjdp, gen_helper_xsmincdp)
|
||||
TRANS(XSMAXJDP, do_xsmaxmincjdp, gen_helper_xsmaxjdp)
|
||||
TRANS(XSMINJDP, do_xsmaxmincjdp, gen_helper_xsminjdp)
|
||||
TRANS(XSMAXCDP, do_helper_XX3, gen_helper_XSMAXCDP)
|
||||
TRANS(XSMINCDP, do_helper_XX3, gen_helper_XSMINCDP)
|
||||
TRANS(XSMAXJDP, do_helper_XX3, gen_helper_XSMAXJDP)
|
||||
TRANS(XSMINJDP, do_helper_XX3, gen_helper_XSMINJDP)
|
||||
|
||||
static bool do_helper_X(arg_X *a,
|
||||
void (*helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr))
|
||||
|
Loading…
Reference in New Issue
Block a user