diff options
author | Geoff Keating <geoffk@cygnus.com> | 2000-02-09 01:57:21 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2000-02-09 01:57:21 +0000 |
commit | 3f388b42b08a542ab952cfa494b059a2f6aa23a4 (patch) | |
tree | 11e7f697d85ef54dbc47591bc4f45867fc164631 /gcc/frame.c | |
parent | 5568fb48cc080bfcf8164b60e90f489130b0ea2e (diff) | |
download | gcc-3f388b42b08a542ab952cfa494b059a2f6aa23a4.zip gcc-3f388b42b08a542ab952cfa494b059a2f6aa23a4.tar.gz gcc-3f388b42b08a542ab952cfa494b059a2f6aa23a4.tar.bz2 |
dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
* dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
* dwarf2out.c (dwarf_cfi_name): Print name of new constant.
(reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
(output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
* frame.c (execute_cfa_insn): Handle
DW_CFA_GNU_negative_offset_extended.
From-SVN: r31858
Diffstat (limited to 'gcc/frame.c')
-rw-r--r-- | gcc/frame.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/frame.c b/gcc/frame.c index dc5d3a9c9..79ba78a 100644 --- a/gcc/frame.c +++ b/gcc/frame.c @@ -795,6 +795,14 @@ execute_cfa_insn (void *p, struct frame_state_internal *state, state->s.args_size = offset; break; + case DW_CFA_GNU_negative_offset_extended: + p = decode_uleb128 (p, ®); + p = decode_uleb128 (p, &offset); + offset *= info->data_align; + state->s.saved[reg] = REG_SAVED_OFFSET; + state->s.reg_or_offset[reg] = -offset; + break; + default: abort (); } |