summaryrefslogtreecommitdiffstats
path: root/gcc/frame.h
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-23 00:29:55 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-23 00:29:55 +0000
commit220d204bf8991b718aa3e35e74c2965e1811a9a2 (patch)
treeb3b34069ee82d4ab6af7bad503c9132d5330f934 /gcc/frame.h
parent4e9d90c7ad53043976c8a0e394fe92f698de3173 (diff)
downloadppe42-gcc-220d204bf8991b718aa3e35e74c2965e1811a9a2.tar.gz
ppe42-gcc-220d204bf8991b718aa3e35e74c2965e1811a9a2.zip
Implement dwarf2 exception handling for the ARM.
* config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. (DWARF_FRAME_RETURN_COLUMN): Define. * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach REG_FRAME_RELATED_EXPR note. (emit_sfm): Likewise. (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. * dwarf2out.c (reg_save): Handle saving a register to itself. (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. * except.c (eh_regs): Don't use the static chain reg if it's callee-saved. * frame.h (frame_state): Add cfa_saved field. * frame.c (execute_cfa_insn): Set it. * libgcc2.c (throw_helper): Don't adjust sp if it's restored in the epilogue. * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. Now takes a parm. (instantiate_virtual_regs): Adjust. * tm.texi: Adjust. * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32696 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/frame.h')
-rw-r--r--gcc/frame.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/frame.h b/gcc/frame.h
index 330277c03f2..ecaf6b08344 100644
--- a/gcc/frame.h
+++ b/gcc/frame.h
@@ -1,6 +1,6 @@
/* Header file for unwinding stack frames for exception handling. */
/* Compile this one with gcc. */
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GNU CC.
@@ -34,6 +34,7 @@ typedef struct frame_state
long reg_or_offset[DWARF_FRAME_REGISTERS+1];
unsigned short cfa_reg;
unsigned short retaddr_column;
+ char cfa_saved;
char saved[DWARF_FRAME_REGISTERS+1];
} frame_state;
OpenPOWER on IntegriCloud