1 /* $NetBSD: cdefs.h,v 1.17 2020/10/11 16:22:02 skrll 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 13 #if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A) 14 /* __ARM_ARCH_8A__ is a typo */ 15 #define _ARM_ARCH_8 16 #endif 17 18 #if defined (_ARM_ARCH_8) || defined (__ARM_ARCH_7__) || \ 19 defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \ 20 defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) 21 /* 7R, 7M, 7EM are for non MMU arms */ 22 #define _ARM_ARCH_7 23 #endif 24 25 #if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6T2__) 26 #define _ARM_ARCH_T2 /* Thumb2 */ 27 #endif 28 29 #if defined (_ARM_ARCH_T2) || defined (__ARM_ARCH_6__) || \ 30 defined (__ARM_ARCH_6J__) || \ 31 defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6KZ__) || \ 32 defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) || \ 33 defined (__ARM_ARCH_6ZM__) 34 #define _ARM_ARCH_6 35 #endif 36 37 #if defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5T__) || \ 38 defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__) 39 #define _ARM_ARCH_5T 40 #endif 41 42 #if defined (_ARM_ARCH_6) || defined (_ARM_ARCH_5T) || defined (__ARM_ARCH_5__) 43 #define _ARM_ARCH_5 44 #endif 45 46 #if defined (_ARM_ARCH_5) || defined (__ARM_ARCH_4T__) 47 #define _ARM_ARCH_4T 48 #endif 49 50 #if defined (_ARM_ARCH_T2) || \ 51 (!defined (__thumb__) && \ 52 (defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5TE__) || \ 53 defined (__ARM_ARCH_5TEJ__))) 54 #define _ARM_ARCH_DWORD_OK 55 #endif 56 57 #if defined(__ARM_PCS_AAPCS64) 58 #define __ALIGNBYTES (sizeof(__int128_t) - 1) 59 #elif defined(__ARM_EABI__) 60 #define __ALIGNBYTES (sizeof(long long) - 1) 61 #else 62 #define __ALIGNBYTES (sizeof(int) - 1) 63 #endif 64 65 #endif /* !_ARM_CDEFS_H_ */ 66