Fix offset for ia64 PCREL60B relocation on HP-UX
authorJohn David Anglin <danglin@gcc.gnu.org>
Wed, 19 May 2021 15:27:28 +0000 (15:27 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Wed, 19 May 2021 15:27:28 +0000 (15:27 +0000)
gas/ChangeLog:
2021-05-19  John Buddery  <jvb@cyberscience.com>
PR 25599
* config/tc-ia64.c (emit_one_bundle): Increment fixup offset
by one for PCREL60B relocation on HP-UX.

gas/config/tc-ia64.c

index 045abaf73576bfc7c1f7ba4419a1310e0eb7550f..34482eb4f973963adb6b4d9587642c112df42bf3 100644 (file)
@@ -6887,8 +6887,17 @@ emit_one_bundle (void)
 
       for (j = 0; j < md.slot[curr].num_fixups; ++j)
        {
+         unsigned long where;
+
          ifix = md.slot[curr].fixup + j;
-         fix = fix_new_exp (frag_now, frag_now_fix () - 16 + i, 8,
+         where = frag_now_fix () - 16 + i;
+#ifdef TE_HPUX
+         /* Fix offset for PCREL60B relocation on HP-UX.  */
+         if (ifix->code == BFD_RELOC_IA64_PCREL60B)
+           ++where;
+#endif
+
+         fix = fix_new_exp (frag_now, where, 8,
                             &ifix->expr, ifix->is_pcrel, ifix->code);
          fix->tc_fix_data.opnd = ifix->opnd;
          fix->fx_file = md.slot[curr].src_file;