diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-09-03 15:54:32 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-09-03 15:54:32 +0000 |
commit | 18464d4d31ffc294347280430c1302e576d98b47 (patch) | |
tree | 33adc8f6c214028abe34845092a892397ba406d8 /binutils/dwarf.c | |
parent | 14dba4b472beeb95c8018fedc795d9379b36e0a3 (diff) | |
download | gdb-18464d4d31ffc294347280430c1302e576d98b47.zip gdb-18464d4d31ffc294347280430c1302e576d98b47.tar.gz gdb-18464d4d31ffc294347280430c1302e576d98b47.tar.bz2 |
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.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 1d2679b..599c0d2 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; |