| #ifndef __ARM_ARCH_H__ |
| #define __ARM_ARCH_H__ |
| |
| #if !defined(__ARM_ARCH__) |
| # if defined(__CC_ARM) |
| # define __ARM_ARCH__ __TARGET_ARCH_ARM |
| # if defined(__BIG_ENDIAN) |
| # define __ARMEB__ |
| # else |
| # define __ARMEL__ |
| # endif |
| # elif defined(__GNUC__) |
| /* |
| * Why doesn't gcc define __ARM_ARCH__? Instead it defines |
| * bunch of below macros. See all_architectires[] table in |
| * gcc/config/arm/arm.c. On a side note it defines |
| * __ARMEL__/__ARMEB__ for little-/big-endian. |
| */ |
| # if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ |
| defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \ |
| defined(__ARM_ARCH_7EM__) |
| # define __ARM_ARCH__ 7 |
| # elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ |
| defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__) || \ |
| defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__) || \ |
| defined(__ARM_ARCH_6T2__) |
| # define __ARM_ARCH__ 6 |
| # elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ |
| defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__) || \ |
| defined(__ARM_ARCH_5TEJ__) |
| # define __ARM_ARCH__ 5 |
| # elif defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) |
| # define __ARM_ARCH__ 4 |
| # else |
| # error "unsupported ARM architecture" |
| # endif |
| # endif |
| #endif |
| |
| #ifdef OPENSSL_FIPSCANISTER |
| #include <openssl/fipssyms.h> |
| #endif |
| |
| #if !__ASSEMBLER__ |
| extern unsigned int OPENSSL_armcap_P; |
| |
| #define ARMV7_NEON (1<<0) |
| #define ARMV7_TICK (1<<1) |
| #endif |
| |
| #endif |