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