aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@issan.informatik.uni-dortmund.de>1997-09-27 03:58:57 +0000
committerJeff Law <law@gcc.gnu.org>1997-09-26 21:58:57 -0600
commita7cc7f29f45db5f76aac040f4e3ef62109fd1341 (patch)
tree2e41168654f1c6b85b43e081f1c15f4530c90758 /gcc/config/m68k
parent407cb092e3216d372d9fa3120e531829448f0bbc (diff)
downloadgcc-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.c16
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)
{