Commit 770ca8c6 by Jeffrey Oldham Committed by Jeffrey D. Oldham

dwarf2out.c: Added explanation of abbreviations.

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.

From-SVN: r39405
parent cad33336
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.
2001-02-01 Richard Henderson <rth@redhat.com> 2001-02-01 Richard Henderson <rth@redhat.com>
* local-alloc.c (update_equiv_regs): Copy INSN_CODE to the * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
......
...@@ -458,10 +458,29 @@ Stored in the @code{integrated} field and printed as @samp{/i}. ...@@ -458,10 +458,29 @@ Stored in the @code{integrated} field and printed as @samp{/i}.
@findex RTX_FRAME_RELATED_P @findex RTX_FRAME_RELATED_P
@item RTX_FRAME_RELATED_P (@var{x}) @item RTX_FRAME_RELATED_P (@var{x})
Nonzero in an insn or expression which is part of a function Nonzero in an insn or expression which is part of a function prologue
prologue and sets the stack pointer, sets the frame pointer, or saves a and sets the stack pointer, sets the frame pointer, or saves a register.
register. This flag is required for exception handling support This flag should also be set on an instruction that sets up a temporary
on targets with RTL prologues. 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 @findex SYMBOL_REF_USED
@cindex @code{used}, in @code{symbol_ref} @cindex @code{used}, in @code{symbol_ref}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment