rs6000: Save the PIC reg when needed
authorSegher Boessenkool <segher@kernel.crashing.org>
Thu, 29 Oct 2015 19:27:22 +0000 (20:27 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Thu, 29 Oct 2015 19:27:22 +0000 (20:27 +0100)
commit5a978b9f8899d6fc42364c0db8ed13b674a5ffb0
tree4509a7d217deb143bc5f01ad664e9db7f7408540
parent823bb05499a9f5bc0fc450ca21b17f16b65e6f00
rs6000: Save the PIC reg when needed

The PIC reg (r30) needs to be saved whenever the prologue sets it up,
not just if it is used elsewhere in the function.  Without this patch
the prologue for such a function will modify r30 without saving it
first, leading to disaster back in its callers.  This happened in the
testsuite for -m32 libgfortran and libstdc++, bootstrapped with -mlra,
many hundred times.

2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
function earlier in the file.
(first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
df_regs_ever_live_p.

From-SVN: r229552
gcc/ChangeLog
gcc/config/rs6000/rs6000.c