summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Moinvaziri <nathan@nathanm.com>2026-03-11 20:03:11 -0700
committerHans Kristian Rosbach <hk-github@circlestorm.org>2026-03-14 02:14:34 +0100
commit98712c1eee5ca6416a00c39f34279d5c49b92f13 (patch)
tree59002760e46eb7e08093d7db1865b1c906840a0a
parent352c1a00c7786a0a169ce557d11c3804e88761fa (diff)
downloadProject-Tick-98712c1eee5ca6416a00c39f34279d5c49b92f13.tar.gz
Project-Tick-98712c1eee5ca6416a00c39f34279d5c49b92f13.zip
Add copy fallback for Adler32 ARM when building with no-unaligned-access
-rw-r--r--arch/arm/adler32_neon.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/adler32_neon.c b/arch/arm/adler32_neon.c
index 44d274dd9f..48532e6cd1 100644
--- a/arch/arm/adler32_neon.c
+++ b/arch/arm/adler32_neon.c
@@ -333,7 +333,14 @@ Z_INTERNAL uint32_t adler32_neon(uint32_t adler, const uint8_t *src, size_t len)
}
Z_INTERNAL uint32_t adler32_copy_neon(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len) {
+#if OPTIMAL_CMP >= 32
return adler32_copy_impl(adler, dst, src, len, 1);
+#else
+ /* Without unaligned access, interleaved stores get decomposed into byte ops */
+ adler = adler32_neon(adler, src, len);
+ memcpy(dst, src, len);
+ return adler;
+#endif
}
#endif