diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2016-02-05 10:10:35 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2016-02-05 10:10:35 +0000 |
commit | 15288e9a946d0123254e63af7dd5252c9b83acce (patch) | |
tree | 4b03b980c2ce16eeba255d6b81d29acd97595732 /gcc | |
parent | 82379bdf028762c0eafece56bd69a687d991765b (diff) | |
download | gcc-15288e9a946d0123254e63af7dd5252c9b83acce.zip gcc-15288e9a946d0123254e63af7dd5252c9b83acce.tar.gz gcc-15288e9a946d0123254e63af7dd5252c9b83acce.tar.bz2 |
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 <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
From-SVN: r233169
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3ce09b6b..b0c092b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> + * config/s390/s390.c (s390_emit_call): Add missing 64 bit check. + +2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> + PR target/69625 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 1667c11..bca428a 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), |