diff options
author | Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> | 1997-09-27 03:58:57 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-09-26 21:58:57 -0600 |
commit | a7cc7f29f45db5f76aac040f4e3ef62109fd1341 (patch) | |
tree | 2e41168654f1c6b85b43e081f1c15f4530c90758 /gcc/config/m68k | |
parent | 407cb092e3216d372d9fa3120e531829448f0bbc (diff) | |
download | gcc-a7cc7f29f45db5f76aac040f4e3ef62109fd1341.zip gcc-a7cc7f29f45db5f76aac040f4e3ef62109fd1341.tar.gz gcc-a7cc7f29f45db5f76aac040f4e3ef62109fd1341.tar.bz2 |
frame.c: Include gansidecl.h for PROTO.
* frame.c: Include gansidecl.h for PROTO.
* dwarf2out.c: Move inclusion of dwarf2.h down so that PROTO is
defined. Don't declare dwarf2out_cfi_label here.
* dwarf2.h: Add declarations of DWARF2 unwind info support
functions.
* m68k.c: Include dwarf2.h.
(output_function_prologue): Add dwarf2 support.
* m68k.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_REGNUM): New macros.
(INCOMING_FRAME_SP_OFFSET): Likewise.
Update m68k patch from Andreas.
From-SVN: r15740
Diffstat (limited to 'gcc/config/m68k')
-rw-r--r-- | gcc/config/m68k/m68k.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index e8e08f9..ccf0512 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -31,6 +31,7 @@ Boston, MA 02111-1307, USA. */ #include "insn-flags.h" #include "output.h" #include "insn-attr.h" +#include "dwarf2.h" /* Needed for use_return_insn. */ #include "flags.h" @@ -215,7 +216,8 @@ output_function_prologue (stream, size) } if (dwarf2out_do_frame ()) { - char *l = (char *) dwarf2out_cfi_label (); + char *l = dwarf2out_cfi_label (); + cfa_store_offset += 4; cfa_offset = cfa_store_offset; dwarf2out_def_cfa (l, FRAME_POINTER_REGNUM, cfa_offset); @@ -312,7 +314,8 @@ output_function_prologue (stream, size) #endif if (dwarf2out_do_frame ()) { - char *l = (char *) dwarf2out_cfi_label (); + char *l = dwarf2out_cfi_label (); + cfa_store_offset += 8; if (! frame_pointer_needed) { @@ -340,8 +343,9 @@ output_function_prologue (stream, size) #endif if (dwarf2out_do_frame ()) { - char *l = (char *) dwarf2out_cfi_label (); + char *l = dwarf2out_cfi_label (); int n_regs; + cfa_store_offset += num_saved_regs * 12; if (! frame_pointer_needed) { @@ -403,7 +407,8 @@ output_function_prologue (stream, size) reg_names[15 - i]); if (dwarf2out_do_frame ()) { - char *l = (char *) dwarf2out_cfi_label (); + char *l = dwarf2out_cfi_label (); + cfa_store_offset += 4; if (! frame_pointer_needed) { @@ -453,8 +458,9 @@ output_function_prologue (stream, size) } if (dwarf2out_do_frame ()) { - char *l = (char *) dwarf2out_cfi_label (); + char *l = dwarf2out_cfi_label (); int n_regs; + cfa_store_offset += num_saved_regs * 4; if (! frame_pointer_needed) { |