diff options
author | Richard Henderson <rth@redhat.com> | 2005-11-17 17:19:10 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-11-17 17:19:10 -0800 |
commit | f6672e8e52276dcaf1a27e636247383f316ce221 (patch) | |
tree | c03bdda31c81403f3bcd5fcf610248b9f27ee02a /gcc/doc | |
parent | ca9e049bc145ae985bc0e2dd6079dacdd51717ac (diff) | |
download | gcc-f6672e8e52276dcaf1a27e636247383f316ce221.zip gcc-f6672e8e52276dcaf1a27e636247383f316ce221.tar.gz gcc-f6672e8e52276dcaf1a27e636247383f316ce221.tar.bz2 |
dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
* 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.
From-SVN: r107154
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 b339c4c..b229ee8 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 |