Implement __ARM_ARCH if the compiler lacks it. Add feature tests for bx and clz.

llvm-svn: 199998
This commit is contained in:
Joerg Sonnenberger 2014-01-24 13:39:51 +00:00
parent df1a280526
commit 1f8cb3ee67
1 changed files with 38 additions and 0 deletions

View File

@ -38,6 +38,44 @@
# endif
#endif
#if defined(__arm__)
# ifndef __ARM_ARCH
# if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) || \
defined (__ARM_ARCH_7R__) || defined (__ARM_ARCH_7M__) || \
defined (__ARM_ARCH_7EM__)
# define __ARM_ARCH 7
# endif
# endif
# ifndef __ARM_ARCH
# if defined (__ARM_ARCH_6__) || \
defined (__ARM_ARCH_6J__) || defined (__ARM_ARCH_6K__) || \
defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) || \
defined (__ARM_ARCH_6ZM__)
# define __ARM_ARCH 6
# endif
# endif
# ifndef __ARM_ARCH
# if defined (__ARM_ARCH_5__) || defined (__ARM_ARCH_5T__) || \
defined (__ARM_ARCH_5TE__) || defined (__ARM_ARCH_5TEJ__)
# define __ARM_ARCH 5
# endif
# endif
# ifndef __ARM_ARCH
# define __ARM_ARCH 4
# endif
# if defined(__ARM_ARCH_4T__) || __ARM_ARCH >= 5
# define ARM_HAS_BX
# endif
# if !defined(__ARM_FEATURE_CLZ) && \
(__ARM_ARCH >= 6 || (__ARM_ARCH == 5 && !defined(__ARM_ARCH_5__)))
# define __ARM_FEATURE_CLZ
# endif
#endif
#define GLUE2(a, b) a ## b
#define GLUE(a, b) GLUE2(a, b)
#define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)