aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/s390.c
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>2015-08-06 10:21:41 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2015-08-06 10:21:41 +0000
commitc914ac45c7670c710f3ec17dbd5341e55ae2380f (patch)
tree5e8d1a9d8c249a6b65d1057994534a922a773a6f /gcc/config/s390/s390.c
parent17f262c539a04ae4e3d6c3ea673ca0b46201d237 (diff)
downloadgcc-c914ac45c7670c710f3ec17dbd5341e55ae2380f.zip
gcc-c914ac45c7670c710f3ec17dbd5341e55ae2380f.tar.gz
gcc-c914ac45c7670c710f3ec17dbd5341e55ae2380f.tar.bz2
S/390: Clobber VRs in __builtin_tbegin.
gcc/ChangeLog: * config/s390/s390.c (s390_expand_tbegin): Expand either tbegin_1_z13 or tbegin_1 depending on VX flag. * config/s390/s390.md ("tbegin_1_z13"): New expander. gcc/testsuite/ChangeLog: * gcc.target/s390/htm-builtins-z13-1.c: New test. From-SVN: r226672
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r--gcc/config/s390/s390.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 7f609ba..24a9290 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -11623,7 +11623,14 @@ s390_expand_tbegin (rtx dest, rtx tdb, rtx retry, bool clobber_fprs_p)
}
if (clobber_fprs_p)
- emit_insn (gen_tbegin_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK), tdb));
+ {
+ if (TARGET_VX)
+ emit_insn (gen_tbegin_1_z13 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
+ tdb));
+ else
+ emit_insn (gen_tbegin_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
+ tdb));
+ }
else
emit_insn (gen_tbegin_nofloat_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
tdb));