diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-07-15 17:09:56 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-07-15 17:09:56 +0000 |
commit | 12c5ffe5ef1929bab592f54d197ad7fd677c9905 (patch) | |
tree | 50c59d144fb0377196004267e3d65142ab7825c9 /gcc/doc | |
parent | 021a9e7ef276ac9c00e72a5fd676f20b6d6b36c0 (diff) | |
download | gcc-12c5ffe5ef1929bab592f54d197ad7fd677c9905.zip gcc-12c5ffe5ef1929bab592f54d197ad7fd677c9905.tar.gz gcc-12c5ffe5ef1929bab592f54d197ad7fd677c9905.tar.bz2 |
re PR debug/48220 (DW_OP_GNU_entry_value/DW_TAG_GNU_call_site_parameter vs register window)
PR target/48220
* doc/md.texi (Standard Names): Document window_save.
* cfgexpand.c (expand_debug_parm_decl): New function extracted from
expand_debug_expr and expand_debug_source_expr. If the target has
a window_save instruction, adjust the ENTRY_VALUE_EXP.
(expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
SSA_NAME_VAR is a parameter.
(expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
* var-tracking.c (parm_reg_t): New type and associated vector type.
(windowed_parm_regs): New variable.
(adjust_insn): If the target has a window_save instruction and this
is the instruction, make its effect on parameter registers explicit.
(next_non_note_insn_var_location): New function.
(emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
(vt_add_function_parameter): If the target has a window_save insn,
adjust the incoming RTL and record that in windowed_parm_regs.
(vt_finalize): Free windowed_parm_regs.
From-SVN: r176318
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/md.texi | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 23047ca..1f08dae 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -5333,6 +5333,14 @@ Using a prologue pattern is generally preferred over defining The @code{prologue} pattern is particularly useful for targets which perform instruction scheduling. +@cindex @code{window_save} instruction pattern +@anchor{window_save instruction pattern} +@item @samp{window_save} +This pattern, if defined, emits RTL for a register window save. It should +be defined if the target machine has register windows but the window events +are decoupled from calls to subroutines. The canonical example is the SPARC +architecture. + @cindex @code{epilogue} instruction pattern @anchor{epilogue instruction pattern} @item @samp{epilogue} |