S/390: Fix PR89775. Stackpointer save/restore instructions removed
authorAndreas Krebbel <krebbel@gcc.gnu.org>
Wed, 20 Mar 2019 15:28:38 +0000 (15:28 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Wed, 20 Mar 2019 15:28:38 +0000 (15:28 +0000)
commit3ad7fed1cc87d281881757477c5197d9d3a97232
treeba232f7a2cef02750efc9fe2bced2ecbf161e80e
parenta5b821e448e6debe73e1154128b4ea6f7f73fbdd
S/390: Fix PR89775. Stackpointer save/restore instructions removed

Even if a global register is being clobbered in a function we usually
do not save and restore it. However, we still have to do this if it is
a special register. Most of the places in the backend handle this
correctly but not the prologue/epilogue optimization.

gcc/ChangeLog:

2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>

PR target/89775
* config/s390/s390.c (global_not_special_regno_p): Move to make it
available to ...
(s390_optimize_register_info): Use global_not_special_regno_p to
check for global regs.

2019-03-20  Jakub Jelinek  <jakub@redhat.com>

PR target/89775
* gcc.target/s390/pr89775-1.c: New test.
* gcc.target/s390/pr89775-2.c: New test.

From-SVN: r269823
gcc/ChangeLog
gcc/config/s390/s390.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/s390/pr89775-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/s390/pr89775-2.c [new file with mode: 0644]