This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
tweak to ia64 relaxation
- From: Richard Henderson <rth at twiddle dot net>
- To: binutils at sources dot redhat dot com
- Date: Mon, 9 Sep 2002 10:35:53 -0700
- Subject: 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. */