diff options
-rw-r--r-- | ChangeLog.csl | 7 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.c | 9 |
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. |