mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
27 lines
1.3 KiB
Diff
27 lines
1.3 KiB
Diff
diff --git a/library/common.h b/library/common.h
|
|
index 3936ffdfe..d8c407319 100644
|
|
--- a/library/common.h
|
|
+++ b/library/common.h
|
|
@@ -192,21 +192,21 @@ static inline void mbedtls_xor(unsigned char *r,
|
|
#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
|
|
#if defined(MBEDTLS_HAVE_NEON_INTRINSICS) && \
|
|
(!(defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_GCC_VERSION < 70300))
|
|
/* Old GCC versions generate a warning here, so disable the NEON path for these compilers */
|
|
for (; (i + 16) <= n; i += 16) {
|
|
uint8x16_t v1 = vld1q_u8(a + i);
|
|
uint8x16_t v2 = vld1q_u8(b + i);
|
|
uint8x16_t x = veorq_u8(v1, v2);
|
|
vst1q_u8(r + i, x);
|
|
}
|
|
-#if defined(__IAR_SYSTEMS_ICC__)
|
|
+#if defined(__IAR_SYSTEMS_ICC__) || defined(MBEDTLS_COMPILER_IS_GCC)
|
|
/* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case
|
|
* where n is a constant multiple of 16.
|
|
* For other compilers (e.g. recent gcc and clang) it makes no difference if n is a compile-time
|
|
* constant, and is a very small perf regression if n is not a compile-time constant. */
|
|
if (n % 16 == 0) {
|
|
return;
|
|
}
|
|
#endif
|
|
#elif defined(MBEDTLS_ARCH_IS_X64) || defined(MBEDTLS_ARCH_IS_ARM64)
|
|
/* This codepath probably only makes sense on architectures with 64-bit registers */
|