aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/m68k/m68k.c6
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3233125..61efaa5c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
+
+ * config/m68k/m68k.c (output_function_prologue,
+ output_function_epilogue): Use
+ current_function_uses_pic_offset_table instead of regs_ever_live
+ to decide whether to save/restore pic register.
+ (legitimize_pic_address): Don't modify regs_ever_live any more.
+
Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
* config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 2db8626..c2cc4ee 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -356,7 +356,7 @@ output_function_prologue (stream, size)
mask &= ~ (1 << (15 - FRAME_POINTER_REGNUM));
num_saved_regs--;
}
- if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
+ if (flag_pic && current_function_uses_pic_offset_table)
{
mask |= 1 << (15 - PIC_OFFSET_TABLE_REGNUM);
num_saved_regs++;
@@ -568,7 +568,7 @@ output_function_epilogue (stream, size)
nregs++;
mask |= 1 << regno;
}
- if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
+ if (flag_pic && current_function_uses_pic_offset_table)
{
nregs++;
mask |= 1 << PIC_OFFSET_TABLE_REGNUM;
@@ -1334,8 +1334,6 @@ legitimize_pic_address (orig, mode, reg)
gen_rtx_PLUS (Pmode,
pic_offset_table_rtx, orig));
current_function_uses_pic_offset_table = 1;
- if (reload_in_progress)
- regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
RTX_UNCHANGING_P (pic_ref) = 1;
emit_move_insn (reg, pic_ref);
return reg;