This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]