diff options
author | Richard Henderson <rth@redhat.com> | 2005-11-18 01:19:10 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2005-11-18 01:19:10 +0000 |
commit | 97a0c9fb335b4347d02f5c3339f876ae5fbd75b5 (patch) | |
tree | c03bdda31c81403f3bcd5fcf610248b9f27ee02a /gcc/doc | |
parent | b7be57984d363e0bb205df6fa4873b71e5b58b52 (diff) |
* dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
(lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
and DW_CFA_def_cfa_sf.
(def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
(dbx_reg_number): Don't assert particular registers here.
(based_loc_descr): ... do it here instead. Fold in ...
(eliminate_reg_to_offset): ... this function.
(compute_frame_pointer_to_cfa_displacement): Fold in the effects
of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
* unwind-dw2.c (execute_cfa_program): Apply data align factor
to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
* function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
(instantiate_virtual_regs): Likewise.
* var-tracking.c (adjust_stack_reference): Likewise.
* doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@107154 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index b339c4ccdc0..b229ee823dd 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -2926,6 +2926,21 @@ want to support call frame debugging information like that provided by DWARF 2. @end defmac +@defmac FRAME_POINTER_CFA_OFFSET (@var{fundecl}) +If defined, a C expression whose value is an integer giving the offset +in bytes from the frame pointer to the canonical frame address (cfa). +The final value should conincide with that calculated by +@code{INCOMING_FRAME_SP_OFFSET}. + +Normally the CFA is calculated as an offset from the argument pointer, +via @code{ARG_POINTER_CFA_OFFSET}, but if the argument pointer is +variable due to the ABI, this may not be possible. If this macro is +defined, it imples that the virtual register instantiation should be +based on the frame pointer instead of the argument pointer. Only one +of @code{FRAME_POINTER_CFA_OFFSET} and @code{ARG_POINTER_CFA_OFFSET} +should be defined. +@end defmac + @node Exception Handling @subsection Exception Handling Support @cindex exception handling |