diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-18 01:19:10 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-18 01:19:10 +0000 |
commit | da72c08324c5eadcc5451ced9fc0a6c80f186517 (patch) | |
tree | c03bdda31c81403f3bcd5fcf610248b9f27ee02a /gcc/var-tracking.c | |
parent | 15d27402f51cf831d82aa31271f5c01855b4f2cf (diff) | |
download | gcc-da72c08324c5eadcc5451ced9fc0a6c80f186517.tar.gz |
* 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: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107154 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/var-tracking.c')
-rw-r--r-- | gcc/var-tracking.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index d69ca139c42..fb4a1813218 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -557,8 +557,13 @@ adjust_stack_reference (rtx mem, HOST_WIDE_INT adjustment) { rtx addr, cfa, tmp; +#ifdef FRAME_POINTER_CFA_OFFSET + adjustment -= FRAME_POINTER_CFA_OFFSET (current_function_decl); + cfa = plus_constant (frame_pointer_rtx, adjustment); +#else adjustment -= ARG_POINTER_CFA_OFFSET (current_function_decl); cfa = plus_constant (arg_pointer_rtx, adjustment); +#endif addr = replace_rtx (copy_rtx (XEXP (mem, 0)), stack_pointer_rtx, cfa); tmp = simplify_rtx (addr); |