diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2004-11-26 20:21:16 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2004-11-26 19:21:16 +0000 |
commit | e54c7471819ee8dc9e4ba0ada1db242bd5bd68ed (patch) | |
tree | c465f270ce510064453ef668b699763e5cde22f5 /gcc/doc | |
parent | 077094ace3c976aafd620af5f4291389e0b4e0e4 (diff) | |
download | gcc-e54c7471819ee8dc9e4ba0ada1db242bd5bd68ed.zip gcc-e54c7471819ee8dc9e4ba0ada1db242bd5bd68ed.tar.gz gcc-e54c7471819ee8dc9e4ba0ada1db242bd5bd68ed.tar.bz2 |
target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
* target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
* target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
(TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
* dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
to a fixed reg if the source is the Return Address register.
Implement new Rule 15.
* doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
* config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
sparc_dwarf_handle_frame_unspec.
(gen_save_register_window): New function.
(emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
(emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
(expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
(sparc_asm_function_prologue): Do not emit call frame debugging info.
(emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
(sparc_expand_epilogue): Likewise.
(sparc_dwarf_handle_frame_unspec): New function.
* config/sparc/sparc.md (save_register_window): Remove.
(save_register_windowdi): Rewrite modelled on the callframe debug info.
(save_register_windowsi): Likewise.
From-SVN: r91346
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 5efac06..5a044a5 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3005,6 +3005,22 @@ someone decided it was a good idea to use that register number to terminate the stack backtrace. New ports should avoid this. @end defmac +@deftypefn {Target Hook} void TARGET_DWARF_HANDLE_FRAME_UNSPEC (const char *@var{label}, rtx @var{pattern}, int @var{index}) +This target hook allows the backend to emit frame-related insns that +contain UNSPECs or UNSPEC_VOLATILEs. The DWARF 2 call frame debugging +info engine will invoke it on insns of the form +@smallexample +(set (reg) (unspec [...] UNSPEC_INDEX)) +@end smallexample +and +@smallexample +(set (reg) (unspec_volatile [...] UNSPECV_INDEX)). +@end smallexample +to let the backend emit the call frame instructions. @var{label} is +the CFI label attached to the insn, @var{pattern} is the pattern of +the insn and @var{index} is @code{UNSPEC_INDEX} or @code{UNSPECV_INDEX}. +@end deftypefn + @defmac INCOMING_FRAME_SP_OFFSET A C expression whose value is an integer giving the offset, in bytes, from the value of the stack pointer register to the top of the stack |