Use a single fast-path in mbedtls_xor, gains around 1% in benchmarks

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
Dave Rodgman 2023-06-09 20:10:36 +01:00
parent 159dc099fd
commit 5c394ff203

View file

@ -142,11 +142,12 @@ inline void mbedtls_xor(unsigned char *r, const unsigned char *a, const unsigned
uint64_t x = mbedtls_get_unaligned_uint64(a + i) ^ mbedtls_get_unaligned_uint64(b + i); uint64_t x = mbedtls_get_unaligned_uint64(a + i) ^ mbedtls_get_unaligned_uint64(b + i);
mbedtls_put_unaligned_uint64(r + i, x); mbedtls_put_unaligned_uint64(r + i, x);
} }
#endif #else
for (; (i + 4) <= n; i += 4) { for (; (i + 4) <= n; i += 4) {
uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i); uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i);
mbedtls_put_unaligned_uint32(r + i, x); mbedtls_put_unaligned_uint32(r + i, x);
} }
#endif
#endif #endif
for (; i < n; i++) { for (; i < n; i++) {
r[i] = a[i] ^ b[i]; r[i] = a[i] ^ b[i];