OSDN Git Service

* config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 May 2001 02:54:29 +0000 (02:54 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 May 2001 02:54:29 +0000 (02:54 +0000)
the link register if we're not going to use it.

* config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
(output_function_profiler): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41888 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 11c7b00..9226112 100644 (file)
@@ -1,3 +1,11 @@
+2001-05-06  Geoff Keating  <geoffk@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
+       the link register if we're not going to use it.
+
+       * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
+       (output_function_profiler): Likewise.
+
 2001-05-07  Alan Modra  <amodra@one.net.au>
 
        * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
index 4a22802..09cef29 100644 (file)
@@ -37,6 +37,7 @@ Boston, MA 02111-1307, USA.  */
 #include "except.h"
 #include "function.h"
 #include "output.h"
+#include "basic-block.h"
 #include "toplev.h"
 #include "ggc.h"
 #include "hashtab.h"
@@ -5940,8 +5941,9 @@ rs6000_emit_prologue ()
        it.  We use R11 for this purpose because emit_load_toc_table
        can use register 0.  This allows us to use a plain 'blr' to return
        from the procedure more often.  */
-    int save_LR_around_toc_setup = (TARGET_ELF && flag_pic != 0 && 
-                                   ! info->lr_save_p);
+    int save_LR_around_toc_setup = (TARGET_ELF && flag_pic != 0
+                                   && ! info->lr_save_p
+                                   && EXIT_BLOCK_PTR->pred != NULL);
     if (save_LR_around_toc_setup)
       emit_move_insn (gen_rtx_REG (Pmode, 11), 
                      gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM));
@@ -7347,7 +7349,7 @@ output_profile_hook (labelno)
     }
   else if (DEFAULT_ABI == ABI_DARWIN)
     {
-      char *mcount_name = RS6000_MCOUNT;
+      const char *mcount_name = RS6000_MCOUNT;
       int caller_addr_regno = LINK_REGISTER_REGNUM;
 
       /* Be conservative and always set this, at least for now.  */
@@ -7376,9 +7378,6 @@ output_function_profiler (file, labelno)
   FILE *file;
   int labelno;
 {
-  /* The last used parameter register.  */
-  int last_parm_reg;
-  int i, j;
   char buf[100];
 
   ASM_GENERATE_INTERNAL_LABEL (buf, "LP", labelno);