OSDN Git Service

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

index aea7842..88d8bae 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 f94cad5..fb10737 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