summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/config
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-07-22 20:39:38 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-07-22 20:39:38 +0000
commit007685ac57d3c6e6bb79f6fd3196de4e0fdbacb2 (patch)
treed288a8fc351a5b9c9573cc466988e0c13f1d8992 /gnu/egcs/gcc/config
parentc8d99a034c0433d663255476b39af4a7ed758f0d (diff)
Merge
Diffstat (limited to 'gnu/egcs/gcc/config')
-rw-r--r--gnu/egcs/gcc/config/m68k/m68k.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gnu/egcs/gcc/config/m68k/m68k.c b/gnu/egcs/gcc/config/m68k/m68k.c
index 98f51978ac8..447ff3f8da2 100644
--- a/gnu/egcs/gcc/config/m68k/m68k.c
+++ b/gnu/egcs/gcc/config/m68k/m68k.c
@@ -374,6 +374,11 @@ output_function_prologue (stream, size)
mask &= ~ (1 << (15 - FRAME_POINTER_REGNUM));
num_saved_regs--;
}
+ if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
+ {
+ mask |= 1 << (15 - PIC_OFFSET_TABLE_REGNUM);
+ num_saved_regs++;
+ }
#if NEED_PROBE
#ifdef MOTOROLA
@@ -581,6 +586,11 @@ output_function_epilogue (stream, size)
nregs++;
mask |= 1 << regno;
}
+ if (flag_pic && regs_ever_live[PIC_OFFSET_TABLE_REGNUM])
+ {
+ nregs++;
+ mask |= 1 << PIC_OFFSET_TABLE_REGNUM;
+ }
offset = foffset + nregs * 4;
/* FIXME : leaf_function_p below is too strong.
What we really need to know there is if there could be pending