aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2016-04-08 11:18:59 +0200
committerLinaro Code Review <review@review.linaro.org>2016-04-11 09:00:33 +0000
commit25eab5a975094e334c29cc6fb9632e72cf3652df (patch)
tree5c5e36c04bd9aa039305cd8f320bd0976b763be2
parent635bde251e0fa272b714c56ed6d662126540a9c0 (diff)
gcc/
Backport from trunk r234675. 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/70496 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB. gcc/testsuite/ Backport from trunk r234675. 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/70496 * gcc.target/arm/pr70496.c: New test. gcc/testsuite/ Backport from trunk r234811. 2016-04-07 Thomas Preud'homme <thomas.preudhomme@arm.com> PR testsuite/70553 * gcc.target/arm/pr70496.c: Also require arm_arm_ok effective target. Change-Id: Ia286b03a46e072ad57f0e353f2bb0a37f46f5519
-rw-r--r--gcc/config/arm/arm.h3
-rw-r--r--gcc/testsuite/gcc.target/arm/pr70496.c13
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 8da0ba2e266..a301d5b0210 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2025,7 +2025,8 @@ extern int making_const_table;
"\t.syntax divided\n")
#undef ASM_APP_OFF
-#define ASM_APP_OFF "\t.syntax unified\n"
+#define ASM_APP_OFF (TARGET_ARM ? "\t.arm\n\t.syntax unified\n" : \
+ "\t.thumb\n\t.syntax unified\n")
/* Output a push or a pop instruction (only used when profiling).
We can't push STATIC_CHAIN_REGNUM (r12) directly with Thumb-1. We know
diff --git a/gcc/testsuite/gcc.target/arm/pr70496.c b/gcc/testsuite/gcc.target/arm/pr70496.c
new file mode 100644
index 00000000000..d3ee0b505a8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr70496.c
@@ -0,0 +1,13 @@
+/* { dg-do assemble } */
+/* { dg-options "-mthumb -O2" } */
+/* { dg-require-effective-target arm_arm_ok } */
+/* { dg-require-effective-target arm_thumb2_ok } */
+
+int i;
+void
+main (void)
+{
+ __asm__ volatile (".arm");
+ i = 0;
+ __asm__ volatile ("\n cbz r0, 2f\n2:");
+}