mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-20 03:01:32 +00:00
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(XSMAXCDP, 1);
|
||||||
VSX_MAX_MINC(xsmincdp, 0);
|
VSX_MAX_MINC(XSMINCDP, 0);
|
||||||
|
|
||||||
#define VSX_MAX_MINJ(name, max) \
|
#define VSX_MAX_MINJ(name, max) \
|
||||||
void helper_##name(CPUPPCState *env, \
|
void helper_##name(CPUPPCState *env, \
|
||||||
|
@ -2620,8 +2620,8 @@ void helper_##name(CPUPPCState *env, \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
VSX_MAX_MINJ(xsmaxjdp, 1);
|
VSX_MAX_MINJ(XSMAXJDP, 1);
|
||||||
VSX_MAX_MINJ(xsminjdp, 0);
|
VSX_MAX_MINJ(XSMINJDP, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* VSX_CMP - VSX floating point compare
|
* 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(xscmpuqp, void, env, i32, vsr, vsr)
|
||||||
DEF_HELPER_4(xsmaxdp, void, env, vsr, vsr, vsr)
|
DEF_HELPER_4(xsmaxdp, void, env, vsr, vsr, vsr)
|
||||||
DEF_HELPER_4(xsmindp, 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(XSMAXCDP, void, env, vsr, vsr, vsr)
|
||||||
DEF_HELPER_4(xsmincdp, 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(XSMAXJDP, void, env, vsr, vsr, vsr)
|
||||||
DEF_HELPER_4(xsminjdp, void, env, vsr, vsr, vsr)
|
DEF_HELPER_4(XSMINJDP, void, env, vsr, vsr, vsr)
|
||||||
DEF_HELPER_3(xscvdphp, void, env, vsr, vsr)
|
DEF_HELPER_3(xscvdphp, void, env, vsr, vsr)
|
||||||
DEF_HELPER_4(xscvdpqp, void, env, i32, vsr, vsr)
|
DEF_HELPER_4(xscvdpqp, void, env, i32, vsr, vsr)
|
||||||
DEF_HELPER_3(xscvdpsp, void, env, 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(XSCMPEQDP, do_helper_XX3, gen_helper_XSCMPEQDP)
|
||||||
TRANS(XSCMPGEDP, do_helper_XX3, gen_helper_XSCMPGEDP)
|
TRANS(XSCMPGEDP, do_helper_XX3, gen_helper_XSCMPGEDP)
|
||||||
TRANS(XSCMPGTDP, do_helper_XX3, gen_helper_XSCMPGTDP)
|
TRANS(XSCMPGTDP, do_helper_XX3, gen_helper_XSCMPGTDP)
|
||||||
|
TRANS(XSMAXCDP, do_helper_XX3, gen_helper_XSMAXCDP)
|
||||||
static bool do_xsmaxmincjdp(DisasContext *ctx, arg_XX3 *a,
|
TRANS(XSMINCDP, do_helper_XX3, gen_helper_XSMINCDP)
|
||||||
void (*helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr))
|
TRANS(XSMAXJDP, do_helper_XX3, gen_helper_XSMAXJDP)
|
||||||
{
|
TRANS(XSMINJDP, do_helper_XX3, gen_helper_XSMINJDP)
|
||||||
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)
|
|
||||||
|
|
||||||
static bool do_helper_X(arg_X *a,
|
static bool do_helper_X(arg_X *a,
|
||||||
void (*helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr))
|
void (*helper)(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_ptr))
|
||||||
|
|
Loading…
Reference in a new issue