diff options
author | Peter Bergner <bergner@vnet.ibm.com> | 2015-08-03 16:11:20 -0500 |
---|---|---|
committer | Peter Bergner <bergner@gcc.gnu.org> | 2015-08-03 16:11:20 -0500 |
commit | ab977fd881b81c9a03ea709fee8b02fb34cd3897 (patch) | |
tree | 7b8244f2d74ee8e07f88bbb3416cf8e7786bbdcd | |
parent | afed345982d5923b04d41885e868c9ca345ff3f9 (diff) | |
download | gcc-ab977fd881b81c9a03ea709fee8b02fb34cd3897.zip gcc-ab977fd881b81c9a03ea709fee8b02fb34cd3897.tar.gz gcc-ab977fd881b81c9a03ea709fee8b02fb34cd3897.tar.bz2 |
htm.md (tabort.): Restrict the source operand to using a base register.
gcc/
* config/rs6000/htm.md (tabort.): Restrict the source operand to
using a base register.
gcc/testsuite/
* gcc.target/powerpc/htm-tabort-no-r0.c: New test.
From-SVN: r226532
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/htm.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c | 12 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e1df72..eb4a604 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-08-03 Peter Bergner <bergner@vnet.ibm.com> + + * config/rs6000/htm.md (tabort.): Restrict the source operand to + using a base register. + 2015-08-03 David Malcolm <dmalcolm@redhat.com> * main.c (main): Pass in NULL for toplev's external_timer. diff --git a/gcc/config/rs6000/htm.md b/gcc/config/rs6000/htm.md index dbfd0db..cec2538 100644 --- a/gcc/config/rs6000/htm.md +++ b/gcc/config/rs6000/htm.md @@ -48,7 +48,7 @@ (define_insn "tabort" [(set (match_operand:CC 1 "cc_reg_operand" "=x") - (unspec_volatile:CC [(match_operand:SI 0 "gpc_reg_operand" "r")] + (unspec_volatile:CC [(match_operand:SI 0 "base_reg_operand" "b")] UNSPECV_HTM_TABORT))] "TARGET_HTM" "tabort. %0" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 058c4ec..f34d9fd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-08-03 Peter Bergner <bergner@vnet.ibm.com> + + * gcc.target/powerpc/htm-tabort-no-r0.c: New test. + 2015-08-03 David Malcolm <dmalcolm@redhat.com> * jit.dg/test-benchmark.c (test_jit): Add param "timer" and use diff --git a/gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c b/gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c new file mode 100644 index 0000000..691e517 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/htm-tabort-no-r0.c @@ -0,0 +1,12 @@ +/* { dg-do compile { target { powerpc*-*-* } } } */ +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ +/* { dg-require-effective-target powerpc_htm_ok } */ +/* { dg-options "-O2 -mhtm -ffixed-r3 -ffixed-r4 -ffixed-r5 -ffixed-r6 -ffixed-r7 -ffixed-r8 -ffixed-r9 -ffixed-r10 -ffixed-r11 -ffixed-r12" } */ + +/* { dg-final { scan-assembler-not "tabort\\.\[ \t\]0" } } */ + +int +foo (void) +{ + return __builtin_tabort (10); +} |