binutils/
2008-01-28 H.J. Lu <hongjiu.lu@intel.com> * dwarf.c: Include "elf/common.h". (eh_addr_size): Changed to int. (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): Properly support different address size. Call regname to get register name. (display_debug_frames): Call regname to get register name. 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. * objdump.c: Include "elf-bfd.h". (dump_dwarf): Call init_dwarf_regnames on ELF input. * readelf.c (guess_is_rela): Change argument to int. (parse_args): Remove the undocumented upper case options for -wX. (process_file_header): Call init_dwarf_regnames if do_dwarf_register is true. gas/testsuite/ 2008-01-28 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. * gas/cfi/cfi-common-1.d: Updated for i386/x86-64 register names. * gas/cfi/cfi-common-2.d: Likewise. * gas/cfi/cfi-common-5.d: Likewise. * gas/cfi/cfi-i386.d: Likewise. * gas/cfi/cfi-x86_64.d: Likewise. ld/testsuite/ 2008-01-28 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/eh1.d: Replace DW_CFA_def_cfa_reg with DW_CFA_def_cfa_register. Updated for i386/x86-64 register names. * ld-elf/eh2.d: Likewise. * ld-elf/eh3.d: Likewise. * ld-elf/eh4.d: Likewise. * ld-elf/eh5.d: Likewise.
This commit is contained in:
parent
6e73d59506
commit
2dc4cec1f3
25 changed files with 261 additions and 106 deletions
|
@ -1,3 +1,30 @@
|
||||||
|
2008-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* dwarf.c: Include "elf/common.h".
|
||||||
|
(eh_addr_size): Changed to int.
|
||||||
|
(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): Properly support different address size.
|
||||||
|
Call regname to get register name.
|
||||||
|
(display_debug_frames): Call regname to get register name.
|
||||||
|
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.
|
||||||
|
|
||||||
|
* objdump.c: Include "elf-bfd.h".
|
||||||
|
(dump_dwarf): Call init_dwarf_regnames on ELF input.
|
||||||
|
|
||||||
|
* readelf.c (guess_is_rela): Change argument to int.
|
||||||
|
(parse_args): Remove the undocumented upper case options for
|
||||||
|
-wX.
|
||||||
|
(process_file_header): Call init_dwarf_regnames if
|
||||||
|
do_dwarf_register is true.
|
||||||
|
|
||||||
2008-01-25 DJ Delorie <dj@redhat.com>
|
2008-01-25 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
* readelf.c (process_section_headers): Add m16c handler.
|
* readelf.c (process_section_headers): Add m16c handler.
|
||||||
|
|
159
binutils/dwarf.c
159
binutils/dwarf.c
|
@ -23,6 +23,7 @@
|
||||||
#include "libiberty.h"
|
#include "libiberty.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
#include "bucomm.h"
|
#include "bucomm.h"
|
||||||
|
#include "elf/common.h"
|
||||||
#include "elf/dwarf2.h"
|
#include "elf/dwarf2.h"
|
||||||
#include "dwarf.h"
|
#include "dwarf.h"
|
||||||
|
|
||||||
|
@ -38,7 +39,7 @@ static debug_info *debug_information = NULL;
|
||||||
that the .debug_info section could not be loaded/parsed. */
|
that the .debug_info section could not be loaded/parsed. */
|
||||||
#define DEBUG_INFO_UNAVAILABLE (unsigned int) -1
|
#define DEBUG_INFO_UNAVAILABLE (unsigned int) -1
|
||||||
|
|
||||||
dwarf_vma eh_addr_size;
|
int eh_addr_size;
|
||||||
|
|
||||||
int do_debug_info;
|
int do_debug_info;
|
||||||
int do_debug_abbrevs;
|
int do_debug_abbrevs;
|
||||||
|
@ -3118,6 +3119,87 @@ frame_need_space (Frame_Chunk *fc, int reg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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, int row)
|
||||||
|
{
|
||||||
|
static char reg[64];
|
||||||
|
if (dwarf_regnames
|
||||||
|
&& regno < dwarf_regnames_count
|
||||||
|
&& dwarf_regnames [regno] != NULL)
|
||||||
|
{
|
||||||
|
if (row)
|
||||||
|
return dwarf_regnames [regno];
|
||||||
|
snprintf (reg, sizeof (reg), "r%d (%s)", regno,
|
||||||
|
dwarf_regnames [regno]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
snprintf (reg, sizeof (reg), "r%d", regno);
|
||||||
|
return reg;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
|
frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
|
||||||
{
|
{
|
||||||
|
@ -3129,27 +3211,29 @@ frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
|
||||||
|
|
||||||
if (*need_col_headers)
|
if (*need_col_headers)
|
||||||
{
|
{
|
||||||
|
static const char *loc = " LOC";
|
||||||
|
|
||||||
*need_col_headers = 0;
|
*need_col_headers = 0;
|
||||||
|
|
||||||
printf (" LOC CFA ");
|
printf ("%-*s CFA ", eh_addr_size * 2, loc);
|
||||||
|
|
||||||
for (r = 0; r < *max_regs; r++)
|
for (r = 0; r < *max_regs; r++)
|
||||||
if (fc->col_type[r] != DW_CFA_unreferenced)
|
if (fc->col_type[r] != DW_CFA_unreferenced)
|
||||||
{
|
{
|
||||||
if (r == fc->ra)
|
if (r == fc->ra)
|
||||||
printf ("ra ");
|
printf ("ra ");
|
||||||
else
|
else
|
||||||
printf ("r%-4d", r);
|
printf ("%-5s ", regname (r, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("%08lx ", fc->pc_begin);
|
printf ("%0*lx ", eh_addr_size * 2, fc->pc_begin);
|
||||||
if (fc->cfa_exp)
|
if (fc->cfa_exp)
|
||||||
strcpy (tmp, "exp");
|
strcpy (tmp, "exp");
|
||||||
else
|
else
|
||||||
sprintf (tmp, "r%d%+d", fc->cfa_reg, fc->cfa_offset);
|
sprintf (tmp, "%s%+d", regname (fc->cfa_reg, 1), fc->cfa_offset);
|
||||||
printf ("%-8s ", tmp);
|
printf ("%-8s ", tmp);
|
||||||
|
|
||||||
for (r = 0; r < fc->ncols; r++)
|
for (r = 0; r < fc->ncols; r++)
|
||||||
|
@ -3171,7 +3255,7 @@ frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
|
||||||
sprintf (tmp, "v%+d", fc->col_offset[r]);
|
sprintf (tmp, "v%+d", fc->col_offset[r]);
|
||||||
break;
|
break;
|
||||||
case DW_CFA_register:
|
case DW_CFA_register:
|
||||||
sprintf (tmp, "r%d", fc->col_offset[r]);
|
sprintf (tmp, "%s", regname (fc->col_offset[r], 0));
|
||||||
break;
|
break;
|
||||||
case DW_CFA_expression:
|
case DW_CFA_expression:
|
||||||
strcpy (tmp, "exp");
|
strcpy (tmp, "exp");
|
||||||
|
@ -3183,7 +3267,7 @@ frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
|
||||||
strcpy (tmp, "n/a");
|
strcpy (tmp, "n/a");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
printf ("%-5s", tmp);
|
printf ("%-5s ", tmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
@ -3631,15 +3715,15 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
case DW_CFA_offset:
|
case DW_CFA_offset:
|
||||||
roffs = LEB ();
|
roffs = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_offset: r%d at cfa%+ld\n",
|
printf (" DW_CFA_offset: %s at cfa%+ld\n",
|
||||||
opa, roffs * fc->data_factor);
|
regname (opa, 0), roffs * fc->data_factor);
|
||||||
fc->col_type[opa] = DW_CFA_offset;
|
fc->col_type[opa] = DW_CFA_offset;
|
||||||
fc->col_offset[opa] = roffs * fc->data_factor;
|
fc->col_offset[opa] = roffs * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_CFA_restore:
|
case DW_CFA_restore:
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_restore: r%d\n", opa);
|
printf (" DW_CFA_restore: %s\n", regname (opa, 0));
|
||||||
fc->col_type[opa] = cie->col_type[opa];
|
fc->col_type[opa] = cie->col_type[opa];
|
||||||
fc->col_offset[opa] = cie->col_offset[opa];
|
fc->col_offset[opa] = cie->col_offset[opa];
|
||||||
break;
|
break;
|
||||||
|
@ -3693,8 +3777,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
roffs = LEB ();
|
roffs = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_offset_extended: r%ld at cfa%+ld\n",
|
printf (" DW_CFA_offset_extended: %s at cfa%+ld\n",
|
||||||
reg, roffs * fc->data_factor);
|
regname (reg, 0), roffs * fc->data_factor);
|
||||||
fc->col_type[reg] = DW_CFA_offset;
|
fc->col_type[reg] = DW_CFA_offset;
|
||||||
fc->col_offset[reg] = roffs * fc->data_factor;
|
fc->col_offset[reg] = roffs * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
@ -3703,8 +3787,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
roffs = LEB ();
|
roffs = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_val_offset: r%ld at cfa%+ld\n",
|
printf (" DW_CFA_val_offset: %s at cfa%+ld\n",
|
||||||
reg, roffs * fc->data_factor);
|
regname (reg, 0), roffs * fc->data_factor);
|
||||||
fc->col_type[reg] = DW_CFA_val_offset;
|
fc->col_type[reg] = DW_CFA_val_offset;
|
||||||
fc->col_offset[reg] = roffs * fc->data_factor;
|
fc->col_offset[reg] = roffs * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
@ -3712,7 +3796,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
case DW_CFA_restore_extended:
|
case DW_CFA_restore_extended:
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_restore_extended: r%ld\n", reg);
|
printf (" DW_CFA_restore_extended: %s\n",
|
||||||
|
regname (reg, 0));
|
||||||
fc->col_type[reg] = cie->col_type[reg];
|
fc->col_type[reg] = cie->col_type[reg];
|
||||||
fc->col_offset[reg] = cie->col_offset[reg];
|
fc->col_offset[reg] = cie->col_offset[reg];
|
||||||
break;
|
break;
|
||||||
|
@ -3720,7 +3805,7 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
case DW_CFA_undefined:
|
case DW_CFA_undefined:
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_undefined: r%ld\n", reg);
|
printf (" DW_CFA_undefined: %s\n", regname (reg, 0));
|
||||||
fc->col_type[reg] = DW_CFA_undefined;
|
fc->col_type[reg] = DW_CFA_undefined;
|
||||||
fc->col_offset[reg] = 0;
|
fc->col_offset[reg] = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -3728,7 +3813,7 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
case DW_CFA_same_value:
|
case DW_CFA_same_value:
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_same_value: r%ld\n", reg);
|
printf (" DW_CFA_same_value: %s\n", regname (reg, 0));
|
||||||
fc->col_type[reg] = DW_CFA_same_value;
|
fc->col_type[reg] = DW_CFA_same_value;
|
||||||
fc->col_offset[reg] = 0;
|
fc->col_offset[reg] = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -3737,7 +3822,11 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
reg = LEB ();
|
reg = LEB ();
|
||||||
roffs = LEB ();
|
roffs = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_register: r%ld in r%ld\n", reg, roffs);
|
{
|
||||||
|
printf (" DW_CFA_register: %s in ",
|
||||||
|
regname (reg, 0));
|
||||||
|
puts (regname (roffs, 0));
|
||||||
|
}
|
||||||
fc->col_type[reg] = DW_CFA_register;
|
fc->col_type[reg] = DW_CFA_register;
|
||||||
fc->col_offset[reg] = roffs;
|
fc->col_offset[reg] = roffs;
|
||||||
break;
|
break;
|
||||||
|
@ -3779,15 +3868,16 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
fc->cfa_offset = LEB ();
|
fc->cfa_offset = LEB ();
|
||||||
fc->cfa_exp = 0;
|
fc->cfa_exp = 0;
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_def_cfa: r%d ofs %d\n",
|
printf (" DW_CFA_def_cfa: %s ofs %d\n",
|
||||||
fc->cfa_reg, fc->cfa_offset);
|
regname (fc->cfa_reg, 0), fc->cfa_offset);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_CFA_def_cfa_register:
|
case DW_CFA_def_cfa_register:
|
||||||
fc->cfa_reg = LEB ();
|
fc->cfa_reg = LEB ();
|
||||||
fc->cfa_exp = 0;
|
fc->cfa_exp = 0;
|
||||||
if (! do_debug_frames_interp)
|
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, 0));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_CFA_def_cfa_offset:
|
case DW_CFA_def_cfa_offset:
|
||||||
|
@ -3818,8 +3908,10 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
ul = LEB ();
|
ul = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
{
|
{
|
||||||
printf (" DW_CFA_expression: r%ld (", reg);
|
printf (" DW_CFA_expression: %s (",
|
||||||
decode_location_expression (start, eh_addr_size, ul, 0);
|
regname (reg, 0));
|
||||||
|
decode_location_expression (start, eh_addr_size,
|
||||||
|
ul, 0);
|
||||||
printf (")\n");
|
printf (")\n");
|
||||||
}
|
}
|
||||||
fc->col_type[reg] = DW_CFA_expression;
|
fc->col_type[reg] = DW_CFA_expression;
|
||||||
|
@ -3831,7 +3923,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
ul = LEB ();
|
ul = LEB ();
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
{
|
{
|
||||||
printf (" DW_CFA_val_expression: r%ld (", reg);
|
printf (" DW_CFA_val_expression: %s (",
|
||||||
|
regname (reg, 0));
|
||||||
decode_location_expression (start, eh_addr_size, ul, 0);
|
decode_location_expression (start, eh_addr_size, ul, 0);
|
||||||
printf (")\n");
|
printf (")\n");
|
||||||
}
|
}
|
||||||
|
@ -3844,8 +3937,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
l = SLEB ();
|
l = SLEB ();
|
||||||
frame_need_space (fc, reg);
|
frame_need_space (fc, reg);
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_offset_extended_sf: r%ld at cfa%+ld\n",
|
printf (" DW_CFA_offset_extended_sf: %s at cfa%+ld\n",
|
||||||
reg, l * fc->data_factor);
|
regname (reg, 0), l * fc->data_factor);
|
||||||
fc->col_type[reg] = DW_CFA_offset;
|
fc->col_type[reg] = DW_CFA_offset;
|
||||||
fc->col_offset[reg] = l * fc->data_factor;
|
fc->col_offset[reg] = l * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
@ -3855,8 +3948,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
l = SLEB ();
|
l = SLEB ();
|
||||||
frame_need_space (fc, reg);
|
frame_need_space (fc, reg);
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_val_offset_sf: r%ld at cfa%+ld\n",
|
printf (" DW_CFA_val_offset_sf: %s at cfa%+ld\n",
|
||||||
reg, l * fc->data_factor);
|
regname (reg, 0), l * fc->data_factor);
|
||||||
fc->col_type[reg] = DW_CFA_val_offset;
|
fc->col_type[reg] = DW_CFA_val_offset;
|
||||||
fc->col_offset[reg] = l * fc->data_factor;
|
fc->col_offset[reg] = l * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
@ -3867,8 +3960,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
fc->cfa_offset = fc->cfa_offset * fc->data_factor;
|
fc->cfa_offset = fc->cfa_offset * fc->data_factor;
|
||||||
fc->cfa_exp = 0;
|
fc->cfa_exp = 0;
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_def_cfa_sf: r%d ofs %d\n",
|
printf (" DW_CFA_def_cfa_sf: %s ofs %d\n",
|
||||||
fc->cfa_reg, fc->cfa_offset);
|
regname (fc->cfa_reg, 0), fc->cfa_offset);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_CFA_def_cfa_offset_sf:
|
case DW_CFA_def_cfa_offset_sf:
|
||||||
|
@ -3905,8 +3998,8 @@ display_debug_frames (struct dwarf_section *section,
|
||||||
l = - LEB ();
|
l = - LEB ();
|
||||||
frame_need_space (fc, reg);
|
frame_need_space (fc, reg);
|
||||||
if (! do_debug_frames_interp)
|
if (! do_debug_frames_interp)
|
||||||
printf (" DW_CFA_GNU_negative_offset_extended: r%ld at cfa%+ld\n",
|
printf (" DW_CFA_GNU_negative_offset_extended: %s at cfa%+ld\n",
|
||||||
reg, l * fc->data_factor);
|
regname (reg, 0), l * fc->data_factor);
|
||||||
fc->col_type[reg] = DW_CFA_offset;
|
fc->col_type[reg] = DW_CFA_offset;
|
||||||
fc->col_offset[reg] = l * fc->data_factor;
|
fc->col_offset[reg] = l * fc->data_factor;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -91,7 +91,7 @@ extern dwarf_vma (*byte_get) (unsigned char *, int);
|
||||||
extern dwarf_vma byte_get_little_endian (unsigned char *, int);
|
extern dwarf_vma byte_get_little_endian (unsigned char *, int);
|
||||||
extern dwarf_vma byte_get_big_endian (unsigned char *, int);
|
extern dwarf_vma byte_get_big_endian (unsigned char *, int);
|
||||||
|
|
||||||
extern dwarf_vma eh_addr_size;
|
extern int eh_addr_size;
|
||||||
|
|
||||||
extern int do_debug_info;
|
extern int do_debug_info;
|
||||||
extern int do_debug_abbrevs;
|
extern int do_debug_abbrevs;
|
||||||
|
@ -105,6 +105,8 @@ extern int do_debug_macinfo;
|
||||||
extern int do_debug_str;
|
extern int do_debug_str;
|
||||||
extern int do_debug_loc;
|
extern int do_debug_loc;
|
||||||
|
|
||||||
|
extern void init_dwarf_regnames (unsigned int);
|
||||||
|
|
||||||
extern int load_debug_section (enum dwarf_section_display_enum,
|
extern int load_debug_section (enum dwarf_section_display_enum,
|
||||||
void *);
|
void *);
|
||||||
extern void free_debug_section (enum dwarf_section_display_enum);
|
extern void free_debug_section (enum dwarf_section_display_enum);
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
|
|
||||||
#include "sysdep.h"
|
#include "sysdep.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
|
#include "elf-bfd.h"
|
||||||
#include "progress.h"
|
#include "progress.h"
|
||||||
#include "bucomm.h"
|
#include "bucomm.h"
|
||||||
#include "dwarf.h"
|
#include "dwarf.h"
|
||||||
|
@ -2186,6 +2187,12 @@ dump_dwarf (bfd *abfd)
|
||||||
|
|
||||||
check_mach_o_dwarf (abfd);
|
check_mach_o_dwarf (abfd);
|
||||||
|
|
||||||
|
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||||
|
{
|
||||||
|
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
|
||||||
|
init_dwarf_regnames (bed->elf_machine_code);
|
||||||
|
}
|
||||||
|
|
||||||
bfd_map_over_sections (abfd, dump_dwarf_section, NULL);
|
bfd_map_over_sections (abfd, dump_dwarf_section, NULL);
|
||||||
|
|
||||||
free_debug_memory ();
|
free_debug_memory ();
|
||||||
|
|
|
@ -624,7 +624,7 @@ find_section (const char *name)
|
||||||
/* Guess the relocation size commonly used by the specific machines. */
|
/* Guess the relocation size commonly used by the specific machines. */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
guess_is_rela (unsigned long e_machine)
|
guess_is_rela (unsigned int e_machine)
|
||||||
{
|
{
|
||||||
switch (e_machine)
|
switch (e_machine)
|
||||||
{
|
{
|
||||||
|
@ -3032,22 +3032,18 @@ parse_args (int argc, char **argv)
|
||||||
switch (optarg[index++])
|
switch (optarg[index++])
|
||||||
{
|
{
|
||||||
case 'i':
|
case 'i':
|
||||||
case 'I':
|
|
||||||
do_debug_info = 1;
|
do_debug_info = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'a':
|
case 'a':
|
||||||
case 'A':
|
|
||||||
do_debug_abbrevs = 1;
|
do_debug_abbrevs = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
case 'L':
|
|
||||||
do_debug_lines = 1;
|
do_debug_lines = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'p':
|
case 'p':
|
||||||
case 'P':
|
|
||||||
do_debug_pubnames = 1;
|
do_debug_pubnames = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3066,17 +3062,14 @@ parse_args (int argc, char **argv)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'm':
|
case 'm':
|
||||||
case 'M':
|
|
||||||
do_debug_macinfo = 1;
|
do_debug_macinfo = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 's':
|
case 's':
|
||||||
case 'S':
|
|
||||||
do_debug_str = 1;
|
do_debug_str = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'o':
|
case 'o':
|
||||||
case 'O':
|
|
||||||
do_debug_loc = 1;
|
do_debug_loc = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3246,6 +3239,8 @@ process_file_header (void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init_dwarf_regnames (elf_header.e_machine);
|
||||||
|
|
||||||
if (do_header)
|
if (do_header)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
2008-01-28 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.
|
||||||
|
|
||||||
|
* gas/cfi/cfi-common-1.d: Updated for i386/x86-64 register
|
||||||
|
names.
|
||||||
|
* gas/cfi/cfi-common-2.d: Likewise.
|
||||||
|
* gas/cfi/cfi-common-5.d: Likewise.
|
||||||
|
* gas/cfi/cfi-i386.d: Likewise.
|
||||||
|
* gas/cfi/cfi-x86_64.d: Likewise.
|
||||||
|
|
||||||
2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
|
2008-01-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* gas/i386/x86-64-sib.s: Add tests for r12.
|
* gas/i386/x86-64-sib.s: Add tests for r12.
|
||||||
|
|
|
@ -10,7 +10,7 @@ The section .eh_frame contains:
|
||||||
Return address column: 26
|
Return address column: 26
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa_reg: r30
|
DW_CFA_def_cfa_register: r30
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000034
|
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000034
|
||||||
|
|
|
@ -10,7 +10,7 @@ The section .eh_frame contains:
|
||||||
Return address column: 26
|
Return address column: 26
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa_reg: r30
|
DW_CFA_def_cfa_register: r30
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
00000014 00000028 00000018 FDE cie=00000000 pc=00000000..00000040
|
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_advance_loc: 4 to 00000014
|
||||||
DW_CFA_offset: r34 at cfa-8
|
DW_CFA_offset: r34 at cfa-8
|
||||||
DW_CFA_advance_loc: 4 to 00000018
|
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_advance_loc: 36 to 0000003c
|
||||||
DW_CFA_def_cfa: r30 ofs 0
|
DW_CFA_def_cfa: r30 ofs 0
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -16,8 +16,8 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
00000014 00000018 00000018 FDE cie=00000000 pc=.*
|
00000014 00000018 00000018 FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_offset: r1 at cfa-8
|
DW_CFA_offset: r1( \((rdx|ecx)\)|) at cfa-8
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa_offset: 32
|
DW_CFA_def_cfa_offset: 32
|
||||||
DW_CFA_offset: r2 at cfa-24
|
DW_CFA_offset: r2( \((rcx|edx)\)|) at cfa-24
|
||||||
|
|
|
@ -12,7 +12,7 @@ The section .eh_frame contains:
|
||||||
#...
|
#...
|
||||||
00000014 000000[12][c0] 00000018 FDE cie=00000000 pc=.*
|
00000014 000000[12][c0] 00000018 FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_remember_state
|
DW_CFA_remember_state
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
|
|
|
@ -18,7 +18,7 @@ The section .eh_frame contains:
|
||||||
#...
|
#...
|
||||||
0000002c 0000001[48] 00000030 FDE cie=00000000 pc=.*
|
0000002c 0000001[48] 00000030 FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa_offset: 0
|
DW_CFA_def_cfa_offset: 0
|
||||||
#pass
|
#pass
|
||||||
|
|
|
@ -14,19 +14,19 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
00000014 00000018 00000018 FDE cie=00000000 pc=00000000..00000018
|
00000014 00000018 00000018 FDE cie=00000000 pc=00000000..00000018
|
||||||
DW_CFA_advance_loc: 8 to 00000008
|
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_advance_loc: 4 to 0000000c
|
||||||
DW_CFA_def_cfa_offset: 4660
|
DW_CFA_def_cfa_offset: 4660
|
||||||
DW_CFA_advance_loc: 8 to 00000014
|
DW_CFA_advance_loc: 8 to 00000014
|
||||||
DW_CFA_def_cfa_reg: r30
|
DW_CFA_def_cfa_register: r30
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
00000030 00000018 00000034 FDE cie=00000000 pc=00000018..00000040
|
00000030 00000018 00000034 FDE cie=00000000 pc=00000018..00000040
|
||||||
DW_CFA_advance_loc: 12 to 00000024
|
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_offset: r2 at cfa-24
|
||||||
DW_CFA_advance_loc: 24 to 0000003c
|
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
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -10,8 +10,8 @@ The section .eh_frame contains:
|
||||||
Return address column: 8
|
Return address column: 8
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa: r4 ofs 4
|
DW_CFA_def_cfa: r4 \(esp\) ofs 4
|
||||||
DW_CFA_offset: r8 at cfa-4
|
DW_CFA_offset: r8 \(eip\) at cfa-4
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
|
@ -24,17 +24,17 @@ The section .eh_frame contains:
|
||||||
00000030 00000018 00000034 FDE cie=00000000 pc=00000012..0000001f
|
00000030 00000018 00000034 FDE cie=00000000 pc=00000012..0000001f
|
||||||
DW_CFA_advance_loc: 1 to 00000013
|
DW_CFA_advance_loc: 1 to 00000013
|
||||||
DW_CFA_def_cfa_offset: 8
|
DW_CFA_def_cfa_offset: 8
|
||||||
DW_CFA_offset: r5 at cfa-8
|
DW_CFA_offset: r5 \(ebp\) at cfa-8
|
||||||
DW_CFA_advance_loc: 2 to 00000015
|
DW_CFA_advance_loc: 2 to 00000015
|
||||||
DW_CFA_def_cfa_reg: r5
|
DW_CFA_def_cfa_register: r5 \(ebp\)
|
||||||
DW_CFA_advance_loc: 9 to 0000001e
|
DW_CFA_advance_loc: 9 to 0000001e
|
||||||
DW_CFA_def_cfa_reg: r4
|
DW_CFA_def_cfa_register: r4 \(esp\)
|
||||||
|
|
||||||
0000004c 00000014 00000050 FDE cie=00000000 pc=0000001f..0000002f
|
0000004c 00000014 00000050 FDE cie=00000000 pc=0000001f..0000002f
|
||||||
DW_CFA_advance_loc: 2 to 00000021
|
DW_CFA_advance_loc: 2 to 00000021
|
||||||
DW_CFA_def_cfa_reg: r3
|
DW_CFA_def_cfa_register: r3 \(ebx\)
|
||||||
DW_CFA_advance_loc: 13 to 0000002e
|
DW_CFA_advance_loc: 13 to 0000002e
|
||||||
DW_CFA_def_cfa: r4 ofs 4
|
DW_CFA_def_cfa: r4 \(esp\) ofs 4
|
||||||
|
|
||||||
00000064 00000010 00000068 FDE cie=00000000 pc=0000002f..00000035
|
00000064 00000010 00000068 FDE cie=00000000 pc=0000002f..00000035
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -25,9 +25,9 @@ The section .eh_frame contains:
|
||||||
DW_CFA_advance_loc: 4 to 00000010
|
DW_CFA_advance_loc: 4 to 00000010
|
||||||
DW_CFA_def_cfa_offset: 8
|
DW_CFA_def_cfa_offset: 8
|
||||||
DW_CFA_offset: r14 at cfa-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_advance_loc: 6 to 00000016
|
||||||
DW_CFA_def_cfa_reg: r15
|
DW_CFA_def_cfa_register: r15
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
0000004c 00000010 00000050 FDE cie=00000000 pc=00000018..0000001c
|
0000004c 00000010 00000050 FDE cie=00000000 pc=00000018..0000001c
|
||||||
|
|
|
@ -10,7 +10,7 @@ The section .eh_frame contains:
|
||||||
Return address column: 31
|
Return address column: 31
|
||||||
Augmentation data: 0b
|
Augmentation data: 0b
|
||||||
|
|
||||||
DW_CFA_def_cfa_reg: r29
|
DW_CFA_def_cfa_register: r29
|
||||||
DW_CFA_def_cfa: r29 ofs 0
|
DW_CFA_def_cfa: r29 ofs 0
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -20,7 +20,7 @@ The section .eh_frame contains:
|
||||||
DW_CFA_offset: r15 at cfa-4
|
DW_CFA_offset: r15 at cfa-4
|
||||||
DW_CFA_offset: r17 at cfa-8
|
DW_CFA_offset: r17 at cfa-8
|
||||||
DW_CFA_advance_loc: 6 to 0000000a
|
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_advance_loc: 2 to 0000000c
|
||||||
DW_CFA_def_cfa_offset: 40
|
DW_CFA_def_cfa_offset: 40
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -16,7 +16,7 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000024
|
00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000024
|
||||||
DW_CFA_advance_loc: 4 to 00000004
|
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_GNU_window_save
|
||||||
DW_CFA_register: r15 in r31
|
DW_CFA_register: r15 in r31
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000030
|
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000030
|
||||||
DW_CFA_advance_loc: 4 to 00000004
|
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_GNU_window_save
|
||||||
DW_CFA_register: r15 in r31
|
DW_CFA_register: r15 in r31
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ The section .eh_frame contains:
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_offset: r16 at cfa-8
|
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
|
@ -24,20 +24,20 @@ The section .eh_frame contains:
|
||||||
00000030 0000001c 00000034 FDE cie=00000000 pc=00000014..00000022
|
00000030 0000001c 00000034 FDE cie=00000000 pc=00000014..00000022
|
||||||
DW_CFA_advance_loc: 1 to 00000015
|
DW_CFA_advance_loc: 1 to 00000015
|
||||||
DW_CFA_def_cfa_offset: 16
|
DW_CFA_def_cfa_offset: 16
|
||||||
DW_CFA_offset: r6 at cfa-16
|
DW_CFA_offset: r6 \(rbp\) at cfa-16
|
||||||
DW_CFA_advance_loc: 3 to 00000018
|
DW_CFA_advance_loc: 3 to 00000018
|
||||||
DW_CFA_def_cfa_reg: r6
|
DW_CFA_def_cfa_register: r6 \(rbp\)
|
||||||
DW_CFA_advance_loc: 9 to 00000021
|
DW_CFA_advance_loc: 9 to 00000021
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
00000050 00000014 00000054 FDE cie=00000000 pc=00000022..00000035
|
00000050 00000014 00000054 FDE cie=00000000 pc=00000022..00000035
|
||||||
DW_CFA_advance_loc: 3 to 00000025
|
DW_CFA_advance_loc: 3 to 00000025
|
||||||
DW_CFA_def_cfa_reg: r8
|
DW_CFA_def_cfa_register: r8 \(r8\)
|
||||||
DW_CFA_advance_loc: 15 to 00000034
|
DW_CFA_advance_loc: 15 to 00000034
|
||||||
DW_CFA_def_cfa_reg: r7
|
DW_CFA_def_cfa_register: r7 \(rsp\)
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
00000068 00000010 0000006c FDE cie=00000000 pc=00000035..0000003b
|
00000068 00000010 0000006c FDE cie=00000000 pc=00000035..0000003b
|
||||||
|
@ -58,27 +58,27 @@ The section .eh_frame contains:
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
|
|
||||||
000000a4 00000030 00000018 FDE cie=00000090 pc=0000004d..00000058
|
000000a4 00000030 00000018 FDE cie=00000090 pc=0000004d..00000058
|
||||||
DW_CFA_advance_loc: 1 to 0000004e
|
DW_CFA_advance_loc: 1 to 0000004e
|
||||||
DW_CFA_def_cfa_offset: 16
|
DW_CFA_def_cfa_offset: 16
|
||||||
DW_CFA_advance_loc: 1 to 0000004f
|
DW_CFA_advance_loc: 1 to 0000004f
|
||||||
DW_CFA_def_cfa_reg: r8
|
DW_CFA_def_cfa_register: r8 \(r8\)
|
||||||
DW_CFA_advance_loc: 1 to 00000050
|
DW_CFA_advance_loc: 1 to 00000050
|
||||||
DW_CFA_def_cfa_offset: 4676
|
DW_CFA_def_cfa_offset: 4676
|
||||||
DW_CFA_advance_loc: 1 to 00000051
|
DW_CFA_advance_loc: 1 to 00000051
|
||||||
DW_CFA_offset_extended_sf: r4 at cfa\+16
|
DW_CFA_offset_extended_sf: r4 \(rsi\) at cfa\+16
|
||||||
DW_CFA_advance_loc: 1 to 00000052
|
DW_CFA_advance_loc: 1 to 00000052
|
||||||
DW_CFA_register: r8 in r9
|
DW_CFA_register: r8 \(r8\) in r9 \(r9\)
|
||||||
DW_CFA_advance_loc: 1 to 00000053
|
DW_CFA_advance_loc: 1 to 00000053
|
||||||
DW_CFA_remember_state
|
DW_CFA_remember_state
|
||||||
DW_CFA_advance_loc: 1 to 00000054
|
DW_CFA_advance_loc: 1 to 00000054
|
||||||
DW_CFA_restore: r6
|
DW_CFA_restore: r6 \(rbp\)
|
||||||
DW_CFA_advance_loc: 1 to 00000055
|
DW_CFA_advance_loc: 1 to 00000055
|
||||||
DW_CFA_undefined: r16
|
DW_CFA_undefined: r16 \(rip\)
|
||||||
DW_CFA_advance_loc: 1 to 00000056
|
DW_CFA_advance_loc: 1 to 00000056
|
||||||
DW_CFA_same_value: r3
|
DW_CFA_same_value: r3 \(rbx\)
|
||||||
DW_CFA_advance_loc: 1 to 00000057
|
DW_CFA_advance_loc: 1 to 00000057
|
||||||
DW_CFA_restore_state
|
DW_CFA_restore_state
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
2008-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* ld-elf/eh1.d: Replace DW_CFA_def_cfa_reg with
|
||||||
|
DW_CFA_def_cfa_register. Updated for i386/x86-64 register
|
||||||
|
names.
|
||||||
|
* ld-elf/eh2.d: Likewise.
|
||||||
|
* ld-elf/eh3.d: Likewise.
|
||||||
|
* ld-elf/eh4.d: Likewise.
|
||||||
|
* ld-elf/eh5.d: Likewise.
|
||||||
|
|
||||||
2008-01-28 Alan Modra <amodra@bigpond.net.au>
|
2008-01-28 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* ld-spu/ovl.d: Update.
|
* ld-spu/ovl.d: Update.
|
||||||
|
|
|
@ -13,8 +13,8 @@ The section .eh_frame contains:
|
||||||
Data alignment factor: -8
|
Data alignment factor: -8
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_offset: r16 at cfa-8
|
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -25,9 +25,9 @@ The section .eh_frame contains:
|
||||||
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_offset: 16
|
DW_CFA_def_cfa_offset: 16
|
||||||
DW_CFA_offset: r6 at cfa-16
|
DW_CFA_offset: r6 \(rbp\) at cfa-16
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_reg: r6
|
DW_CFA_def_cfa_register: r6 \(rbp\)
|
||||||
|
|
||||||
00000038 ZERO terminator
|
00000038 ZERO terminator
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ The section .eh_frame contains:
|
||||||
Data alignment factor: -8
|
Data alignment factor: -8
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_offset: r16 at cfa-8
|
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -25,9 +25,9 @@ The section .eh_frame contains:
|
||||||
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_offset: 16
|
DW_CFA_def_cfa_offset: 16
|
||||||
DW_CFA_offset: r6 at cfa-16
|
DW_CFA_offset: r6 \(rbp\) at cfa-16
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_reg: r6
|
DW_CFA_def_cfa_register: r6 \(rbp\)
|
||||||
|
|
||||||
00000038 ZERO terminator
|
00000038 ZERO terminator
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,8 @@ The section .eh_frame contains:
|
||||||
Data alignment factor: -8
|
Data alignment factor: -8
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_offset: r16 at cfa-8
|
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -25,9 +25,9 @@ The section .eh_frame contains:
|
||||||
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
00000018 0000001c 0000001c FDE cie=00000000 pc=00400078..00400078
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_offset: 16
|
DW_CFA_def_cfa_offset: 16
|
||||||
DW_CFA_offset: r6 at cfa-16
|
DW_CFA_offset: r6 \(rbp\) at cfa-16
|
||||||
DW_CFA_advance_loc: 0 to 00400078
|
DW_CFA_advance_loc: 0 to 00400078
|
||||||
DW_CFA_def_cfa_reg: r6
|
DW_CFA_def_cfa_register: r6 \(rbp\)
|
||||||
|
|
||||||
00000038 ZERO terminator
|
00000038 ZERO terminator
|
||||||
#pass
|
#pass
|
||||||
|
|
|
@ -14,8 +14,8 @@ The section .eh_frame contains:
|
||||||
Return address column: 16
|
Return address column: 16
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa: r7 ofs 8
|
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
|
||||||
DW_CFA_offset: r16 at cfa-8
|
DW_CFA_offset: r16 \(rip\) at cfa-8
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ The section .eh_frame contains:
|
||||||
#...
|
#...
|
||||||
0000001[48] 00000014 0000001[8c] FDE cie=00000000 pc=.*
|
0000001[48] 00000014 0000001[8c] FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -38,14 +38,14 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
0000004[48] 00000014 0000001c FDE cie=000000(2c|30) pc=.*
|
0000004[48] 00000014 0000001c FDE cie=000000(2c|30) pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
000000(5c|60) 00000014 0000006[04] FDE cie=00000000 pc=.*
|
000000(5c|60) 00000014 0000006[04] FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -66,7 +66,7 @@ The section .eh_frame contains:
|
||||||
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
||||||
|
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -79,7 +79,7 @@ The section .eh_frame contains:
|
||||||
Return address column: .*
|
Return address column: .*
|
||||||
Augmentation data: 1b
|
Augmentation data: 1b
|
||||||
|
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
#...
|
#...
|
||||||
000000(c4|d0) 0000001[04] 0000001[8c] FDE cie=000000b[08] pc=.*
|
000000(c4|d0) 0000001[04] 0000001[8c] FDE cie=000000b[08] pc=.*
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -98,7 +98,7 @@ The section .eh_frame contains:
|
||||||
|
|
||||||
00000(0f|10)0 00000014 0000001c FDE cie=000000[de]8 pc=.*
|
00000(0f|10)0 00000014 0000001c FDE cie=000000[de]8 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -124,28 +124,28 @@ The section .eh_frame contains:
|
||||||
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
||||||
|
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
000001(58|70) 00000014 000001(5c|74) FDE cie=00000000 pc=.*
|
000001(58|70) 00000014 000001(5c|74) FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
000001(70|88) 00000014 000001(48|5c) FDE cie=000000(2c|30) pc=.*
|
000001(70|88) 00000014 000001(48|5c) FDE cie=000000(2c|30) pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
||||||
000001(88|a0) 00000014 000001(8c|a4) FDE cie=00000000 pc=.*
|
000001(88|a0) 00000014 000001(8c|a4) FDE cie=00000000 pc=.*
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
@ -154,7 +154,7 @@ The section .eh_frame contains:
|
||||||
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
Augmentation data: (ef be ad de 00 00 00 00|00 00 00 00 de ad be ef)
|
||||||
|
|
||||||
DW_CFA_advance_loc: 4 to .*
|
DW_CFA_advance_loc: 4 to .*
|
||||||
DW_CFA_def_cfa: r0 ofs 16
|
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
|
|
Loading…
Reference in a new issue