aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/m68hc11/m68hc11.c4
-rw-r--r--gcc/config/m68hc11/m68hc11.h3
3 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc2152cfcd5..25454d708df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2001-07-07 Stephane Carrez <Stephane.Carrez@worldnet.fr>
+
+ * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset):
+ Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM
+ elimination.
+ * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0.
+
2001-07-07 Nick Clifton <nickc@cambridge.redhat.com>
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end
diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c
index 201910956a5..cf5d968fff0 100644
--- a/gcc/config/m68hc11/m68hc11.c
+++ b/gcc/config/m68hc11/m68hc11.c
@@ -1231,7 +1231,7 @@ m68hc11_initial_elimination_offset (from, to)
if (from == FRAME_POINTER_REGNUM && to == HARD_FRAME_POINTER_REGNUM)
{
- return 0;
+ return m68hc11_sp_correction;
}
/* Push any 2 byte pseudo hard registers that we need to save. */
@@ -1250,7 +1250,7 @@ m68hc11_initial_elimination_offset (from, to)
if (from == FRAME_POINTER_REGNUM && to == HARD_SP_REGNUM)
{
- return size - m68hc11_sp_correction;
+ return size;
}
return 0;
}
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index 5f5982638a3..140b1e0d60a 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -875,8 +875,7 @@ extern enum reg_class m68hc11_tmp_regs_class;
If FRAME_GROWS_DOWNWARD, this is the offset to the END of the
first local allocated. Otherwise, it is the offset to the BEGINNING
of the first local allocated. */
-extern int m68hc11_sp_correction;
-#define STARTING_FRAME_OFFSET m68hc11_sp_correction
+#define STARTING_FRAME_OFFSET 0
/* Offset of first parameter from the argument pointer register value. */