summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-07-03 08:53:50 +0000
committerJakub Jelinek <jakub@redhat.com>2009-07-03 08:53:50 +0000
commitfbf70ebd4d07da93992e9c5d0b0d0229f4b5cdf7 (patch)
treebbd170d806a5246752534e879defe88f9c3699dc
parentdac5beb4119317a0026c191af6ce47683317d00c (diff)
downloadbinutils-redhat-fbf70ebd4d07da93992e9c5d0b0d0229f4b5cdf7.tar.gz
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
and DW_OP_stack_value. * dwarf.c (decode_location_expression): Handle DW_OP_stack_value and DW_OP_implicit_value.
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/dwarf.c13
-rw-r--r--include/elf/ChangeLog5
-rw-r--r--include/elf/dwarf2.h3
4 files changed, 26 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9e505599f4..2baf105aa7 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-03 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf.c (decode_location_expression): Handle DW_OP_stack_value
+ and DW_OP_implicit_value.
+
2009-07-01 Nick Clifton <nickc@redhat.com>
PR 6714
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 1a01e009a5..86bf2cb802 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -1014,6 +1014,19 @@ decode_location_expression (unsigned char * data,
data += bytes_read;
break;
+ /* DWARF 4 extensions. */
+ case DW_OP_stack_value:
+ printf ("DW_OP_stack_value");
+ break;
+
+ case DW_OP_implicit_value:
+ printf ("DW_OP_implicit_value");
+ uvalue = read_leb128 (data, &bytes_read, 0);
+ data += bytes_read;
+ display_block (data, uvalue);
+ data += uvalue;
+ break;
+
/* GNU extensions. */
case DW_OP_GNU_push_tls_address:
printf ("DW_OP_GNU_push_tls_address or DW_OP_HP_unknown");
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 99805f1c72..640824e5a0 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-03 Jakub Jelinek <jakub@redhat.com>
+
+ * dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
+ and DW_OP_stack_value.
+
2009-06-22 Alan Modra <amodra@bigpond.net.au>
* ppc.h (R_PPC_RELAX*): Define as enum.
diff --git a/include/elf/dwarf2.h b/include/elf/dwarf2.h
index a7448dc7cf..a22558db64 100644
--- a/include/elf/dwarf2.h
+++ b/include/elf/dwarf2.h
@@ -541,6 +541,9 @@ enum dwarf_location_atom
DW_OP_form_tls_address = 0x9b,
DW_OP_call_frame_cfa = 0x9c,
DW_OP_bit_piece = 0x9d,
+ /* DWARF 4 extensions. */
+ DW_OP_implicit_value = 0x9e,
+ DW_OP_stack_value = 0x9f,
/* GNU extensions. */
DW_OP_GNU_push_tls_address = 0xe0,
DW_OP_GNU_uninit = 0xf0,