From 18464d4d31ffc294347280430c1302e576d98b47 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Fri, 3 Sep 2010 15:54:32 +0000 Subject: [PATCH] binutils/ * 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 | 6 ++++++ binutils/dwarf.c | 13 +++++++++---- binutils/testsuite/ChangeLog | 4 ++++ binutils/testsuite/binutils-all/objdump.W | 2 +- gas/testsuite/ChangeLog | 8 +++++++- gas/testsuite/gas/elf/dwarf2-1.d | 2 +- gas/testsuite/gas/elf/dwarf2-2.d | 2 +- gas/testsuite/gas/i386/dw2-compress-1.d | 2 +- 8 files changed, 30 insertions(+), 9 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c3f12785cdc..fa83d02504a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2010-09-03 Jan Kratochvil + Jakub Jelinek + + * dwarf.c (regname): New declaration. + (decode_location_expression): Print for registers also regname output. + 2010-09-02 Richard Henderson * dwarf.c (init_dwarf_regnames_i386, init_dwarf_regnames_x86_64): New. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 1d2679befcd..599c0d2ba81 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -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; diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 9299f9e9e7e..9e5e22da741 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2010-09-03 Jan Kratochvil + + * binutils-all/objdump.W: Update DW_OP_reg5 expected output. + 2010-08-23 H.J. Lu * binutils-all/elfedit-3.d: New. diff --git a/binutils/testsuite/binutils-all/objdump.W b/binutils/testsuite/binutils-all/objdump.W index 5f65063e077..8de584a0a83 100644 --- a/binutils/testsuite/binutils-all/objdump.W +++ b/binutils/testsuite/binutils-all/objdump.W @@ -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 diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 634f9e4d08f..93c1b1d9623 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,4 +1,10 @@ -2010-10-03 Kai Tietz +2010-09-03 Jan Kratochvil + + * 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 * gas/cfi/cfi-i386.d: Use objdump -Wf instead of readelf. * gas/cfi/cfi-i386.s: Remove .type directives. diff --git a/gas/testsuite/gas/elf/dwarf2-1.d b/gas/testsuite/gas/elf/dwarf2-1.d index f09d230a928..076b01d734b 100644 --- a/gas/testsuite/gas/elf/dwarf2-1.d +++ b/gas/testsuite/gas/elf/dwarf2-1.d @@ -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 diff --git a/gas/testsuite/gas/elf/dwarf2-2.d b/gas/testsuite/gas/elf/dwarf2-2.d index de8700452c1..036aafcbbc9 100644 --- a/gas/testsuite/gas/elf/dwarf2-2.d +++ b/gas/testsuite/gas/elf/dwarf2-2.d @@ -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 diff --git a/gas/testsuite/gas/i386/dw2-compress-1.d b/gas/testsuite/gas/i386/dw2-compress-1.d index 1205ddfe7eb..71c9c70675b 100644 --- a/gas/testsuite/gas/i386/dw2-compress-1.d +++ b/gas/testsuite/gas/i386/dw2-compress-1.d @@ -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 -- 2.30.2