* config/tc-ppc.c (md_apply_fix3): Adjust 16 bit XCOFF reloc offset.
authorAlan Modra <amodra@gmail.com>
Tue, 6 Aug 2002 02:30:06 +0000 (02:30 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 6 Aug 2002 02:30:06 +0000 (02:30 +0000)
gas/ChangeLog
gas/config/tc-ppc.c

index aea784282e1c5947c6b5403265380a7f989f3ba3..88d8bae1f22332171880c0e4ea61278843262266 100644 (file)
@@ -1,3 +1,7 @@
+2002-08-06  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/tc-ppc.c (md_apply_fix3): Adjust 16 bit XCOFF reloc offset.
+
 2002-08-01  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/tc-mips.c (tc_gen_reloc): Extend GP-relative addend
index f94cad53956a5b12ce698c35def8e92484bd1887..fb1073756719f0d51ee8af52979af4585eb2ab1e 100644 (file)
@@ -5223,7 +5223,14 @@ md_apply_fix3 (fixP, valP, seg)
       else if ((operand->flags & PPC_OPERAND_RELATIVE) != 0
          && operand->bits == 16
          && operand->shift == 0)
-       fixP->fx_r_type = BFD_RELOC_PPC_B16;
+       {
+         fixP->fx_r_type = BFD_RELOC_PPC_B16;
+#ifdef OBJ_XCOFF
+         fixP->fx_size = 2;
+         if (target_big_endian)
+           fixP->fx_where += 2;
+#endif
+       }
       else if ((operand->flags & PPC_OPERAND_ABSOLUTE) != 0
               && operand->bits == 26
               && operand->shift == 0)
@@ -5231,7 +5238,14 @@ md_apply_fix3 (fixP, valP, seg)
       else if ((operand->flags & PPC_OPERAND_ABSOLUTE) != 0
               && operand->bits == 16
               && operand->shift == 0)
-       fixP->fx_r_type = BFD_RELOC_PPC_BA16;
+       {
+         fixP->fx_r_type = BFD_RELOC_PPC_BA16;
+#ifdef OBJ_XCOFF
+         fixP->fx_size = 2;
+         if (target_big_endian)
+           fixP->fx_where += 2;
+#endif
+       }
 #if defined (OBJ_XCOFF) || defined (OBJ_ELF)
       else if ((operand->flags & PPC_OPERAND_PARENS) != 0
               && operand->bits == 16