cdefs.h revision 1.17
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