cdefs.h revision 1.16
1/*	$NetBSD: cdefs.h,v 1.16 2019/08/02 12:07:25 joerg 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__) || \
29    defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6KZ__) || \
30    defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) || \
31    defined (__ARM_ARCH_6ZM__)
32#define _ARM_ARCH_6
33#endif
34
35#if defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5T__) || \
36    defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__)
37#define _ARM_ARCH_5T
38#endif
39
40#if defined (_ARM_ARCH_6) || defined (_ARM_ARCH_5T) || defined (__ARM_ARCH_5__)
41#define _ARM_ARCH_5
42#endif
43
44#if defined (_ARM_ARCH_5) || defined (__ARM_ARCH_4T__)
45#define _ARM_ARCH_4T
46#endif
47
48#if defined (_ARM_ARCH_T2) || \
49    (!defined (__thumb__) && \
50     (defined (_ARM_ARCH_6) || defined (__ARM_ARCH_5TE__) || \
51      defined (__ARM_ARCH_5TEJ__)))
52#define	_ARM_ARCH_DWORD_OK
53#endif
54
55#if defined(__ARM_PCS_AAPCS64)
56#define __ALIGNBYTES		(sizeof(__int128_t) - 1)
57#elif defined(__ARM_EABI__)
58#define __ALIGNBYTES		(sizeof(long long) - 1)
59#else
60#define __ALIGNBYTES		(sizeof(int) - 1)
61#endif
62
63#endif /* !_ARM_CDEFS_H_ */
64