This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

readelf eh_frame dump


I was using readelf -wf and -wF the other day on relocatable files, and
noticed that pc ranges and offsets were wrong.  After a little while, I
became sufficiently annoyed at needing to make pcrel adjustments that I
fixed the problem.

binutils/ChangeLog
	* readelf.c (debug_apply_rela_addends): New function, extracted from..
	(display_debug_info): ..here.
	(display_debug_frames): Call debug_apply_rela_addends.  Don't do
	DW_EH_PE_pcrel adjustment for ET_REL.

gas/testsuite/ChangeLog
	* gas/cfi/cfi-alpha-1.d: Adjust for readelf fix.
	* gas/cfi/cfi-alpha-3.d: Likewise.
	* gas/cfi/cfi-i386.d: Likewise.
	* gas/cfi/cfi-m68k.d: Likewise.
	* gas/cfi/cfi-ppc-1.d: Likewise.
	* gas/cfi/cfi-s390-1.d: Likewise.
	* gas/cfi/cfi-s390x-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.

Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.249
diff -u -p -r1.249 readelf.c
--- binutils/readelf.c	6 Aug 2004 13:13:30 -0000	1.249
+++ binutils/readelf.c	15 Aug 2004 23:44:43 -0000
@@ -8506,6 +8506,88 @@ read_and_display_attr (unsigned long att
   return data;
 }
 
+/* Apply addends of RELA relocations.  */
+
+static int
+debug_apply_rela_addends (FILE *file,
+			  Elf_Internal_Shdr *section,
+			  int reloc_size,
+			  unsigned char *sec_data,
+			  unsigned char *start,
+			  unsigned char *end)
+{
+  Elf_Internal_Shdr *relsec;
+
+  if (end - start < reloc_size)
+    return 1;
+
+  for (relsec = section_headers;
+       relsec < section_headers + elf_header.e_shnum;
+       ++relsec)
+    {
+      unsigned long nrelas;
+      Elf_Internal_Rela *rela, *rp;
+      Elf_Internal_Shdr *symsec;
+      Elf_Internal_Sym *symtab;
+      Elf_Internal_Sym *sym;
+
+      if (relsec->sh_type != SHT_RELA
+	  || SECTION_HEADER (relsec->sh_info) != section
+	  || relsec->sh_size == 0)
+	continue;
+
+      if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
+			      &rela, &nrelas))
+	return 0;
+
+      symsec = SECTION_HEADER (relsec->sh_link);
+      symtab = GET_ELF_SYMBOLS (file, symsec);
+
+      for (rp = rela; rp < rela + nrelas; ++rp)
+	{
+	  unsigned char *loc;
+
+	  if (rp->r_offset >= (bfd_vma) (start - sec_data)
+	      && rp->r_offset < (bfd_vma) (end - sec_data) - reloc_size)
+	    loc = sec_data + rp->r_offset;
+	  else
+	    continue;
+
+	  if (is_32bit_elf)
+	    {
+	      sym = symtab + ELF32_R_SYM (rp->r_info);
+
+	      if (ELF32_R_SYM (rp->r_info) != 0
+		  && ELF32_ST_TYPE (sym->st_info) != STT_SECTION)
+		{
+		  warn (_("Skipping unexpected symbol type %u\n"),
+			ELF32_ST_TYPE (sym->st_info));
+		  continue;
+		}
+	    }
+	  else
+	    {
+	      sym = symtab + ELF64_R_SYM (rp->r_info);
+
+	      if (ELF64_R_SYM (rp->r_info) != 0
+		  && ELF64_ST_TYPE (sym->st_info) != STT_SECTION)
+		{
+		  warn (_("Skipping unexpected symbol type %u\n"),
+			ELF64_ST_TYPE (sym->st_info));
+		  continue;
+		}
+	    }
+
+	  byte_put (loc, rp->r_addend, reloc_size);
+	}
+
+      free (symtab);
+      free (rela);
+      break;
+    }
+  return 1;
+}
+
 static int
 display_debug_info (Elf_Internal_Shdr *section,
 		    unsigned char *start,
@@ -8522,7 +8604,6 @@ display_debug_info (Elf_Internal_Shdr *s
   while (start < end)
     {
       DWARF2_Internal_CompUnit compunit;
-      Elf_Internal_Shdr *relsec;
       unsigned char *hdrptr;
       unsigned char *cu_abbrev_offset_ptr;
       unsigned char *tags;
@@ -8552,71 +8633,12 @@ display_debug_info (Elf_Internal_Shdr *s
       compunit.cu_version = byte_get (hdrptr, 2);
       hdrptr += 2;
 
-      /* Apply addends of RELA relocations.  */
-      for (relsec = section_headers;
-	   relsec < section_headers + elf_header.e_shnum;
-	   ++relsec)
-	{
-	  unsigned long nrelas;
-	  Elf_Internal_Rela *rela, *rp;
-	  Elf_Internal_Shdr *symsec;
-	  Elf_Internal_Sym *symtab;
-	  Elf_Internal_Sym *sym;
-
-	  if (relsec->sh_type != SHT_RELA
-	      || SECTION_HEADER (relsec->sh_info) != section
-	      || relsec->sh_size == 0)
-	    continue;
-
-	  if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
-				  & rela, & nrelas))
-	    return 0;
-
-	  symsec = SECTION_HEADER (relsec->sh_link);
-	  symtab = GET_ELF_SYMBOLS (file, symsec);
-
-	  for (rp = rela; rp < rela + nrelas; ++rp)
-	    {
-	      unsigned char *loc;
-
-	      if (rp->r_offset >= (bfd_vma) (hdrptr - section_begin)
-		  && section->sh_size > (bfd_vma) offset_size
-		  && rp->r_offset <= section->sh_size - offset_size)
-		loc = section_begin + rp->r_offset;
-	      else
-		continue;
-
-	      if (is_32bit_elf)
-		{
-		  sym = symtab + ELF32_R_SYM (rp->r_info);
-
-		  if (ELF32_R_SYM (rp->r_info) != 0
-		      && ELF32_ST_TYPE (sym->st_info) != STT_SECTION)
-		    {
-		      warn (_("Skipping unexpected symbol type %u\n"),
-			    ELF32_ST_TYPE (sym->st_info));
-		      continue;
-		    }
-		}
-	      else
-		{
-		  sym = symtab + ELF64_R_SYM (rp->r_info);
-
-		  if (ELF64_R_SYM (rp->r_info) != 0
-		      && ELF64_ST_TYPE (sym->st_info) != STT_SECTION)
-		    {
-		      warn (_("Skipping unexpected symbol type %u\n"),
-			    ELF64_ST_TYPE (sym->st_info));
-		      continue;
-		    }
-		}
-
-	      byte_put (loc, rp->r_addend, offset_size);
-	    }
+      cu_offset = start - section_begin;
+      start += compunit.cu_length + initial_length_size;
 
-	  free (rela);
-	  break;
-	}
+      if (!debug_apply_rela_addends (file, section, offset_size,
+				     section_begin, hdrptr, start))
+	return 0;
 
       cu_abbrev_offset_ptr = hdrptr;
       compunit.cu_abbrev_offset = byte_get (hdrptr, offset_size);
@@ -8626,8 +8648,6 @@ display_debug_info (Elf_Internal_Shdr *s
       hdrptr += 1;
 
       tags = hdrptr;
-      cu_offset = start - section_begin;
-      start += compunit.cu_length + initial_length_size;
 
       printf (_("  Compilation Unit @ %lx:\n"), cu_offset);
       printf (_("   Length:        %ld\n"), compunit.cu_length);
@@ -9017,6 +9037,10 @@ display_debug_frames (Elf_Internal_Shdr 
       block_end = saved_start + length + initial_length_size;
       cie_id = byte_get (start, offset_size); start += offset_size;
 
+      if (!debug_apply_rela_addends (file, section, offset_size,
+				     section_start, start, block_end))
+	return 0;
+
       if (is_eh ? (cie_id == 0) : (cie_id == DW_CIE_ID))
 	{
 	  int version;
@@ -9181,7 +9205,10 @@ display_debug_frames (Elf_Internal_Shdr 
 	    encoded_ptr_size = size_of_encoded_value (fc->fde_encoding);
 
 	  fc->pc_begin = get_encoded_value (start, fc->fde_encoding);
-	  if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel)
+	  if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel
+	      /* Don't adjust for ET_REL since there's invariably a pcrel
+		 reloc here, which we haven't applied.  */
+	      && elf_header.e_type != ET_REL)
 	    fc->pc_begin += section->sh_addr + (start - section_start);
 	  start += encoded_ptr_size;
 	  fc->pc_range = byte_get (start, encoded_ptr_size);
@@ -9380,7 +9407,8 @@ display_debug_frames (Elf_Internal_Shdr 
 
 	    case DW_CFA_set_loc:
 	      vma = get_encoded_value (start, fc->fde_encoding);
-	      if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel)
+	      if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel
+		  && elf_header.e_type != ET_REL)
 		vma += section->sh_addr + (start - section_start);
 	      start += encoded_ptr_size;
 	      if (do_debug_frames_interp)
Index: gas/testsuite/gas/cfi/cfi-alpha-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-alpha-1.d,v
retrieving revision 1.3
diff -u -p -r1.3 cfi-alpha-1.d
--- gas/testsuite/gas/cfi/cfi-alpha-1.d	7 Mar 2004 08:51:21 -0000	1.3
+++ gas/testsuite/gas/cfi/cfi-alpha-1.d	15 Aug 2004 23:45:05 -0000
@@ -13,8 +13,8 @@ The section .eh_frame contains:
   DW_CFA_def_cfa_reg: r30
   DW_CFA_nop
 
-00000014 00000020 00000018 FDE cie=00000000 pc=0000001c..00000050
-  DW_CFA_advance_loc: 24 to 00000034
+00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000034
+  DW_CFA_advance_loc: 24 to 00000018
   DW_CFA_def_cfa: r15 ofs 32
   DW_CFA_offset: r26 at cfa-32
   DW_CFA_offset: r9 at cfa-24
Index: gas/testsuite/gas/cfi/cfi-alpha-3.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-alpha-3.d,v
retrieving revision 1.3
diff -u -p -r1.3 cfi-alpha-3.d
--- gas/testsuite/gas/cfi/cfi-alpha-3.d	7 Mar 2004 08:51:21 -0000	1.3
+++ gas/testsuite/gas/cfi/cfi-alpha-3.d	15 Aug 2004 23:45:05 -0000
@@ -13,20 +13,20 @@ The section .eh_frame contains:
   DW_CFA_def_cfa_reg: r30
   DW_CFA_nop
 
-00000014 00000028 00000018 FDE cie=00000000 pc=0000001c..0000005c
-  DW_CFA_advance_loc: 4 to 00000020
+00000014 00000028 00000018 FDE cie=00000000 pc=00000000..00000040
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_def_cfa_offset: 32
-  DW_CFA_advance_loc: 4 to 00000024
+  DW_CFA_advance_loc: 4 to 00000008
   DW_CFA_offset: r26 at cfa-32
-  DW_CFA_advance_loc: 4 to 00000028
+  DW_CFA_advance_loc: 4 to 0000000c
   DW_CFA_offset: r9 at cfa-24
-  DW_CFA_advance_loc: 4 to 0000002c
+  DW_CFA_advance_loc: 4 to 00000010
   DW_CFA_offset: r15 at cfa-16
-  DW_CFA_advance_loc: 4 to 00000030
+  DW_CFA_advance_loc: 4 to 00000014
   DW_CFA_offset: r34 at cfa-8
-  DW_CFA_advance_loc: 4 to 00000034
+  DW_CFA_advance_loc: 4 to 00000018
   DW_CFA_def_cfa_reg: r15
-  DW_CFA_advance_loc: 36 to 00000058
+  DW_CFA_advance_loc: 36 to 0000003c
   DW_CFA_def_cfa: r30 ofs 0
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-i386.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-i386.d,v
retrieving revision 1.5
diff -u -p -r1.5 cfi-i386.d
--- gas/testsuite/gas/cfi/cfi-i386.d	7 Mar 2004 23:02:02 -0000	1.5
+++ gas/testsuite/gas/cfi/cfi-i386.d	15 Aug 2004 23:45:05 -0000
@@ -15,33 +15,33 @@ The section .eh_frame contains:
   DW_CFA_nop
   DW_CFA_nop
 
-00000018 00000014 0000001c FDE cie=00000000 pc=00000020..00000032
-  DW_CFA_advance_loc: 6 to 00000026
+00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000012
+  DW_CFA_advance_loc: 6 to 00000006
   DW_CFA_def_cfa_offset: 4664
-  DW_CFA_advance_loc: 11 to 00000031
+  DW_CFA_advance_loc: 11 to 00000011
   DW_CFA_def_cfa_offset: 4
 
-00000030 00000018 00000034 FDE cie=00000000 pc=0000004a..00000057
-  DW_CFA_advance_loc: 1 to 0000004b
+00000030 00000018 00000034 FDE cie=00000000 pc=00000012..0000001f
+  DW_CFA_advance_loc: 1 to 00000013
   DW_CFA_def_cfa_offset: 8
   DW_CFA_offset: r5 at cfa-8
-  DW_CFA_advance_loc: 2 to 0000004d
+  DW_CFA_advance_loc: 2 to 00000015
   DW_CFA_def_cfa_reg: r5
-  DW_CFA_advance_loc: 9 to 00000056
+  DW_CFA_advance_loc: 9 to 0000001e
   DW_CFA_def_cfa_reg: r4
 
-0000004c 00000014 00000050 FDE cie=00000000 pc=00000073..00000083
-  DW_CFA_advance_loc: 2 to 00000075
+0000004c 00000014 00000050 FDE cie=00000000 pc=0000001f..0000002f
+  DW_CFA_advance_loc: 2 to 00000021
   DW_CFA_def_cfa_reg: r3
-  DW_CFA_advance_loc: 13 to 00000082
+  DW_CFA_advance_loc: 13 to 0000002e
   DW_CFA_def_cfa: r4 ofs 4
 
-00000064 00000010 00000068 FDE cie=00000000 pc=0000009b..000000a1
+00000064 00000010 00000068 FDE cie=00000000 pc=0000002f..00000035
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-00000078 00000010 0000007c FDE cie=00000000 pc=000000b5..000000c4
+00000078 00000010 0000007c FDE cie=00000000 pc=00000035..00000044
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-m68k.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-m68k.d,v
retrieving revision 1.2
diff -u -p -r1.2 cfi-m68k.d
--- gas/testsuite/gas/cfi/cfi-m68k.d	22 Mar 2004 23:16:09 -0000	1.2
+++ gas/testsuite/gas/cfi/cfi-m68k.d	15 Aug 2004 23:45:05 -0000
@@ -15,22 +15,22 @@ The section .eh_frame contains:
   DW_CFA_nop
   DW_CFA_nop
 
-00000018 00000014 0000001c FDE cie=00000000 pc=00000020..0000002c
-  DW_CFA_advance_loc: 4 to 00000024
+00000018 00000014 0000001c FDE cie=00000000 pc=00000000..0000000c
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_def_cfa_offset: 4664
-  DW_CFA_advance_loc: 6 to 0000002a
+  DW_CFA_advance_loc: 6 to 0000000a
   DW_CFA_def_cfa_offset: 4
 
-00000030 00000018 00000034 FDE cie=00000000 pc=00000038..00000044
-  DW_CFA_advance_loc: 4 to 0000003c
+00000030 00000018 00000034 FDE cie=00000000 pc=0000000c..00000018
+  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_advance_loc: 6 to 00000042
+  DW_CFA_advance_loc: 6 to 00000016
   DW_CFA_def_cfa_reg: r15
   DW_CFA_nop
 
-0000004c 00000010 00000050 FDE cie=00000000 pc=00000054..00000058
+0000004c 00000010 00000050 FDE cie=00000000 pc=00000018..0000001c
 
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-ppc-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-ppc-1.d,v
retrieving revision 1.1
diff -u -p -r1.1 cfi-ppc-1.d
--- gas/testsuite/gas/cfi/cfi-ppc-1.d	10 Jul 2003 16:46:38 -0000	1.1
+++ gas/testsuite/gas/cfi/cfi-ppc-1.d	15 Aug 2004 23:45:05 -0000
@@ -14,16 +14,16 @@ The section .eh_frame contains:
 
   DW_CFA_def_cfa: r1 ofs 0
 
-00000014 00000020 00000018 FDE cie=00000000 pc=0000001c..0000008c
-  DW_CFA_advance_loc: 4 to 00000020
+00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000070
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_def_cfa_offset: 48
-  DW_CFA_advance_loc: 16 to 00000030
+  DW_CFA_advance_loc: 16 to 00000014
   DW_CFA_offset: r27 at cfa-20
   DW_CFA_offset: r26 at cfa-24
   DW_CFA_offset_extended_sf: r65 at cfa\+4
-  DW_CFA_advance_loc: 8 to 00000038
+  DW_CFA_advance_loc: 8 to 0000001c
   DW_CFA_offset: r28 at cfa-16
-  DW_CFA_advance_loc: 8 to 00000040
+  DW_CFA_advance_loc: 8 to 00000024
   DW_CFA_offset: r29 at cfa-12
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-s390-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-s390-1.d,v
retrieving revision 1.1
diff -u -p -r1.1 cfi-s390-1.d
--- gas/testsuite/gas/cfi/cfi-s390-1.d	10 Jul 2003 16:46:38 -0000	1.1
+++ gas/testsuite/gas/cfi/cfi-s390-1.d	15 Aug 2004 23:45:05 -0000
@@ -14,8 +14,8 @@ The section .eh_frame contains:
 
   DW_CFA_def_cfa: r15 ofs 96
 
-00000014 00000024 00000018 FDE cie=00000000 pc=0000001c..0000006a
-  DW_CFA_advance_loc: 4 to 00000020
+00000014 00000024 00000018 FDE cie=00000000 pc=00000000..0000004e
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_offset: r15 at cfa-36
   DW_CFA_offset: r14 at cfa-40
   DW_CFA_offset: r13 at cfa-44
@@ -24,7 +24,7 @@ The section .eh_frame contains:
   DW_CFA_offset: r10 at cfa-56
   DW_CFA_offset: r9 at cfa-60
   DW_CFA_offset: r8 at cfa-64
-  DW_CFA_advance_loc: 22 to 00000036
+  DW_CFA_advance_loc: 22 to 0000001a
   DW_CFA_def_cfa_offset: 192
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-s390x-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-s390x-1.d,v
retrieving revision 1.2
diff -u -p -r1.2 cfi-s390x-1.d
--- gas/testsuite/gas/cfi/cfi-s390x-1.d	8 Mar 2004 19:12:29 -0000	1.2
+++ gas/testsuite/gas/cfi/cfi-s390x-1.d	15 Aug 2004 23:45:05 -0000
@@ -17,8 +17,8 @@ The section .eh_frame contains:
   DW_CFA_nop
   DW_CFA_nop
 
-00000018 00000024 0000001c FDE cie=00000000 pc=00000020..00000090
-  DW_CFA_advance_loc: 6 to 00000026
+00000018 00000024 0000001c FDE cie=00000000 pc=00000000..00000070
+  DW_CFA_advance_loc: 6 to 00000006
   DW_CFA_offset: r15 at cfa-40
   DW_CFA_offset: r14 at cfa-48
   DW_CFA_offset: r13 at cfa-56
@@ -27,7 +27,7 @@ The section .eh_frame contains:
   DW_CFA_offset: r10 at cfa-80
   DW_CFA_offset: r9 at cfa-88
   DW_CFA_offset: r8 at cfa-96
-  DW_CFA_advance_loc: 8 to 0000002e
+  DW_CFA_advance_loc: 8 to 0000000e
   DW_CFA_def_cfa_offset: 320
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-sh-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-sh-1.d,v
retrieving revision 1.1
diff -u -p -r1.1 cfi-sh-1.d
--- gas/testsuite/gas/cfi/cfi-sh-1.d	18 Mar 2004 00:49:23 -0000	1.1
+++ gas/testsuite/gas/cfi/cfi-sh-1.d	15 Aug 2004 23:45:05 -0000
@@ -12,16 +12,16 @@ The section .eh_frame contains:
 
   DW_CFA_def_cfa: r15 ofs 0
 
-00000014 00000020 00000018 FDE cie=00000000 pc=0000001c..00000048
-  DW_CFA_advance_loc: 2 to 0000001e
+00000014 00000020 00000018 FDE cie=00000000 pc=00000000..0000002c
+  DW_CFA_advance_loc: 2 to 00000002
   DW_CFA_def_cfa_offset: 4
-  DW_CFA_advance_loc: 2 to 00000020
+  DW_CFA_advance_loc: 2 to 00000004
   DW_CFA_def_cfa_offset: 8
   DW_CFA_offset: r15 at cfa-4
   DW_CFA_offset: r17 at cfa-8
-  DW_CFA_advance_loc: 6 to 00000026
+  DW_CFA_advance_loc: 6 to 0000000a
   DW_CFA_def_cfa_reg: r14
-  DW_CFA_advance_loc: 2 to 00000028
+  DW_CFA_advance_loc: 2 to 0000000c
   DW_CFA_def_cfa_offset: 40
   DW_CFA_nop
   DW_CFA_nop
Index: gas/testsuite/gas/cfi/cfi-sparc-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-sparc-1.d,v
retrieving revision 1.1
diff -u -p -r1.1 cfi-sparc-1.d
--- gas/testsuite/gas/cfi/cfi-sparc-1.d	29 Aug 2003 20:20:18 -0000	1.1
+++ gas/testsuite/gas/cfi/cfi-sparc-1.d	15 Aug 2004 23:45:05 -0000
@@ -14,8 +14,8 @@ The section .eh_frame contains:
 
   DW_CFA_def_cfa: r14 ofs 0
 
-00000014 00000014 00000018 FDE cie=00000000 pc=0000001c..00000040
-  DW_CFA_advance_loc: 4 to 00000020
+00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000024
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_def_cfa_reg: r30
   DW_CFA_GNU_window_save
   DW_CFA_register: r15 in r31
Index: gas/testsuite/gas/cfi/cfi-sparc64-1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-sparc64-1.d,v
retrieving revision 1.2
diff -u -p -r1.2 cfi-sparc64-1.d
--- gas/testsuite/gas/cfi/cfi-sparc64-1.d	19 Apr 2004 14:25:49 -0000	1.2
+++ gas/testsuite/gas/cfi/cfi-sparc64-1.d	15 Aug 2004 23:45:05 -0000
@@ -17,8 +17,8 @@ The section .eh_frame contains:
   DW_CFA_nop
   DW_CFA_nop
 
-00000018 00000014 0000001c FDE cie=00000000 pc=00000020..00000050
-  DW_CFA_advance_loc: 4 to 00000024
+00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000030
+  DW_CFA_advance_loc: 4 to 00000004
   DW_CFA_def_cfa_reg: r30
   DW_CFA_GNU_window_save
   DW_CFA_register: r15 in r31
Index: gas/testsuite/gas/cfi/cfi-x86_64.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/cfi/cfi-x86_64.d,v
retrieving revision 1.6
diff -u -p -r1.6 cfi-x86_64.d
--- gas/testsuite/gas/cfi/cfi-x86_64.d	21 Jul 2004 18:18:03 -0000	1.6
+++ gas/testsuite/gas/cfi/cfi-x86_64.d	15 Aug 2004 23:45:05 -0000
@@ -15,37 +15,37 @@ The section .eh_frame contains:
   DW_CFA_nop
   DW_CFA_nop
 
-00000018 00000014 0000001c FDE cie=00000000 pc=00000020..00000034
-  DW_CFA_advance_loc: 7 to 00000027
+00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000014
+  DW_CFA_advance_loc: 7 to 00000007
   DW_CFA_def_cfa_offset: 4668
-  DW_CFA_advance_loc: 12 to 00000033
+  DW_CFA_advance_loc: 12 to 00000013
   DW_CFA_def_cfa_offset: 8
 
-00000030 0000001c 00000034 FDE cie=00000000 pc=00000038..00000046
-  DW_CFA_advance_loc: 1 to 00000039
+00000030 0000001c 00000034 FDE cie=00000000 pc=00000014..00000022
+  DW_CFA_advance_loc: 1 to 00000015
   DW_CFA_def_cfa_offset: 16
   DW_CFA_offset: r6 at cfa-16
-  DW_CFA_advance_loc: 3 to 0000003c
+  DW_CFA_advance_loc: 3 to 00000018
   DW_CFA_def_cfa_reg: r6
-  DW_CFA_advance_loc: 9 to 00000045
+  DW_CFA_advance_loc: 9 to 00000021
   DW_CFA_def_cfa: r7 ofs 8
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-00000050 00000014 00000054 FDE cie=00000000 pc=00000058..0000006b
-  DW_CFA_advance_loc: 3 to 0000005b
+00000050 00000014 00000054 FDE cie=00000000 pc=00000022..00000035
+  DW_CFA_advance_loc: 3 to 00000025
   DW_CFA_def_cfa_reg: r12
-  DW_CFA_advance_loc: 15 to 0000006a
+  DW_CFA_advance_loc: 15 to 00000034
   DW_CFA_def_cfa_reg: r7
   DW_CFA_nop
 
-00000068 00000010 0000006c FDE cie=00000000 pc=00000070..00000076
+00000068 00000010 0000006c FDE cie=00000000 pc=00000035..0000003b
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop
 
-0000007c 00000010 00000080 FDE cie=00000000 pc=00000084..00000096
+0000007c 00000010 00000080 FDE cie=00000000 pc=0000003b..0000004d
   DW_CFA_nop
   DW_CFA_nop
   DW_CFA_nop

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]