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]

tweak to ia64 relaxation


Intel's compiler likes to put speculation recovery code in a
different section, which means we may need bounce pads to reach.


r~


        * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21M
        and PCREL21F like PCREL21B.

Index: elfxx-ia64.c
===================================================================
RCS file: /cvs/src/src/bfd/elfxx-ia64.c,v
retrieving revision 1.57
diff -u -p -r1.57 elfxx-ia64.c
--- elfxx-ia64.c	22 Aug 2002 01:27:20 -0000	1.57
+++ elfxx-ia64.c	9 Sep 2002 17:27:12 -0000
@@ -724,7 +724,9 @@ elfNN_ia64_relax_section (abfd, sec, lin
   irelend = internal_relocs + sec->reloc_count;
 
   for (irel = internal_relocs; irel < irelend; irel++)
-    if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B)
+    if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B
+	|| ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21M
+	|| ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21F)
       break;
 
   /* No branch-type relocations.  */
@@ -756,7 +758,9 @@ elfNN_ia64_relax_section (abfd, sec, lin
       struct one_fixup *f;
       bfd_size_type amt;
 
-      if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B)
+      if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B
+	  && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21M
+	  && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21F)
 	continue;
 
       /* Get the value of the symbol referred to by the reloc.  */


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