rs6000: Another PIC LRA fix
authorSegher Boessenkool <segher@gcc.gnu.org>
Sat, 31 Oct 2015 19:48:19 +0000 (20:48 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Sat, 31 Oct 2015 19:48:19 +0000 (20:48 +0100)
This one for TARGET_TOC && TARGET_MINIMAL_TOC.  Without it, r30 is not
saved in the prologue for functions that do not use r30, but the register
is set later in the prologue anyhow.  This made all java tests fail.

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

* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
live as for using it elsewhere, for TARGET_MINIMAL_TOC.

From-SVN: r229633

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 34da96050aa578482b31caf3124a80ddda4dd0c3..c4ad5e4ee8d4b5bf977280b12372568de050e996 100644 (file)
@@ -1,6 +1,12 @@
+2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
+       same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
+       live as for using it elsewhere, for TARGET_MINIMAL_TOC.
+
 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
 
-       *ggc-common.c : Restore needed header for checking=release.
+       * ggc-common.c: Restore needed header for checking=release.
 
 2015-10-31  Tom de Vries  <tom@codesourcery.com>
 
index 53b86afd83f0b8384bd90e04bf4599a36181a8c2..75ddaa2d3fc57cde020a8ad88df6d2bb043b8b5f 100644 (file)
@@ -22034,7 +22034,9 @@ rs6000_reg_live_or_pic_offset_p (int reg)
           || (reg == RS6000_PIC_OFFSET_TABLE_REGNUM
              && !TARGET_SINGLE_PIC_BASE
               && ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
-                  || (DEFAULT_ABI == ABI_DARWIN && flag_pic))));
+                  || (DEFAULT_ABI == ABI_DARWIN && flag_pic)
+                 || (TARGET_TOC && TARGET_MINIMAL_TOC
+                     && get_pool_size () != 0))));
 }
 
 /* Return the first fixed-point register that is required to be