gf_multby_one now checks runtime SIMD support

master
Bassam Tabbara 2016-09-13 10:19:24 -07:00
parent ad11042132
commit 0e5c920fb6
1 changed files with 64 additions and 62 deletions

View File

@ -912,9 +912,6 @@ static void gf_unaligned_xor(void *src, void *dest, int bytes);
void gf_multby_one(void *src, void *dest, int bytes, int xor)
{
#ifdef INTEL_SSE2
__m128i ms, md;
#endif
unsigned long uls, uld;
uint8_t *s8, *d8;
uint64_t *s64, *d64, *dtop64;
@ -929,6 +926,8 @@ void gf_multby_one(void *src, void *dest, int bytes, int xor)
uld = (unsigned long) dest;
#ifdef INTEL_SSE2
if (gf_cpu_supports_intel_sse2) {
__m128i ms, md;
int abytes;
s8 = (uint8_t *) src;
d8 = (uint8_t *) dest;
@ -971,8 +970,10 @@ void gf_multby_one(void *src, void *dest, int bytes, int xor)
s8++;
}
return;
}
#endif
#if defined(ARM_NEON)
if (gf_cpu_supports_arm_neon) {
s8 = (uint8_t *) src;
d8 = (uint8_t *) dest;
@ -1007,6 +1008,7 @@ void gf_multby_one(void *src, void *dest, int bytes, int xor)
d8++;
}
return;
}
#endif
if (uls % 8 != uld % 8) {
gf_unaligned_xor(src, dest, bytes);