1*e092cf89Srin /* $NetBSD: cdefs.h,v 1.19 2020/12/01 02:43:14 rin Exp $ */ 229de7da7Sbjh21 306340da9Smatt #ifndef _ARM_CDEFS_H_ 406340da9Smatt #define _ARM_CDEFS_H_ 529de7da7Sbjh21 6a7a76504Schristos #ifndef __lint__ 708e0bc25Smatt #if (__GNUC__ == 4 && __GNUC_MINOR__ < 1) || __GNUC__ < 4 8578ed603Smatt #error GCC 4.1 or compatible required. 9578ed603Smatt #endif 10a7a76504Schristos #endif 11578ed603Smatt 12058bd287Sskrll 1322966387Sskrll #if defined (__ARM_ARCH_8A__) || defined (__ARM_ARCH_8A) || \ 1422966387Sskrll __ARM_ARCH == 8 15058bd287Sskrll /* __ARM_ARCH_8A__ is a typo */ 16058bd287Sskrll #define _ARM_ARCH_8 17a3ca4f6fSmatt #endif 18a3ca4f6fSmatt 19a3ca4f6fSmatt #if defined (_ARM_ARCH_8) || defined (__ARM_ARCH_7__) || \ 20a3ca4f6fSmatt defined (__ARM_ARCH_7A__) || defined (__ARM_ARCH_7R__) || \ 21a3ca4f6fSmatt defined (__ARM_ARCH_7M__) || defined (__ARM_ARCH_7EM__) 22a3ca4f6fSmatt /* 7R, 7M, 7EM are for non MMU arms */ 23d641e763Smatt #define _ARM_ARCH_7 24d641e763Smatt #endif 25d641e763Smatt 2606340da9Smatt #if defined (_ARM_ARCH_7) || defined (__ARM_ARCH_6T2__) 2706340da9Smatt #define _ARM_ARCH_T2 /* Thumb2 */ 2806340da9Smatt #endif 2906340da9Smatt 3006340da9Smatt #if defined (_ARM_ARCH_T2) || defined (__ARM_ARCH_6__) || \ 313dbc6e4cSjoerg defined (__ARM_ARCH_6J__) || \ 323dbc6e4cSjoerg defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6KZ__) || \ 33d641e763Smatt defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) || \ 3406340da9Smatt defined (__ARM_ARCH_6ZM__) 35cf57b757Smatt #define _ARM_ARCH_6 36cf57b757Smatt #endif 37cf57b757Smatt 38954df097Smatt #if defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5T__) || \ 39954df097Smatt defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__) 40954df097Smatt #define _ARM_ARCH_5T 41954df097Smatt #endif 42954df097Smatt 43954df097Smatt #if defined (_ARM_ARCH_6) || defined (_ARM_ARCH_5T) || defined (__ARM_ARCH_5__) 44cf57b757Smatt #define _ARM_ARCH_5 45cf57b757Smatt #endif 46cf57b757Smatt 47cf57b757Smatt #if defined (_ARM_ARCH_5) || defined (__ARM_ARCH_4T__) 48cf57b757Smatt #define _ARM_ARCH_4T 49cf57b757Smatt #endif 5029de7da7Sbjh21 5106340da9Smatt #if defined (_ARM_ARCH_T2) || \ 5206340da9Smatt (!defined (__thumb__) && \ 5306340da9Smatt (defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5TE__) || \ 5406340da9Smatt defined (__ARM_ARCH_5TEJ__))) 5572be8acdSmatt #define _ARM_ARCH_DWORD_OK 5672be8acdSmatt #endif 5772be8acdSmatt 58*e092cf89Srin #if defined (__ARMEB__) && defined (_ARM_ARCH_6) 59*e092cf89Srin #define _ARM_ARCH_BE8 60*e092cf89Srin #endif 61*e092cf89Srin 62eec17c6eSmatt #if defined(__ARM_PCS_AAPCS64) 63eec17c6eSmatt #define __ALIGNBYTES (sizeof(__int128_t) - 1) 64eec17c6eSmatt #elif defined(__ARM_EABI__) 65eec17c6eSmatt #define __ALIGNBYTES (sizeof(long long) - 1) 6624fbba2dSmatt #else 67e8bec33bSjoerg #define __ALIGNBYTES (sizeof(int) - 1) 6824fbba2dSmatt #endif 69e8bec33bSjoerg 7006340da9Smatt #endif /* !_ARM_CDEFS_H_ */ 71