aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-07-08 07:21:01 -0600
committerJeff Law <law@gcc.gnu.org>1999-07-08 07:21:01 -0600
commit8f9f5b127d31e31affd8b4dd4b99c8c03ef46b3f (patch)
tree070c3bf96cd8d40c5c4df0cca0a61e2fd16cdc04 /gcc
parentca21e4dad809339454d890540d08e0f107625a42 (diff)
downloadgcc-8f9f5b127d31e31affd8b4dd4b99c8c03ef46b3f.zip
gcc-8f9f5b127d31e31affd8b4dd4b99c8c03ef46b3f.tar.gz
gcc-8f9f5b127d31e31affd8b4dd4b99c8c03ef46b3f.tar.bz2
m68k.c (output_function_prologue): Add pic register to mask if live and flag_pic.
� * m68k.c (output_function_prologue): Add pic register to mask if live and flag_pic. (output_function_epilogue): Likewise. From-SVN: r28023
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 9d1a37f..0431750 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -357,6 +357,8 @@ 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 << PIC_OFFSET_TABLE_REGNUM;
#if NEED_PROBE
#ifdef MOTOROLA
@@ -564,6 +566,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