diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-23 00:29:55 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-23 00:29:55 +0000 |
commit | 220d204bf8991b718aa3e35e74c2965e1811a9a2 (patch) | |
tree | b3b34069ee82d4ab6af7bad503c9132d5330f934 /gcc/tm.texi | |
parent | 4e9d90c7ad53043976c8a0e394fe92f698de3173 (diff) | |
download | gcc-220d204bf8991b718aa3e35e74c2965e1811a9a2.tar.gz |
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/tm.texi')
-rw-r--r-- | gcc/tm.texi | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi index 633281a091e..3a1b9ebebf4 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -2292,6 +2292,9 @@ the stack. You only need to define this macro if you want to support call frame debugging information like that provided by DWARF 2. +If this RTL is a @code{REG}, you should also define +DWARF_FRAME_RETURN_COLUMN to @code{DWARF_FRAME_REGNUM (REGNO)}. + @findex INCOMING_FRAME_SP_OFFSET @item INCOMING_FRAME_SP_OFFSET A C expression whose value is an integer giving the offset, in bytes, @@ -2304,15 +2307,20 @@ You only need to define this macro if you want to support call frame debugging information like that provided by DWARF 2. @findex ARG_POINTER_CFA_OFFSET -@item ARG_POINTER_CFA_OFFSET +@item ARG_POINTER_CFA_OFFSET (@var{fundecl}) A C expression whose value is an integer giving the offset, in bytes, from the argument pointer to the canonical frame address (cfa). The final value should coincide with that calculated by @code{INCOMING_FRAME_SP_OFFSET}. Which is unfortunately not usable during virtual register instantiation. -You only need to define this macro if you want to support call frame -debugging information like that provided by DWARF 2. +The default value for this macro is @code{FIRST_PARM_OFFSET (fundecl)}, +which is correct for most machines; in general, the arguments are found +immediately before the stack frame. See @file{function.c} for details. + +You only need to define this macro if this default is incorrect, and you +want to support call frame debugging information like that provided by +DWARF 2. @findex SMALL_STACK @item SMALL_STACK |