1 #ifndef __ARM_ARCH_H__ 2 #define __ARM_ARCH_H__ 3 4 #if !defined(__ARM_ARCH__) 5 # if defined(__CC_ARM) 6 # define __ARM_ARCH__ __TARGET_ARCH_ARM 7 # if defined(__BIG_ENDIAN) 8 # define __ARMEB__ 9 # else 10 # define __ARMEL__ 11 # endif 12 # elif defined(__GNUC__) 13 /* 14 * Why doesn't gcc define __ARM_ARCH__? Instead it defines 15 * bunch of below macros. See all_architectires[] table in 16 * gcc/config/arm/arm.c. On a side note it defines 17 * __ARMEL__/__ARMEB__ for little-/big-endian. 18 */ 19 # if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ 20 defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \ 21 defined(__ARM_ARCH_7EM__) 22 # define __ARM_ARCH__ 7 23 # elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ 24 defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__) || \ 25 defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__) || \ 26 defined(__ARM_ARCH_6T2__) 27 # define __ARM_ARCH__ 6 28 # elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ 29 defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__) || \ 30 defined(__ARM_ARCH_5TEJ__) 31 # define __ARM_ARCH__ 5 32 # elif defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) 33 # define __ARM_ARCH__ 4 34 # else 35 # error "unsupported ARM architecture" 36 # endif 37 # endif 38 #endif 39 40 #ifdef OPENSSL_FIPSCANISTER 41 #include <openssl/fipssyms.h> 42 #endif 43 44 #if !__ASSEMBLER__ 45 extern unsigned int OPENSSL_armcap_P; 46 47 #define ARMV7_NEON (1<<0) 48 #define ARMV7_TICK (1<<1) 49 #endif 50 51 #endif 52