From: Jan Kratochvil Date: Sun, 21 Jan 2007 22:42:09 +0000 (+0000) Subject: * dwarf2-frame.c (execute_cfa_program): New support of X-Git-Tag: drow-reverse-20070409-branchpoint~732 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=58894217ea8747ee1ff7a64a0c57c7a92db5e686;p=platform%2Fupstream%2Fbinutils.git * dwarf2-frame.c (execute_cfa_program): New support of `DW_CFA_GNU_negative_offset_extended'. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f109382..6fcaa08 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2007-01-11 Andrew Cagney + Daniel Jacobowitz + Jan Kratochvil + + * dwarf2-frame.c (execute_cfa_program): New support of + `DW_CFA_GNU_negative_offset_extended'. + 2007-01-21 Daniel Jacobowitz * NEWS: Mention flash support for "load" and new remote packets. diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index da1d3d4..fd4002c 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -579,6 +579,17 @@ bad CFI data; mismatched DW_CFA_restore_state at 0x%s"), paddr (fs->pc)); insn_ptr = read_uleb128 (insn_ptr, insn_end, &utmp); break; + case DW_CFA_GNU_negative_offset_extended: + insn_ptr = read_uleb128 (insn_ptr, insn_end, ®); + if (eh_frame_p) + reg = dwarf2_frame_eh_frame_regnum (gdbarch, reg); + insn_ptr = read_uleb128 (insn_ptr, insn_end, &offset); + offset *= fs->data_align; + dwarf2_frame_state_alloc_regs (&fs->regs, reg + 1); + fs->regs.reg[reg].how = DWARF2_FRAME_REG_SAVED_OFFSET; + fs->regs.reg[reg].loc.offset = -offset; + break; + default: internal_error (__FILE__, __LINE__, _("Unknown CFI encountered.")); }