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
This commit is contained in:
Peter Bergner 2015-08-03 16:11:20 -05:00 committed by Peter Bergner
parent afed345982
commit ab977fd881
4 changed files with 22 additions and 1 deletions

View File

@ -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.

View File

@ -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"

View File

@ -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

View File

@ -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);
}