From b073d4281c88af799af734b43672ea5548285e4d Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 6 Feb 1998 03:08:45 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 4 ++++ gas/config/tc-mips.c | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index c5f6bdb490..ccac0d68f4 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ Thu Feb 5 12:39:08 1998 Ian Lance Taylor + * 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 33d1a68331..109bd39845 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