* config/tc-mn10200.c (md_assemble): Tweak fx_offset for pc-relative
authorJeff Law <law@redhat.com>
Mon, 6 Jan 1997 22:25:05 +0000 (22:25 +0000)
committerJeff Law <law@redhat.com>
Mon, 6 Jan 1997 22:25:05 +0000 (22:25 +0000)
        relocs.
Relocs for the mn10200.

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

index 3a1321319e550c26c69785cd181af5c43e6ca5b1..1805fd252a520e8b0b31628b07e83a0eb7acc502 100644 (file)
@@ -1,6 +1,11 @@
+Mon Jan  6 15:19:32 1997  Jeffrey A Law  (law@cygnus.com)
+
+       * config/tc-mn10200.c (md_assemble): Tweak fx_offset for pc-relative
+       relocs.
+
 Fri Jan  3 16:47:08 1997  Jeffrey A Law  (law@cygnus.com)
 
-       * config/tc-hppa.c (struct hppa_fix_struct): Steak fx_r_field's type
+       * config/tc-hppa.c (struct hppa_fix_struct): Tweak fx_r_field's type
        to avoid warnings with the native HP compiler.
        (fix_new_hppa): Similarly for the r_type argument.
        (pa_build_unwind_subspace, hppa_elf_mark_end_of_function): Enclose
index 36894cacccc7a5fef8aa75d904bc36557f1ac145..e57a6c100a6da5385965556183e9d3a3607140ab 100644 (file)
@@ -741,6 +741,7 @@ keep_going:
       else
        {
          int reloc, pcrel, reloc_size, offset;
+         fixS *fixP;
 
          reloc = BFD_RELOC_NONE;
          /* How big is the reloc?  Remember SPLIT relocs are
@@ -786,9 +787,11 @@ keep_going:
          else if (reloc_size == 32 || reloc_size == 24)
            reloc_size = 2;
 
-         fix_new_exp (frag_now, f - frag_now->fr_literal + offset, reloc_size,
-                      &fixups[i].exp, pcrel,
-                      ((bfd_reloc_code_real_type) reloc));
+         fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset,
+                             reloc_size, &fixups[i].exp, pcrel,
+                             ((bfd_reloc_code_real_type) reloc));
+         if (pcrel)
+           fixP->fx_offset += offset;
        }
     }
 }