target/ppc: simplify VEXT_SIGNED macro in int_helper.c

As pointed out by Richard: it does not need the mask argument, nor does it need
the recast argument. The masking is implied by the cast argument, and the
recast is implied by the assignment.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Mark Cave-Ayland 2019-01-30 20:36:36 +00:00 committed by David Gibson
parent 730d2ca3f0
commit 634c583526

View File

@ -2024,19 +2024,19 @@ void helper_xxinsertw(CPUPPCState *env, target_ulong xtn,
putVSR(xtn, &xt, env); putVSR(xtn, &xt, env);
} }
#define VEXT_SIGNED(name, element, mask, cast, recast) \ #define VEXT_SIGNED(name, element, cast) \
void helper_##name(ppc_avr_t *r, ppc_avr_t *b) \ void helper_##name(ppc_avr_t *r, ppc_avr_t *b) \
{ \ { \
int i; \ int i; \
VECTOR_FOR_INORDER_I(i, element) { \ VECTOR_FOR_INORDER_I(i, element) { \
r->element[i] = (recast)((cast)(b->element[i] & mask)); \ r->element[i] = (cast)b->element[i]; \
} \ } \
} }
VEXT_SIGNED(vextsb2w, s32, UINT8_MAX, int8_t, int32_t) VEXT_SIGNED(vextsb2w, s32, int8_t)
VEXT_SIGNED(vextsb2d, s64, UINT8_MAX, int8_t, int64_t) VEXT_SIGNED(vextsb2d, s64, int8_t)
VEXT_SIGNED(vextsh2w, s32, UINT16_MAX, int16_t, int32_t) VEXT_SIGNED(vextsh2w, s32, int16_t)
VEXT_SIGNED(vextsh2d, s64, UINT16_MAX, int16_t, int64_t) VEXT_SIGNED(vextsh2d, s64, int16_t)
VEXT_SIGNED(vextsw2d, s64, UINT32_MAX, int32_t, int64_t) VEXT_SIGNED(vextsw2d, s64, int32_t)
#undef VEXT_SIGNED #undef VEXT_SIGNED
#define VNEG(name, element) \ #define VNEG(name, element) \