target/ppc: Use clmul_16* routines
Use generic routines for 16-bit carry-less multiply. Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
25c304e936
commit
a2c67342ee
@ -1437,6 +1437,14 @@ void helper_vpmsumb(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
}
|
||||
}
|
||||
|
||||
void helper_vpmsumh(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
{
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
uint64_t aa = a->u64[i], bb = b->u64[i];
|
||||
r->u64[i] = clmul_16x2_even(aa, bb) ^ clmul_16x2_odd(aa, bb);
|
||||
}
|
||||
}
|
||||
|
||||
#define PMSUM(name, srcfld, trgfld, trgtyp) \
|
||||
void helper_##name(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
|
||||
{ \
|
||||
@ -1457,7 +1465,6 @@ void helper_##name(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
|
||||
} \
|
||||
}
|
||||
|
||||
PMSUM(vpmsumh, u16, u32, uint32_t)
|
||||
PMSUM(vpmsumw, u32, u64, uint64_t)
|
||||
|
||||
void helper_VPMSUMD(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
|
||||
|
Loading…
Reference in New Issue
Block a user