diff options
author | oldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-02 06:11:26 +0000 |
---|---|---|
committer | oldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-02-02 06:11:26 +0000 |
commit | 950ae8fec7b9131126bfb2dcec10c2624462df81 (patch) | |
tree | 15995aff0502d1a28e4aba64804b5e5410d3ac7d /gcc/rtl.texi | |
parent | 9c89b179c0ec09ec7855e0d20b13a48180809c47 (diff) | |
download | gcc-950ae8fec7b9131126bfb2dcec10c2624462df81.tar.gz |
2001-02-01 Jeffrey Oldham <oldham@codesourcery.com>
* dwarf2out.c: Added explanation of abbreviations.
(def_cfa_1): Added comments listing DWARF2 instructions.
(cfa_temp_reg): Removed in favor of cfa_temp.
(cfa_temp_value): Removed in favor of cfa_temp.
(cfa_temp): New global variable.
(dwarf2out_frame_debug_expr): Added extensive introductory
comments explaining the function's transformations. Revised to
use cfa_temp. Added some rtx checking. Generalize IOR case.
(dwarf2out_frame_debug): Revised to use cfa_temp.
(output_aranges): Cast as "unsigned" to avoid warning.
* rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better
explain which instructions must be marked.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39405 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.texi')
-rw-r--r-- | gcc/rtl.texi | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/gcc/rtl.texi b/gcc/rtl.texi index 6ed90f8fe77..f75ffcf1e72 100644 --- a/gcc/rtl.texi +++ b/gcc/rtl.texi @@ -458,10 +458,29 @@ Stored in the @code{integrated} field and printed as @samp{/i}. @findex RTX_FRAME_RELATED_P @item RTX_FRAME_RELATED_P (@var{x}) -Nonzero in an insn or expression which is part of a function -prologue and sets the stack pointer, sets the frame pointer, or saves a -register. This flag is required for exception handling support -on targets with RTL prologues. +Nonzero in an insn or expression which is part of a function prologue +and sets the stack pointer, sets the frame pointer, or saves a register. +This flag should also be set on an instruction that sets up a temporary +register to use in place of the frame pointer. + +In particular, on RISC targets where there are limits on the sizes of +immediate constants, it is sometimes impossible to reach the register +save area directly from the stack pointer. In that case, a temporary +register is used that is near enough to the register save area, and the +Canonical Frame Address, i.e., DWARF2's logical frame pointer, register +must (temporarily) be changed to be this temporary register. So, the +instruction that sets this temporary register must be marked as +@code{RTX_FRAME_RELATED_P}. + +If the marked instruction is overly complex (defined in terms of what +@code{dwarf2out_frame_debug_expr} can handle), you will also have to +create a @code{REG_FRAME_RELATED_EXPR} note and attach it to the +instruction. This note should contain a simple expression of the +computation performed by this instruction, i.e., one that +@code{dwarf2out_frame_debug_expr} can handle. + +This flag is required for exception handling support on targets with RTL +prologues. @findex SYMBOL_REF_USED @cindex @code{used}, in @code{symbol_ref} |