On 6/12/20 9:20 PM, Lijun Pan wrote:
> +#define VMULH_DO(name, op, element, cast_orig, cast_temp) \
> + void helper_vmulh##name(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
> \
> + {
> \
> + int i; \
> + \
> + for (i = 0; i < ARRAY_SIZE(r->element); i++) { \
> + r->element[i] = (cast_orig)(((cast_temp)a->element[i] op \
> + (cast_temp)b->element[i]) >> 32); \
> + } \
> + }
> +VMULH_DO(sw, *, s32, int32_t, int64_t)
> +VMULH_DO(uw, *, u32, uint32_t, uint64_t)
> +#undef VMULH_DO
There's no point in calling the macro "VMUL" and then passing in "op" as a
parameter. Just inline the multiply directly.
Also, fix your indentation.
r~