aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1998-02-06 03:08:45 +0000
committerIan Lance Taylor <ian@airs.com>1998-02-06 03:08:45 +0000
commitb073d4281c88af799af734b43672ea5548285e4d (patch)
treeaf224e88ef98ab9b7ec185410310f6a44ae82d20 /gas
parent0b0caaf11b441a5e4fe336fc43bcaf7269097806 (diff)
downloadgdb-b073d4281c88af799af734b43672ea5548285e4d.zip
gdb-b073d4281c88af799af734b43672ea5548285e4d.tar.gz
gdb-b073d4281c88af799af734b43672ea5548285e4d.tar.bz2
* config/tc-mips.c (append_insn): Make sure that if we have a
fixup for an unmatched %hi reloc, it does not associated with a variant frag.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-mips.c16
2 files changed, 19 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c5f6bdb..ccac0d6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
Thu Feb 5 12:39:08 1998 Ian Lance Taylor <ian@cygnus.com>
+ * config/tc-mips.c (append_insn): Make sure that if we have a
+ fixup for an unmatched %hi reloc, it does not associated with a
+ variant frag.
+
* configure, Makefile.in, aclocal.m4: Rebuild with new libtool.
* doc/Makefile.in: Likewise.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 33d1a68..109bd39 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -880,7 +880,11 @@ md_begin ()
else if (strcmp (cpu, "mips64vr4300") == 0)
mips_cpu = 4300;
- else if (strcmp (cpu, "mips64vr4100") == 0)
+ else if (strcmp (cpu, "mips64vr4100") == 0
+ /* start-sanitize-vr4111 */
+ || strcmp (cpu, "mips64vr4111") == 0
+ /* end-sanitize-vr4111 */
+ )
mips_cpu = 4100;
else if (strcmp (cpu, "r4010") == 0)
@@ -2213,6 +2217,16 @@ append_insn (place, ip, address_expr, reloc_type, unmatched_hi)
/* We just output an insn, so the next one doesn't have a label. */
mips_clear_insn_labels ();
+
+ /* We must ensure that a fixup associated with an unmatched %hi
+ reloc does not become a variant frag. Otherwise, the
+ rearrangement of %hi relocs in frob_file may confuse
+ tc_gen_reloc. */
+ if (unmatched_hi)
+ {
+ frag_wane (frag_now);
+ frag_new (0);
+ }
}
/* This function forgets that there was any previous instruction or