* config/tc-mips.c (mips16_extended_frag): Don't assume that we

can rely on the frag address to determine whether a frag is
	earlier or later.
This commit is contained in:
Ian Lance Taylor 1997-03-01 06:10:58 +00:00
parent 847e232af6
commit a941619c0b
2 changed files with 17 additions and 6 deletions

View File

@ -1,3 +1,9 @@
Sat Mar 1 01:04:04 1997 Ian Lance Taylor <ian@cygnus.com>
* config/tc-mips.c (mips16_extended_frag): Don't assume that we
can rely on the frag address to determine whether a frag is
earlier or later.
Fri Feb 28 14:40:00 1997 Ian Lance Taylor <ian@cygnus.com>
* write.h (LOCAL_LABEL): Only define if not BFD_ASSEMBLER.

View File

@ -9787,12 +9787,16 @@ mips16_extended_frag (fragp, sec, stretch)
{
fragS *f;
/* Adjust stretch for any alignment frag. FIXME: This
doesn't handle the fr_subtype field, which specifies a
maximum number of bytes to skip when doing an alignment. */
for (f = fragp; f != fragp->fr_symbol->sy_frag; f = f->fr_next)
/* Adjust stretch for any alignment frag. Note that if have
been expanding the earlier code, the symbol may be
defined in what appears to be an earlier frag. FIXME:
This doesn't handle the fr_subtype field, which specifies
a maximum number of bytes to skip when doing an
alignment. */
for (f = fragp;
f != NULL && f != fragp->fr_symbol->sy_frag;
f = f->fr_next)
{
assert (f != NULL);
if (f->fr_type == rs_align || f->fr_type == rs_align_code)
{
if (stretch < 0)
@ -9804,7 +9808,8 @@ mips16_extended_frag (fragp, sec, stretch)
break;
}
}
val += stretch;
if (f != NULL)
val += stretch;
}
addr = fragp->fr_address + fragp->fr_fix;