OSDN Git Service

dwarf2cfi: Introduce a dw_cfi_row state.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 23 Jul 2011 19:58:46 +0000 (19:58 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 23 Jul 2011 19:58:46 +0000 (19:58 +0000)
commiteb93b3f482f0abc85b6b8768507a3237569e2933
tree601188a008c6702ea15051b1759dbd0ed9a67feb
parentf59cbcbfb69f94a78281fcf474fc9242fec6ec82
dwarf2cfi: Introduce a dw_cfi_row state.

Use it instead of old_cfa, old_args_size, and cfa_remember variables.

Remove the global cfa variable, as it was usually a duplicate of
old_cfa and otherwise confusing.  Always make a local copy of the
cur_row->cfa variable before modification instead.

        * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
        (cie_cfi_row): New.
        (new_cfi_row, copy_cfi_row, free_cfi_row): New.
        (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
        (cur_row, remember_row): New.
        (def_cfa_1): Use cur_row instead of the old_* variables.
        (dwarf2out_frame_debug_restore_state): Similarly.
        (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
        (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
        (dwarf2out_frame_debug_adjust_cfa): Likewise.
        (dwarf2out_frame_debug_cfa_offset): Likewise.
        (dwarf2out_frame_debug_expr): Likewise.
        (execute_dwarf2_frame): Set up cur_row.
        * dwarf2out.h (struct cfa_loc): Mark for GTY.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176697 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/dwarf2cfi.c
gcc/dwarf2out.h