mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
target/ppc: vmulh* instructions without helpers
Changed vmulhuw, vmulhud, vmulhsw, vmulhsd to not use helpers. Signed-off-by: Lucas Mateus Castro (alqotel) <lucas.araujo@eldorado.org.br> Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220225210936.1749575-5-matheus.ferst@eldorado.org.br> Signed-off-by: Cédric Le Goater <clg@kaod.org>
This commit is contained in:
parent
d45da01428
commit
29e9dfcf75
3 changed files with 87 additions and 43 deletions
|
@ -1097,41 +1097,6 @@ VMUL(UW, u32, VsrW, VsrD, uint64_t)
|
|||
#undef VMUL_DO_ODD
|
||||
#undef VMUL
|
||||
|
||||
void helper_VMULHSW(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
r->s32[i] = (int32_t)(((int64_t)a->s32[i] * (int64_t)b->s32[i]) >> 32);
|
||||
}
|
||||
}
|
||||
|
||||
void helper_VMULHUW(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
r->u32[i] = (uint32_t)(((uint64_t)a->u32[i] *
|
||||
(uint64_t)b->u32[i]) >> 32);
|
||||
}
|
||||
}
|
||||
|
||||
void helper_VMULHSD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
{
|
||||
uint64_t discard;
|
||||
|
||||
muls64(&discard, &r->u64[0], a->s64[0], b->s64[0]);
|
||||
muls64(&discard, &r->u64[1], a->s64[1], b->s64[1]);
|
||||
}
|
||||
|
||||
void helper_VMULHUD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
{
|
||||
uint64_t discard;
|
||||
|
||||
mulu64(&discard, &r->u64[0], a->u64[0], b->u64[0]);
|
||||
mulu64(&discard, &r->u64[1], a->u64[1], b->u64[1]);
|
||||
}
|
||||
|
||||
void helper_vperm(CPUPPCState *env, ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b,
|
||||
ppc_avr_t *c)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue