From: NiLuJe Date: Sun, 2 Aug 2020 18:18:57 +0000 (+0200) Subject: Don't let the compiler switch to 64bit vectors behind our back. X-Git-Tag: 1.9.9-b1~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dac5ec72a22f77dea6594f1da52fbe805462599b;p=thirdparty%2Fzlib-ng.git Don't let the compiler switch to 64bit vectors behind our back. On ARMv7, they have more stringent alignment requirements, which aren't accounted for. --- diff --git a/arch/arm/chunkset_neon.c b/arch/arm/chunkset_neon.c index 2721596c..f2da73af 100644 --- a/arch/arm/chunkset_neon.c +++ b/arch/arm/chunkset_neon.c @@ -114,12 +114,11 @@ static inline uint8_t *chunkmemset_6(uint8_t *out, uint8_t *from, unsigned dist, #endif static inline void loadchunk(uint8_t const *s, chunk_t *chunk) { - *chunk = *(chunk_t *)s; + *chunk = vld1q_u8(s); } static inline void storechunk(uint8_t *out, chunk_t *chunk) { - /* Cast to chunk_t pointer to avoid compiler error on MSVC ARM */ - memcpy((chunk_t *)out, chunk, sizeof(chunk_t)); + vst1q_u8(out, *chunk); } #include "chunkset_tpl.h"