diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2012-12-11 14:17:28 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2012-12-11 14:17:28 +0000 |
commit | 9cd9d33be92d48220b75c8d49f45acffa20aa890 (patch) | |
tree | 81428c0d8671f827adc4fa4eb800f830cdb924b3 | |
parent | a8a6fd74c4ed085c47a69842e77d55aa817a919a (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/arm/thumb2.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/arm/pr55642.c | 15 |
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; +} + |