From bad4d0ccdcf812e91a5988d53e032239a0c4d0f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Tue, 11 Aug 2009 03:02:44 +0000 Subject: [PATCH] [ARM] Add an __ARM_ARCH__ macro defined to the arch version to simplify checks for >= some version. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32238 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../system/arch/arm/arch_arm_version.h | 46 +++++++++++++++++++ headers/private/system/arch/arm/asm_defs.h | 4 +- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 headers/private/system/arch/arm/arch_arm_version.h diff --git a/headers/private/system/arch/arm/arch_arm_version.h b/headers/private/system/arch/arm/arch_arm_version.h new file mode 100644 index 0000000000..4fcd3f48b6 --- /dev/null +++ b/headers/private/system/arch/arm/arch_arm_version.h @@ -0,0 +1,46 @@ +/* + * Copyright 2008, François Revol, revol@free.fr. + * Distributed under the terms of the MIT License. + */ +#ifndef SYSTEM_ARCH_ARM_ARCH_ARM_VERSION_H +#define SYSTEM_ARCH_ARM_ARCH_ARM_VERSION_H + +/* map all the various ARM defines to arch version to allow checking for minimal arch */ + +#if defined(__ARM_ARCH_2__) || defined(__ARM_ARCH_3__) +#error we do not support this +#endif + +#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) +#define __ARM_ARCH__ 4 +#endif + +#if defined(__ARM_ARCH_5__) \ + || defined(__ARM_ARCH_5E__) \ + || defined(__ARM_ARCH_5T__) \ + || defined(__ARM_ARCH_5TE__) \ + || defined(__ARM_ARCH_5TEJ__) +#define __ARM_ARCH__ 5 +#endif + +#if defined(__ARM_ARCH_6__) \ + || defined(__ARM_ARCH_6J__) \ + || defined(__ARM_ARCH_6K__) \ + || defined(__ARM_ARCH_6ZK__) \ + || defined(__ARM_ARCH_6T2__) +#define __ARM_ARCH__ 6 +#endif + +#if defined(__ARM_ARCH_7__) \ + || defined(__ARM_ARCH_7A__) \ + || defined(__ARM_ARCH_7R__) \ + || defined(__ARM_ARCH_7M__) +#define __ARM_ARCH__ 7 +#endif + +#ifndef __ARM_ARCH__ +#error cannot determine arm arch version +#endif + +#endif /* SYSTEM_ARCH_ARM_ARCH_ARM_VERSION_H */ + diff --git a/headers/private/system/arch/arm/asm_defs.h b/headers/private/system/arch/arm/asm_defs.h index f7a5e477d3..3a01b334b8 100644 --- a/headers/private/system/arch/arm/asm_defs.h +++ b/headers/private/system/arch/arm/asm_defs.h @@ -6,12 +6,14 @@ #define SYSTEM_ARCH_ARM_ASM_DEFS_H +/* include arch version helpers */ +#include + #define SYMBOL(name) .global name; name #define SYMBOL_END(name) 1: .size name, 1b - name #define STATIC_FUNCTION(name) .type name, %function; name #define FUNCTION(name) .global name; .type name, %function; name #define FUNCTION_END(name) 1: .size name, 1b - name - #endif /* SYSTEM_ARCH_ARM_ASM_DEFS_H */