aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-15 09:23:43 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-12-15 09:23:43 +0000
commit34bddcb69587179ec138bf203d72033c80e59950 (patch)
treee38cbee4301e97b2c406eeb9f42a39c809c9b809
parentf9fd4d26da4a711d800079d6ca5163302712846b (diff)
* config/m68k/m68k.c (m68k_use_return_insn): Update comments before function. Extend register save check to include all registers, not just integer ones. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@119879 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog.csl7
-rw-r--r--gcc/config/m68k/m68k.c9
2 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 14cc97c7e41..2b655652eff 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,6 +1,13 @@
2006-12-15 Richard Sandiford <richard@codesourcery.com>
gcc/
+ * config/m68k/m68k.c (m68k_use_return_insn): Update comments
+ before function. Extend register save check to include all
+ registers, not just integer ones.
+
+2006-12-15 Richard Sandiford <richard@codesourcery.com>
+
+ gcc/
* config/m68k/m68k.md (adddi_dilshr32): Rename to...
(*adddi_dilshr32): ...this. Fix formatting. Remove commented-out
non-canonical pattern. Restrict to !m68k_arch_coldfire.
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 9dfc4e6dbaf..f3682fc087a 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -1115,7 +1115,8 @@ m68k_expand_prologue (void)
}
}
-/* Return true if this function's epilogue can be output as RTL. */
+/* Return true if a simple (return) instruction is sufficient for this
+ instruction (i.e. if no epilogue is needed). */
bool
m68k_use_return_insn (void)
@@ -1123,10 +1124,8 @@ m68k_use_return_insn (void)
if (!reload_completed || frame_pointer_needed || get_frame_size () != 0)
return false;
- /* We can output the epilogue as RTL only if no registers need to be
- restored. */
- m68k_compute_frame_layout();
- return current_frame.reg_no ? false : true;
+ m68k_compute_frame_layout ();
+ return current_frame.offset == 0;
}
/* Emit RTL for the "epilogue" define_expand.