* config/tc-dvp.c (dvp_relax_frag): Adjust target address by stretch.

PR 16132.
This commit is contained in:
Doug Evans 1998-06-08 22:44:03 +00:00
parent c49fcb32e2
commit 2dc7ca5026
2 changed files with 15 additions and 0 deletions

View file

@ -1,3 +1,9 @@
start-sanitize-sky
Mon Jun 8 15:41:43 1998 Doug Evans <devans@canuck.cygnus.com>
* config/tc-dvp.c (dvp_relax_frag): Adjust target address by stretch.
end-sanitize-sky
Mon Jun 8 12:20:30 1998 Alan Modra <alan@spri.levels.unisa.edu.au> Mon Jun 8 12:20:30 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and * config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and

View file

@ -1612,6 +1612,7 @@ md_estimate_size_before_relax (fragP, segment)
} }
/* Perform the relaxation. /* Perform the relaxation.
STRETCH is the amount the start of the frag has already been shifted by.
All we have to do is figure out how many bytes we need to insert to All we have to do is figure out how many bytes we need to insert to
get to the recorded symbol (which is at the required alignment). get to the recorded symbol (which is at the required alignment).
This function is also called for machine dependent vu insn frags. This function is also called for machine dependent vu insn frags.
@ -1645,6 +1646,10 @@ dvp_relax_frag (fragP, stretch)
if (fragP->fr_subtype == RELAX_MPG) if (fragP->fr_subtype == RELAX_MPG)
{ {
/* The frag the symbol is in hasn't been relaxed yet so any .org
adjustments haven't been applied to it. We know the symbol
is the address of the next frag so adjust target by stretch. */
target += stretch;
growth = target - address; growth = target - address;
if (growth < 0) if (growth < 0)
as_fatal ("internal error: bad mpg alignment handling"); as_fatal ("internal error: bad mpg alignment handling");
@ -1654,6 +1659,10 @@ dvp_relax_frag (fragP, stretch)
if (fragP->fr_subtype == RELAX_DIRECT) if (fragP->fr_subtype == RELAX_DIRECT)
{ {
/* The frag the symbol is in hasn't been relaxed yet so any .org
adjustments haven't been applied to it. We know the symbol
is the address of the next frag so adjust target by stretch. */
target += stretch;
growth = target - address; growth = target - address;
if (growth < 0) if (growth < 0)
as_fatal ("internal error: bad direct alignment handling"); as_fatal ("internal error: bad direct alignment handling");