* config/tc-v850.c (md_convert_frag): Make sure we insert the
authorJeff Law <law@redhat.com>
Tue, 29 Oct 1996 20:07:13 +0000 (20:07 +0000)
committerJeff Law <law@redhat.com>
Tue, 29 Oct 1996 20:07:13 +0000 (20:07 +0000)
        fixup at the right address within the frag.

gas/ChangeLog
gas/config/tc-v850.c

index b30a2bf51fd89690b13bef6fe3c39f8c8f7cc7c1..a66c5628495da50180286e31be57514ef99cc2c9 100644 (file)
@@ -1,6 +1,9 @@
 start-sanitize-v850
 Tue Oct 29 12:28:16 1996  Jeffrey A Law  (law@cygnus.com)
 
+       * config/tc-v850.c (md_convert_frag): Make sure we insert the
+       fixup at the right address within the frag.
+
        * config/tc-v850.c (md_convert_frag): Don't set fragP->fr_fix
        to an absolute value, instead increment it as needed.
 
index fb238e41f874ffdb22f0c7879f9d22639928d6d7..10bf110f2c54b52e1ac9fa970ecead1ebe89be17 100644 (file)
@@ -425,15 +425,13 @@ md_convert_frag (abfd, sec, fragP)
   subseg_change (sec, 0);
   if (fragP->fr_subtype == 0)
     {
+      fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+              fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode);
       fragP->fr_var = 0;
       fragP->fr_fix += 2;
-      fix_new (fragP, 0, 2, fragP->fr_symbol,
-              fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode);
     }
   else if (fragP->fr_subtype == 1)
     {
-      fragP->fr_var = 0;
-      fragP->fr_fix += 6;
       /* Reverse the condition of the first branch.  */
       fragP->fr_literal[0] &= 0xf7;
       /* Mask off all the displacement bits.  */
@@ -446,8 +444,10 @@ md_convert_frag (abfd, sec, fragP)
       /* Now create the unconditional branch + fixup to the final
         target.  */
       md_number_to_chars (&fragP->fr_literal[2], 0x00000780, 4);
-      fix_new (fragP, 2, 4, fragP->fr_symbol,
+      fix_new (fragP, fragP->fr_fix + 2, 4, fragP->fr_symbol,
               fragP->fr_offset, 1, BFD_RELOC_UNUSED + (int)fragP->fr_opcode + 1);
+      fragP->fr_var = 0;
+      fragP->fr_fix += 6;
     }
   else
     abort ();