From 15288e9a946d0123254e63af7dd5252c9b83acce Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Fri, 5 Feb 2016 10:10:35 +0000 Subject: [PATCH] S/390: Fix 64 bit sibcall This fixes a problem revealed during the split-stack work: https://gcc.gnu.org/ml/gcc-patches/2016-02/msg00322.html gcc/ChangeLog: 2016-02-05 Andreas Krebbel * config/s390/s390.c (s390_emit_call): Add missing 64 bit check. From-SVN: r233169 --- gcc/ChangeLog | 4 ++++ gcc/config/s390/s390.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ce09b6b8bf6..b0c092b83f17 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-02-05 Andreas Krebbel + + * config/s390/s390.c (s390_emit_call): Add missing 64 bit check. + 2016-02-05 Andreas Krebbel PR target/69625 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 1667c115f41e..bca428ab303b 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -12507,7 +12507,7 @@ s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, replace the symbol itself with the PLT stub. */ if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location)) { - if (retaddr_reg != NULL_RTX) + if (TARGET_64BIT || retaddr_reg != NULL_RTX) { addr_location = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr_location), -- 2.47.2