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
+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.
(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"
+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
--- /dev/null
+/* { 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);
+}