aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@arm.com>2016-05-31 10:10:18 +0000
committerThomas Preud'homme <thopre01@gcc.gnu.org>2016-05-31 10:10:18 +0000
commit5254564176b94689e94d6d57f489f740a254f920 (patch)
treec6709e8e1eecafdc70d634e72f210097ed8c9161 /gcc
parent4efae2d63f7bd2485bb91056bfef45d8982e3633 (diff)
downloadgcc-5254564176b94689e94d6d57f489f740a254f920.zip
gcc-5254564176b94689e94d6d57f489f740a254f920.tar.gz
gcc-5254564176b94689e94d6d57f489f740a254f920.tar.bz2
arm-protos.h (arm_arch_thumb1): Declare.
2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm-protos.h (arm_arch_thumb1): Declare. * config/arm/arm.c (arm_arch_thumb1): Define. (arm_option_override): Initialize arm_arch_thumb1. * config/arm/arm.h (arm_arch_thumb1): Declare. (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target support Thumb-1 ISA. gcc/testsuite/ * gcc.target/arm/armv5_thumb_isa.c: New test. From-SVN: r236913
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/arm/arm-protos.h3
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/arm/arm.h8
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/arm/armv5_thumb_isa.c8
6 files changed, 33 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 587afe0..b4f8c56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
+ * config/arm/arm.c (arm_arch_thumb1): Define.
+ (arm_option_override): Initialize arm_arch_thumb1.
+ * config/arm/arm.h (arm_arch_thumb1): Declare.
+ (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
+ support Thumb-1 ISA.
+
2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/71346
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index d8179c4..34fd06a 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -603,6 +603,9 @@ extern int arm_tune_cortex_a9;
interworking clean. */
extern int arm_cpp_interwork;
+/* Nonzero if chip supports Thumb 1. */
+extern int arm_arch_thumb1;
+
/* Nonzero if chip supports Thumb 2. */
extern int arm_arch_thumb2;
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 4e453fd..16499ce 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -847,6 +847,9 @@ int arm_tune_cortex_a9 = 0;
interworking clean. */
int arm_cpp_interwork = 0;
+/* Nonzero if chip supports Thumb 1. */
+int arm_arch_thumb1;
+
/* Nonzero if chip supports Thumb 2. */
int arm_arch_thumb2;
@@ -3165,6 +3168,7 @@ arm_option_override (void)
arm_arch7em = ARM_FSET_HAS_CPU1 (insn_flags, FL_ARCH7EM);
arm_arch8 = ARM_FSET_HAS_CPU1 (insn_flags, FL_ARCH8);
arm_arch8_1 = ARM_FSET_HAS_CPU2 (insn_flags, FL2_ARCH8_1);
+ arm_arch_thumb1 = ARM_FSET_HAS_CPU1 (insn_flags, FL_THUMB);
arm_arch_thumb2 = ARM_FSET_HAS_CPU1 (insn_flags, FL_THUMB2);
arm_arch_xscale = ARM_FSET_HAS_CPU1 (insn_flags, FL_XSCALE);
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 1e817a8..065e7da 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -479,6 +479,9 @@ extern int arm_tune_cortex_a9;
interworking clean. */
extern int arm_cpp_interwork;
+/* Nonzero if chip supports Thumb 1. */
+extern int arm_arch_thumb1;
+
/* Nonzero if chip supports Thumb 2. */
extern int arm_arch_thumb2;
@@ -2189,9 +2192,8 @@ extern int making_const_table;
(arm_base_arch) \
/* The highest Thumb instruction set version supported by the chip. */
-#define TARGET_ARM_ARCH_ISA_THUMB \
- (arm_arch_thumb2 ? 2 \
- : ((TARGET_ARM_ARCH >= 5 || arm_arch4t) ? 1 : 0))
+#define TARGET_ARM_ARCH_ISA_THUMB \
+ (arm_arch_thumb2 ? 2 : (arm_arch_thumb1 ? 1 : 0))
/* Expands to an upper-case char of the target's architectural
profile. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 05eb1e8..563d5e5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
+
+ * gcc.target/arm/armv5_thumb_isa.c: New test.
+
2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
PR target/71346
diff --git a/gcc/testsuite/gcc.target/arm/armv5_thumb_isa.c b/gcc/testsuite/gcc.target/arm/armv5_thumb_isa.c
new file mode 100644
index 0000000..80a00ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/armv5_thumb_isa.c
@@ -0,0 +1,8 @@
+/* { dg-require-effective-target arm_arch_v5_ok } */
+/* { dg-add-options arm_arch_v5 } */
+
+#if __ARM_ARCH_ISA_THUMB
+#error "__ARM_ARCH_ISA_THUMB defined for ARMv5"
+#endif
+
+int foo;