binutils/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 3 Sep 2010 15:54:32 +0000 (15:54 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Fri, 3 Sep 2010 15:54:32 +0000 (15:54 +0000)
* dwarf.c (regname): New declaration.
(decode_location_expression): Print for registers also regname output.

binutils/testsuite/
* binutils-all/objdump.W: Update DW_OP_reg5 expected output.

gas/testsuite/
* gas/elf/dwarf2-1.d: Update DW_OP_reg5 expected output.
* gas/elf/dwarf2-2.d: Likewise.
* gas/i386/dw2-compress-1.d: Likewise.

binutils/ChangeLog
binutils/dwarf.c
binutils/testsuite/ChangeLog
binutils/testsuite/binutils-all/objdump.W
gas/testsuite/ChangeLog
gas/testsuite/gas/elf/dwarf2-1.d
gas/testsuite/gas/elf/dwarf2-2.d
gas/testsuite/gas/i386/dw2-compress-1.d

index c3f1278..fa83d02 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf.c (regname): New declaration.
+       (decode_location_expression): Print for registers also regname output.
+
 2010-09-02  Richard Henderson  <rth@redhat.com>
 
        * dwarf.c (init_dwarf_regnames_i386, init_dwarf_regnames_x86_64): New.
index 1d2679b..599c0d2 100644 (file)
@@ -27,6 +27,8 @@
 #include "dwarf2.h"
 #include "dwarf.h"
 
+static const char *regname (unsigned int regno, int row);
+
 static int have_frame_base;
 static int need_base_address;
 
@@ -936,7 +938,8 @@ decode_location_expression (unsigned char * data,
        case DW_OP_reg29:
        case DW_OP_reg30:
        case DW_OP_reg31:
-         printf ("DW_OP_reg%d", op - DW_OP_reg0);
+         printf ("DW_OP_reg%d (%s)", op - DW_OP_reg0,
+                 regname (op - DW_OP_reg0, 1));
          break;
 
        case DW_OP_breg0:
@@ -971,14 +974,16 @@ decode_location_expression (unsigned char * data,
        case DW_OP_breg29:
        case DW_OP_breg30:
        case DW_OP_breg31:
-         printf ("DW_OP_breg%d: %ld", op - DW_OP_breg0,
+         printf ("DW_OP_breg%d (%s): %ld", op - DW_OP_breg0,
+                 regname (op - DW_OP_breg0, 1),
                  read_leb128 (data, &bytes_read, 1));
          data += bytes_read;
          break;
 
        case DW_OP_regx:
-         printf ("DW_OP_regx: %lu", read_leb128 (data, &bytes_read, 0));
+         uvalue = read_leb128 (data, &bytes_read, 0);
          data += bytes_read;
+         printf ("DW_OP_regx: %lu (%s)", uvalue, regname (uvalue, 1));
          break;
        case DW_OP_fbreg:
          need_frame_base = 1;
@@ -988,7 +993,7 @@ decode_location_expression (unsigned char * data,
        case DW_OP_bregx:
          uvalue = read_leb128 (data, &bytes_read, 0);
          data += bytes_read;
-         printf ("DW_OP_bregx: %lu %ld", uvalue,
+         printf ("DW_OP_bregx: %lu (%s) %ld", uvalue, regname (uvalue, 1),
                  read_leb128 (data, &bytes_read, 1));
          data += bytes_read;
          break;
index 9299f9e..9e5e22d 100644 (file)
@@ -1,3 +1,7 @@
+2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * binutils-all/objdump.W: Update DW_OP_reg5 expected output.
+
 2010-08-23  H.J. Lu  <hongjiu.lu@intel.com>
 
        * binutils-all/elfedit-3.d: New.
index 5f65063..8de584a 100644 (file)
@@ -23,7 +23,7 @@ Contents of the .debug_info section:
     <3c>   DW_AT_type        : <0x4a>  
     <40>   DW_AT_low_pc      : 0x.     
     <44>   DW_AT_high_pc     : 0x.     
-    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5\)
+    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
     <4b>   DW_AT_name        : int     
     <4f>   DW_AT_byte_size   : 4       
index 634f9e4..93c1b1d 100644 (file)
@@ -1,4 +1,10 @@
-2010-10-03  Kai Tietz  <kai.tietz@onevision.com>
+2010-09-03  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * gas/elf/dwarf2-1.d: Update DW_OP_reg5 expected output.
+       * gas/elf/dwarf2-2.d: Likewise.
+       * gas/i386/dw2-compress-1.d: Likewise.
+
+2010-09-03  Kai Tietz  <kai.tietz@onevision.com>
 
        * gas/cfi/cfi-i386.d: Use objdump -Wf instead of readelf.
        * gas/cfi/cfi-i386.s: Remove .type directives.
index f09d230..076b01d 100644 (file)
@@ -24,7 +24,7 @@ Contents of the .debug_info section:
     <3c>   DW_AT_type        : <0x4a>  
     <40>   DW_AT_low_pc      : 0x.     
     <44>   DW_AT_high_pc     : 0x.     
-    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5\)
+    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
     <4b>   DW_AT_name        : int     
     <4f>   DW_AT_byte_size   : 4       
index de87004..036aafc 100644 (file)
@@ -24,7 +24,7 @@ Contents of the .debug_info section:
     <3c>   DW_AT_type        : <0x4a>  
     <40>   DW_AT_low_pc      : 0x.     
     <44>   DW_AT_high_pc     : 0x.     
-    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5\)
+    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
     <4b>   DW_AT_name        : int     
     <4f>   DW_AT_byte_size   : 4       
index 1205ddf..71c9c70 100644 (file)
@@ -24,7 +24,7 @@ Contents of the .zdebug_info section:
     <3c>   DW_AT_type        : <0x4a>  
     <40>   DW_AT_low_pc      : 0x0     
     <44>   DW_AT_high_pc     : 0x4     
-    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5\)
+    <48>   DW_AT_frame_base  : 1 byte block: 55        \(DW_OP_reg5 \([^()]*\)\)
  <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\)
     <4b>   DW_AT_name        : int     
     <4f>   DW_AT_byte_size   : 4