This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Increment size of relax sequence if we emit a nop
- From: Ian Lance Taylor <ian at wasabisystems dot com>
- To: binutils at sourceware dot org
- Date: 9 Dec 2004 10:51:11 -0500
- Subject: Increment size of relax sequence if we emit a nop
While experimenting with some code that I didn't check in, I noticed a
minor issue. If we insert a nop while processing a relax sequence, we
weren't accounting for the size of the inserted nop. This led to
confusing errors later on. This patch should be harmless for existing
relaxation sequences, but may make future ones a little easier to
handle. I'm about to commit it.
Ian
2004-12-09 Ian Lance Taylor <ian@wasabisystems.com>
* config/tc-mips.c (append_insn): If we emit a nop during a relax
sequence, increase the size of the sequence.
Index: config/tc-mips.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-mips.c,v
retrieving revision 1.275
diff -u -r1.275 tc-mips.c
--- config/tc-mips.c 9 Dec 2004 06:17:14 -0000 1.275
+++ config/tc-mips.c 9 Dec 2004 15:47:41 -0000
@@ -2542,6 +2542,8 @@
instruction at the destination, put it in the delay
slot, and bump the destination address. */
emit_nop ();
+ if (mips_relax.sequence)
+ mips_relax.sizes[mips_relax.sequence - 1] += 4;
/* Update the previous insn information. */
prev_prev_insn = *ip;
prev_insn.insn_mo = &dummy_opcode;