* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
authorJakub Jelinek <jakub@redhat.com>
Fri, 3 Jul 2009 08:53:50 +0000 (08:53 +0000)
committerJakub Jelinek <jakub@redhat.com>
Fri, 3 Jul 2009 08:53:50 +0000 (08:53 +0000)
and DW_OP_stack_value.

* dwarf.c (decode_location_expression): Handle DW_OP_stack_value
and DW_OP_implicit_value.

binutils/ChangeLog
binutils/dwarf.c
include/elf/ChangeLog
include/elf/dwarf2.h

index 9e505599f45bb78e4a9bb1f1122c62481a3c0883..2baf105aa76b08c160be7548b5bd6b4ead405958 100644 (file)
@@ -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
index 1a01e009a5ea7fc73d69c2b6e8c24ce54723fcd6..86bf2cb802f2500c04d1fea4b636ed4ed142bab0 100644 (file)
@@ -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");
index 99805f1c723ab7d1577dad9cf837e383b44f6b60..640824e5a035cd6d17504399218c16ab7c0075b7 100644 (file)
@@ -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.
index a7448dc7cf77afa498cc84659c6c22dd7616e453..a22558db640f4eb41136dbe947183b6b5d33b5d1 100644 (file)
@@ -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,