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:
parent
730d2ca3f0
commit
634c583526
@ -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) \
|
||||||
|
Loading…
Reference in New Issue
Block a user