aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2007-01-21 22:42:09 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2007-01-21 22:42:09 +0000
commit58894217ea8747ee1ff7a64a0c57c7a92db5e686 (patch)
tree52a4a745c5c5a1c7b9a18956b3884b25773957a8 /gdb
parent43a9b631fc1ea45b4537e99c467d47782c76dd5d (diff)
downloadgdb-58894217ea8747ee1ff7a64a0c57c7a92db5e686.zip
gdb-58894217ea8747ee1ff7a64a0c57c7a92db5e686.tar.gz
gdb-58894217ea8747ee1ff7a64a0c57c7a92db5e686.tar.bz2
* dwarf2-frame.c (execute_cfa_program): New support of
`DW_CFA_GNU_negative_offset_extended'.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/dwarf2-frame.c11
2 files changed, 18 insertions, 0 deletions
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 <cagney@redhat.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+ Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * dwarf2-frame.c (execute_cfa_program): New support of
+ `DW_CFA_GNU_negative_offset_extended'.
+
2007-01-21 Daniel Jacobowitz <dan@codesourcery.com>
* 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, &reg);
+ 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."));
}