Increment size of relax sequence if we emit a nop

Ian Lance Taylor ian@wasabisystems.com
Thu Dec 9 15:51:00 GMT 2004


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;



More information about the Binutils mailing list