aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/config/tc-ia64.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 045abaf..34482eb 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -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;