aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2012-12-11 14:17:28 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2012-12-11 14:17:28 +0000
commit9cd9d33be92d48220b75c8d49f45acffa20aa890 (patch)
tree81428c0d8671f827adc4fa4eb800f830cdb924b3
parenta8a6fd74c4ed085c47a69842e77d55aa817a919a (diff)
downloadgcc-9cd9d33be92d48220b75c8d49f45acffa20aa890.zip
gcc-9cd9d33be92d48220b75c8d49f45acffa20aa890.tar.gz
gcc-9cd9d33be92d48220b75c8d49f45acffa20aa890.tar.bz2
re PR target/55642 (Invalid thumb code generated ("thumb conditional instruction should be in IT block"))
gcc/ChangeLog 2012-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR target/55642 * config/arm/thumb2.md (*thumb2_abssi2): Set ce_count attribute to 2. (*thumb2_neg_abssi2): Likewise. gcc/testsuite/ChangeLog 2012-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR target/55642 * gcc.target/arm/pr55642.c: New testcase. From-SVN: r194398
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/arm/thumb2.md2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/arm/pr55642.c15
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4766eb2..c815e9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2012-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/55642
+ * config/arm/thumb2.md (*thumb2_abssi2):
+ Set ce_count attribute to 2.
+ (*thumb2_neg_abssi2): Likewise.
+
2012-12-11 Jakub Jelinek <jakub@redhat.com>
* varasm.c (get_variable_section): Don't return lcomm_section
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index de573ca0..f22666c 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -142,6 +142,7 @@
[(set_attr "conds" "clob,*")
(set_attr "shift" "1")
(set_attr "predicable" "no, yes")
+ (set_attr "ce_count" "2")
(set_attr "length" "10,8")]
)
@@ -156,6 +157,7 @@
[(set_attr "conds" "clob,*")
(set_attr "shift" "1")
(set_attr "predicable" "no, yes")
+ (set_attr "ce_count" "2")
(set_attr "length" "10,8")]
)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fff359b..c4aace4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2012-12-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ PR target/55642
+ * gcc.target/arm/pr55642.c: New testcase.
+
2012-12-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/43631
diff --git a/gcc/testsuite/gcc.target/arm/pr55642.c b/gcc/testsuite/gcc.target/arm/pr55642.c
new file mode 100644
index 0000000..10f2daa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr55642.c
@@ -0,0 +1,15 @@
+/* { dg-options "-mthumb -O2" } */
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_thumb2_ok } */
+
+int
+foo (int v)
+{
+ register int i asm ("r0");
+ register int j asm ("r1");
+ if (v > 1)
+ i = abs (j);
+
+ return i;
+}
+