diff options
author | Ian Lance Taylor <ian@airs.com> | 1998-02-06 03:08:45 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1998-02-06 03:08:45 +0000 |
commit | b073d4281c88af799af734b43672ea5548285e4d (patch) | |
tree | af224e88ef98ab9b7ec185410310f6a44ae82d20 /gas | |
parent | 0b0caaf11b441a5e4fe336fc43bcaf7269097806 (diff) | |
download | gdb-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/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 16 |
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 |