This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Dump machine register in readelf debug output
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: binutils at sources dot redhat dot com
- Date: Sat, 26 Jan 2008 14:30:51 -0800
- Subject: PATCH: Dump machine register in readelf debug output
It is often very useful to display machine register instead of
dwarf register in readelf debug output. This patch add new
options -wM/--debug-dump=register to readelf for i386 and x86-64.
I also changed readelf to display DW_CFA_def_cfa_register instead
of DW_CFA_def_cfa_reg for DW_CFA_def_cfa_register to make it
consistent with other DWARF instructions.
readelf has many undocumented options for -wX where X is an unused
option and is treated the same as the lower case. I removed those
undocumented options.
OK to install?
Thanks.
H.J.
---
binutils/
2008-01-26 H.J. Lu <hongjiu.lu@intel.com>
* doc/binutils.texi: Document the new readelf option,
-wM/--debug-dump=register.
* dwarf.c: Include "elf/common.h".
(dwarf_regnames_i386): New.
(dwarf_regnames_x86_64): Likewise.
(dwarf_regnames): Likewise.
(dwarf_regnames_count): Likewise.
(init_dwarf_regnames): Likewise.
(regname): Likewise.
(frame_display_row): Call regname to get register name.
(display_debug_frames): Likewise. Display DW_CFA_def_cfa_register
as DW_CFA_def_cfa_register instead of DW_CFA_def_cfa_reg.
* dwarf.h (init_dwarf_regnames): New.
* readelf.c (do_dwarf_register): New.
(guess_is_rela): Change argument to int.
(usage): Display -wM/--debug-dump=register.
(parse_args): Remove the undocumented upper case options for
-wX. Handle -wM/--debug-dump=register.
(process_file_header): Call init_dwarf_regnames if
do_dwarf_register is true.
gas/testsuite/
2008-01-26 H.J. Lu <hongjiu.lu@intel.com>
* gas/cfi/cfi-alpha-1.d: Replace DW_CFA_def_cfa_reg with
DW_CFA_def_cfa_register.
* gas/cfi/cfi-alpha-3.d: Likewise.
* gas/cfi/cfi-hppa-1.d: Likewise.
* gas/cfi/cfi-i386.d: Likewise.
* gas/cfi/cfi-m68k.d: Likewise.
* gas/cfi/cfi-mips-1.d: Likewise.
* gas/cfi/cfi-sh-1.d: Likewise.
* gas/cfi/cfi-sparc-1.d: Likewise.
* gas/cfi/cfi-sparc64-1.d: Likewise.
* gas/cfi/cfi-x86_64.d: Likewise.
ld/testsuite/
2008-01-26 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/eh1.d: Replace DW_CFA_def_cfa_reg with
DW_CFA_def_cfa_register.
* ld-elf/eh2.d: Likewise.
* ld-elf/eh3.d: Likewise.
--- binutils/binutils/doc/binutils.texi.dw 2007-12-27 09:47:38.000000000 -0800
+++ binutils/binutils/doc/binutils.texi 2008-01-26 14:11:35.000000000 -0800
@@ -3671,8 +3671,8 @@ readelf [@option{-a}|@option{--all}]
[@option{-x} <number or name>|@option{--hex-dump=}<number or name>]
[@option{-p} <number or name>|@option{--string-dump=}<number or name>]
[@option{-c}|@option{--archive-index}]
- [@option{-w[liaprmfFsoR]}|
- @option{--debug-dump}[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]]
+ [@option{-w[liaprmfFsoRM]}|
+ @option{--debug-dump}[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=register]]
[@option{-I}|@option{-histogram}]
[@option{-v}|@option{--version}]
[@option{-W}|@option{--wide}]
@@ -3809,11 +3809,13 @@ Displays the file symbol index infomatio
of binary archives. Performs the same function as the @option{t}
command to @command{ar}, but without using the BFD library. @xref{ar}.
-@item -w[liaprmfFsoR]
-@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]
+@item -w[liaprmfFsoRM]
+@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,register]
Displays the contents of the debug sections in the file, if any are
present. If one of the optional letters or words follows the switch
-then only data found in those specific sections will be dumped.
+then only data found in those specific sections will be dumped. The
+@option{-wM} will map dwarf register to machine register on @samp{i386}
+and @samp{x86-64}.
@item -I
@itemx --histogram
--- binutils/binutils/dwarf.c.dw 2008-01-25 09:01:03.000000000 -0800
+++ binutils/binutils/dwarf.c 2008-01-26 14:11:35.000000000 -0800
@@ -23,6 +23,7 @@
#include "libiberty.h"
#include "bfd.h"
#include "bucomm.h"
+#include "elf/common.h"
#include "elf/dwarf2.h"
#include "dwarf.h"
@@ -3118,6 +3119,81 @@ frame_need_space (Frame_Chunk *fc, int r
}
}
+static const char *const dwarf_regnames_i386[] =
+{
+ "eax", "ecx", "edx", "ebx",
+ "esp", "ebp", "esi", "edi",
+ "eip", "eflags", NULL,
+ "st0", "st1", "st2", "st3",
+ "st4", "st5", "st6", "st7",
+ NULL, NULL,
+ "xmm0", "xmm1", "xmm2", "xmm3",
+ "xmm4", "xmm5", "xmm6", "xmm7",
+ "mm0", "mm1", "mm2", "mm3",
+ "mm4", "mm5", "mm6", "mm7",
+ "fcw", "fsw", "mxcsr",
+ "es", "cs", "ss", "ds", "fs", "gs", NULL, NULL,
+ "tr", "ldtr"
+};
+
+static const char *const dwarf_regnames_x86_64[] =
+{
+ "rax", "rdx", "rcx", "rbx",
+ "rsi", "rdi", "rbp", "rsp",
+ "r8", "r9", "r10", "r11",
+ "r12", "r13", "r14", "r15",
+ "rip",
+ "xmm0", "xmm1", "xmm2", "xmm3",
+ "xmm4", "xmm5", "xmm6", "xmm7",
+ "xmm8", "xmm9", "xmm10", "xmm11",
+ "xmm12", "xmm13", "xmm14", "xmm15",
+ "st0", "st1", "st2", "st3",
+ "st4", "st5", "st6", "st7",
+ "mm0", "mm1", "mm2", "mm3",
+ "mm4", "mm5", "mm6", "mm7",
+ "rflags",
+ "es", "cs", "ss", "ds", "fs", "gs", NULL, NULL,
+ "fs.base", "gs.base", NULL, NULL,
+ "tr", "ldtr",
+ "mxcsr", "fcw", "fsw"
+};
+
+static const char *const *dwarf_regnames;
+static unsigned int dwarf_regnames_count;
+
+void
+init_dwarf_regnames (unsigned int e_machine)
+{
+ switch (e_machine)
+ {
+ case EM_386:
+ case EM_486:
+ dwarf_regnames = dwarf_regnames_i386;
+ dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_i386);
+ break;
+
+ case EM_X86_64:
+ dwarf_regnames = dwarf_regnames_x86_64;
+ dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_x86_64);
+ break;
+
+ default:
+ break;
+ }
+}
+
+static const char *
+regname (unsigned int regno)
+{
+ static char reg[16];
+ if (dwarf_regnames
+ && regno < dwarf_regnames_count
+ && dwarf_regnames [regno] != NULL)
+ return dwarf_regnames [regno];
+ snprintf (reg, sizeof (reg), "r%d", regno);
+ return reg;
+}
+
static void
frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
{
@@ -3149,7 +3225,7 @@ frame_display_row (Frame_Chunk *fc, int
if (fc->cfa_exp)
strcpy (tmp, "exp");
else
- sprintf (tmp, "r%d%+d", fc->cfa_reg, fc->cfa_offset);
+ sprintf (tmp, "%s%+d", regname (fc->cfa_reg), fc->cfa_offset);
printf ("%-8s ", tmp);
for (r = 0; r < fc->ncols; r++)
@@ -3171,7 +3247,7 @@ frame_display_row (Frame_Chunk *fc, int
sprintf (tmp, "v%+d", fc->col_offset[r]);
break;
case DW_CFA_register:
- sprintf (tmp, "r%d", fc->col_offset[r]);
+ sprintf (tmp, "%s", regname (fc->col_offset[r]));
break;
case DW_CFA_expression:
strcpy (tmp, "exp");
@@ -3631,15 +3707,15 @@ display_debug_frames (struct dwarf_secti
case DW_CFA_offset:
roffs = LEB ();
if (! do_debug_frames_interp)
- printf (" DW_CFA_offset: r%d at cfa%+ld\n",
- opa, roffs * fc->data_factor);
+ printf (" DW_CFA_offset: %s at cfa%+ld\n",
+ regname (opa), roffs * fc->data_factor);
fc->col_type[opa] = DW_CFA_offset;
fc->col_offset[opa] = roffs * fc->data_factor;
break;
case DW_CFA_restore:
if (! do_debug_frames_interp)
- printf (" DW_CFA_restore: r%d\n", opa);
+ printf (" DW_CFA_restore: %s\n", regname (opa));
fc->col_type[opa] = cie->col_type[opa];
fc->col_offset[opa] = cie->col_offset[opa];
break;
@@ -3779,15 +3855,16 @@ display_debug_frames (struct dwarf_secti
fc->cfa_offset = LEB ();
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa: r%d ofs %d\n",
- fc->cfa_reg, fc->cfa_offset);
+ printf (" DW_CFA_def_cfa: %s ofs %d\n",
+ regname (fc->cfa_reg), fc->cfa_offset);
break;
case DW_CFA_def_cfa_register:
fc->cfa_reg = LEB ();
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_reg: r%d\n", fc->cfa_reg);
+ printf (" DW_CFA_def_cfa_register: %s\n",
+ regname (fc->cfa_reg));
break;
case DW_CFA_def_cfa_offset:
@@ -3867,8 +3944,8 @@ display_debug_frames (struct dwarf_secti
fc->cfa_offset = fc->cfa_offset * fc->data_factor;
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_sf: r%d ofs %d\n",
- fc->cfa_reg, fc->cfa_offset);
+ printf (" DW_CFA_def_cfa_sf: %s ofs %d\n",
+ regname (fc->cfa_reg), fc->cfa_offset);
break;
case DW_CFA_def_cfa_offset_sf:
--- binutils/binutils/dwarf.h.dw 2007-10-31 11:21:34.000000000 -0700
+++ binutils/binutils/dwarf.h 2008-01-26 14:11:35.000000000 -0800
@@ -105,6 +105,8 @@ extern int do_debug_macinfo;
extern int do_debug_str;
extern int do_debug_loc;
+extern void init_dwarf_regnames (unsigned int);
+
extern int load_debug_section (enum dwarf_section_display_enum,
void *);
extern void free_debug_section (enum dwarf_section_display_enum);
--- binutils/binutils/readelf.c.dw 2008-01-26 14:11:23.000000000 -0800
+++ binutils/binutils/readelf.c 2008-01-26 14:11:35.000000000 -0800
@@ -204,6 +204,7 @@ static int do_arch;
static int do_notes;
static int do_archive_index;
static int is_32bit_elf;
+static int do_dwarf_register;
struct group_list
{
@@ -624,7 +625,7 @@ find_section (const char *name)
/* Guess the relocation size commonly used by the specific machines. */
static int
-guess_is_rela (unsigned long e_machine)
+guess_is_rela (unsigned int e_machine)
{
switch (e_machine)
{
@@ -2843,8 +2844,8 @@ usage (FILE *stream)
Dump the contents of section <number|name> as bytes\n\
-p --string-dump=<number|name>\n\
Dump the contents of section <number|name> as strings\n\
- -w[liaprmfFsoR] or\n\
- --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n\
+ -w[liaprmfFsoRM] or\n\
+ --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges,=register]\n\
Display the contents of DWARF2 debug sections\n"));
#ifdef SUPPORT_DISASSEMBLY
fprintf (stream, _("\
@@ -3035,22 +3036,18 @@ parse_args (int argc, char **argv)
switch (optarg[index++])
{
case 'i':
- case 'I':
do_debug_info = 1;
break;
case 'a':
- case 'A':
do_debug_abbrevs = 1;
break;
case 'l':
- case 'L':
do_debug_lines = 1;
break;
case 'p':
- case 'P':
do_debug_pubnames = 1;
break;
@@ -3069,20 +3066,21 @@ parse_args (int argc, char **argv)
break;
case 'm':
- case 'M':
do_debug_macinfo = 1;
break;
case 's':
- case 'S':
do_debug_str = 1;
break;
case 'o':
- case 'O':
do_debug_loc = 1;
break;
+ case 'M':
+ do_dwarf_register = 1;
+ break;
+
default:
warn (_("Unrecognized debug option '%s'\n"), optarg);
break;
@@ -3119,6 +3117,7 @@ parse_args (int argc, char **argv)
with earlier versions of readelf. */
{ "ranges", & do_debug_aranges },
{ "str", & do_debug_str },
+ { "register", & do_dwarf_register },
{ NULL, NULL }
};
@@ -3249,6 +3248,9 @@ process_file_header (void)
return 0;
}
+ if (do_dwarf_register)
+ init_dwarf_regnames (elf_header.e_machine);
+
if (do_header)
{
int i;
--- binutils/gas/testsuite/gas/cfi/cfi-alpha-1.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-alpha-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -10,7 +10,7 @@ The section .eh_frame contains:
Return address column: 26
Augmentation data: 1b
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_nop
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000034
--- binutils/gas/testsuite/gas/cfi/cfi-alpha-3.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-alpha-3.d 2008-01-26 14:11:35.000000000 -0800
@@ -10,7 +10,7 @@ The section .eh_frame contains:
Return address column: 26
Augmentation data: 1b
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_nop
00000014 00000028 00000018 FDE cie=00000000 pc=00000000..00000040
@@ -25,7 +25,7 @@ The section .eh_frame contains:
DW_CFA_advance_loc: 4 to 00000014
DW_CFA_offset: r34 at cfa-8
DW_CFA_advance_loc: 4 to 00000018
- DW_CFA_def_cfa_reg: r15
+ DW_CFA_def_cfa_register: r15
DW_CFA_advance_loc: 36 to 0000003c
DW_CFA_def_cfa: r30 ofs 0
DW_CFA_nop
--- binutils/gas/testsuite/gas/cfi/cfi-hppa-1.d.dw 2006-10-29 17:10:46.000000000 -0800
+++ binutils/gas/testsuite/gas/cfi/cfi-hppa-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -14,19 +14,19 @@ The section .eh_frame contains:
00000014 00000018 00000018 FDE cie=00000000 pc=00000000..00000018
DW_CFA_advance_loc: 8 to 00000008
- DW_CFA_def_cfa_reg: r3
+ DW_CFA_def_cfa_register: r3
DW_CFA_advance_loc: 4 to 0000000c
DW_CFA_def_cfa_offset: 4660
DW_CFA_advance_loc: 8 to 00000014
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_nop
00000030 00000018 00000034 FDE cie=00000000 pc=00000018..00000040
DW_CFA_advance_loc: 12 to 00000024
- DW_CFA_def_cfa_reg: r3
+ DW_CFA_def_cfa_register: r3
DW_CFA_offset: r2 at cfa-24
DW_CFA_advance_loc: 24 to 0000003c
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
--- binutils/gas/testsuite/gas/cfi/cfi-i386.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-i386.d 2008-01-26 14:11:35.000000000 -0800
@@ -26,13 +26,13 @@ The section .eh_frame contains:
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r5 at cfa-8
DW_CFA_advance_loc: 2 to 00000015
- DW_CFA_def_cfa_reg: r5
+ DW_CFA_def_cfa_register: r5
DW_CFA_advance_loc: 9 to 0000001e
- DW_CFA_def_cfa_reg: r4
+ DW_CFA_def_cfa_register: r4
0000004c 00000014 00000050 FDE cie=00000000 pc=0000001f..0000002f
DW_CFA_advance_loc: 2 to 00000021
- DW_CFA_def_cfa_reg: r3
+ DW_CFA_def_cfa_register: r3
DW_CFA_advance_loc: 13 to 0000002e
DW_CFA_def_cfa: r4 ofs 4
--- binutils/gas/testsuite/gas/cfi/cfi-m68k.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-m68k.d 2008-01-26 14:11:35.000000000 -0800
@@ -25,9 +25,9 @@ The section .eh_frame contains:
DW_CFA_advance_loc: 4 to 00000010
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r14 at cfa-8
- DW_CFA_def_cfa_reg: r14
+ DW_CFA_def_cfa_register: r14
DW_CFA_advance_loc: 6 to 00000016
- DW_CFA_def_cfa_reg: r15
+ DW_CFA_def_cfa_register: r15
DW_CFA_nop
0000004c 00000010 00000050 FDE cie=00000000 pc=00000018..0000001c
--- binutils/gas/testsuite/gas/cfi/cfi-mips-1.d.dw 2005-03-14 21:28:17.000000000 -0800
+++ binutils/gas/testsuite/gas/cfi/cfi-mips-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -10,7 +10,7 @@ The section .eh_frame contains:
Return address column: 31
Augmentation data: 0b
- DW_CFA_def_cfa_reg: r29
+ DW_CFA_def_cfa_register: r29
DW_CFA_def_cfa: r29 ofs 0
DW_CFA_nop
DW_CFA_nop
--- binutils/gas/testsuite/gas/cfi/cfi-sh-1.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-sh-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -20,7 +20,7 @@ The section .eh_frame contains:
DW_CFA_offset: r15 at cfa-4
DW_CFA_offset: r17 at cfa-8
DW_CFA_advance_loc: 6 to 0000000a
- DW_CFA_def_cfa_reg: r14
+ DW_CFA_def_cfa_register: r14
DW_CFA_advance_loc: 2 to 0000000c
DW_CFA_def_cfa_offset: 40
DW_CFA_nop
--- binutils/gas/testsuite/gas/cfi/cfi-sparc-1.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-sparc-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -16,7 +16,7 @@ The section .eh_frame contains:
00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000024
DW_CFA_advance_loc: 4 to 00000004
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_GNU_window_save
DW_CFA_register: r15 in r31
--- binutils/gas/testsuite/gas/cfi/cfi-sparc64-1.d.dw 2004-08-15 17:09:20.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-sparc64-1.d 2008-01-26 14:11:35.000000000 -0800
@@ -19,7 +19,7 @@ The section .eh_frame contains:
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000030
DW_CFA_advance_loc: 4 to 00000004
- DW_CFA_def_cfa_reg: r30
+ DW_CFA_def_cfa_register: r30
DW_CFA_GNU_window_save
DW_CFA_register: r15 in r31
--- binutils/gas/testsuite/gas/cfi/cfi-x86_64.d.dw 2007-05-21 11:21:25.000000000 -0700
+++ binutils/gas/testsuite/gas/cfi/cfi-x86_64.d 2008-01-26 14:11:35.000000000 -0800
@@ -26,7 +26,7 @@ The section .eh_frame contains:
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 at cfa-16
DW_CFA_advance_loc: 3 to 00000018
- DW_CFA_def_cfa_reg: r6
+ DW_CFA_def_cfa_register: r6
DW_CFA_advance_loc: 9 to 00000021
DW_CFA_def_cfa: r7 ofs 8
DW_CFA_nop
@@ -35,9 +35,9 @@ The section .eh_frame contains:
00000050 00000014 00000054 FDE cie=00000000 pc=00000022..00000035
DW_CFA_advance_loc: 3 to 00000025
- DW_CFA_def_cfa_reg: r8
+ DW_CFA_def_cfa_register: r8
DW_CFA_advance_loc: 15 to 00000034
- DW_CFA_def_cfa_reg: r7
+ DW_CFA_def_cfa_register: r7
DW_CFA_nop
00000068 00000010 0000006c FDE cie=00000000 pc=00000035..0000003b
@@ -64,7 +64,7 @@ The section .eh_frame contains:
DW_CFA_advance_loc: 1 to 0000004e
DW_CFA_def_cfa_offset: 16
DW_CFA_advance_loc: 1 to 0000004f
- DW_CFA_def_cfa_reg: r8
+ DW_CFA_def_cfa_register: r8
DW_CFA_advance_loc: 1 to 00000050
DW_CFA_def_cfa_offset: 4676
DW_CFA_advance_loc: 1 to 00000051
--- binutils/ld/testsuite/ld-elf/eh1.d.dw 2006-06-19 19:22:16.000000000 -0700
+++ binutils/ld/testsuite/ld-elf/eh1.d 2008-01-26 14:11:35.000000000 -0800
@@ -27,7 +27,7 @@ The section .eh_frame contains:
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 at cfa-16
DW_CFA_advance_loc: 0 to 00400078
- DW_CFA_def_cfa_reg: r6
+ DW_CFA_def_cfa_register: r6
00000038 ZERO terminator
--- binutils/ld/testsuite/ld-elf/eh2.d.dw 2006-06-19 19:22:16.000000000 -0700
+++ binutils/ld/testsuite/ld-elf/eh2.d 2008-01-26 14:11:35.000000000 -0800
@@ -27,7 +27,7 @@ The section .eh_frame contains:
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 at cfa-16
DW_CFA_advance_loc: 0 to 00400078
- DW_CFA_def_cfa_reg: r6
+ DW_CFA_def_cfa_register: r6
00000038 ZERO terminator
--- binutils/ld/testsuite/ld-elf/eh3.d.dw 2006-06-19 19:22:16.000000000 -0700
+++ binutils/ld/testsuite/ld-elf/eh3.d 2008-01-26 14:11:35.000000000 -0800
@@ -27,7 +27,7 @@ The section .eh_frame contains:
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 at cfa-16
DW_CFA_advance_loc: 0 to 00400078
- DW_CFA_def_cfa_reg: r6
+ DW_CFA_def_cfa_register: r6
00000038 ZERO terminator
#pass