aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>1998-06-08 22:44:03 +0000
committerDoug Evans <dje@google.com>1998-06-08 22:44:03 +0000
commit2dc7ca5026e491598efa6525a36fadef1a60d8a3 (patch)
tree2fee9cd1bcd404a399e3b08f29bcad45b4ed241d /gas
parentc49fcb32e2bd767532c34489bf71f2a42192e49e (diff)
downloadfsf-binutils-gdb-2dc7ca5026e491598efa6525a36fadef1a60d8a3.zip
fsf-binutils-gdb-2dc7ca5026e491598efa6525a36fadef1a60d8a3.tar.gz
fsf-binutils-gdb-2dc7ca5026e491598efa6525a36fadef1a60d8a3.tar.bz2
* config/tc-dvp.c (dvp_relax_frag): Adjust target address by stretch.
PR 16132.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-dvp.c9
2 files changed, 15 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 9f933e4..739d6ea 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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>
* config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and
diff --git a/gas/config/tc-dvp.c b/gas/config/tc-dvp.c
index 848f141..292e21a 100644
--- a/gas/config/tc-dvp.c
+++ b/gas/config/tc-dvp.c
@@ -1612,6 +1612,7 @@ md_estimate_size_before_relax (fragP, segment)
}
/* 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
get to the recorded symbol (which is at the required alignment).
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)
{
+ /* 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;
if (growth < 0)
as_fatal ("internal error: bad mpg alignment handling");
@@ -1654,6 +1659,10 @@ dvp_relax_frag (fragP, stretch)
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;
if (growth < 0)
as_fatal ("internal error: bad direct alignment handling");