From 274f59919db06b63c021a3a949076c59643ad355 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Thu, 30 Mar 2017 12:52:14 -0700 Subject: [PATCH] Changed memory strategy to __packed for gcc Method 1 __packed is always as good or better than memcpy(). But it's not portable, as it depends on compiler extension. For gcc, __pakced directive works fine. Furthermore, gcc has serious performance issues with memcpy() on ARM 32 bits. See #620 --- lib/common/mem.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/common/mem.h b/lib/common/mem.h index f049d181..4773a8b9 100644 --- a/lib/common/mem.h +++ b/lib/common/mem.h @@ -89,8 +89,7 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ # if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) # define MEM_FORCE_MEMORY_ACCESS 2 -# elif defined(__INTEL_COMPILER) /*|| defined(_MSC_VER)*/ || \ - (defined(__GNUC__) && ( defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) )) +# elif defined(__INTEL_COMPILER) || defined(__GNUC__) # define MEM_FORCE_MEMORY_ACCESS 1 # endif #endif