1 /* $NetBSD: cdefs.h,v 1.15 2014/06/23 03:40:57 christos Exp $ */ 2 3 #ifndef _ARM_CDEFS_H_ 4 #define _ARM_CDEFS_H_ 5 6 #ifndef __lint__ 7 #if (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || __GNUC__ < 4 8 #error GCC 4.1 or compatible required. 9 #endif 10 #endif 11 12 #if defined (__ARM_ARCH_8A__) 13 #define _ARM_ARCH_8 /* ARMv8 64-bit in AARCH32 */ 14 #endif 15 16 #if defined (_ARM_ARCH_8) || defined (__ARM_ARCH_7__) || \ 17 defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \ 18 defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) 19 /* 7R, 7M, 7EM are for non MMU arms */ 20 #define _ARM_ARCH_7 21 #endif 22 23 #if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6T2__) 24 #define _ARM_ARCH_T2 /* Thumb2 */ 25 #endif 26 27 #if defined (_ARM_ARCH_T2) || defined (__ARM_ARCH_6__) || \ 28 defined (__ARM_ARCH_6J__) || defined (__ARM_ARCH_6K__) || \ 29 defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) || \ 30 defined (__ARM_ARCH_6ZM__) 31 #define _ARM_ARCH_6 32 #endif 33 34 #if defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5T__) || \ 35 defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__) 36 #define _ARM_ARCH_5T 37 #endif 38 39 #if defined (_ARM_ARCH_6) || defined (_ARM_ARCH_5T) || defined (__ARM_ARCH_5__) 40 #define _ARM_ARCH_5 41 #endif 42 43 #if defined (_ARM_ARCH_5) || defined (__ARM_ARCH_4T__) 44 #define _ARM_ARCH_4T 45 #endif 46 47 #if defined (_ARM_ARCH_T2) || \ 48 (!defined (__thumb__) && \ 49 (defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5TE__) || \ 50 defined (__ARM_ARCH_5TEJ__))) 51 #define _ARM_ARCH_DWORD_OK 52 #endif 53 54 #if defined(__ARM_PCS_AAPCS64) 55 #define __ALIGNBYTES (sizeof(__int128_t) - 1) 56 #elif defined(__ARM_EABI__) 57 #define __ALIGNBYTES (sizeof(long long) - 1) 58 #else 59 #define __ALIGNBYTES (sizeof(int) - 1) 60 #endif 61 62 #endif /* !_ARM_CDEFS_H_ */ 63