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]

a few more Xtensa GAS fixes


This patch clarifies a confusing error message and fixes an obscure problem in the Xtensa port that was exposed by an unrelated bug in Tensilica's code. I don't know how to write a testcase that will show the problem. Committed on the mainline.

2005-05-13  Sterling Augustine  <sterling@tensilica.com>
	    Bob Wilson  <bob.wilson@acm.org>

	* config/tc-xtensa.c (xtensa_insnbuf_set_operand): Clarify error
	message.
	(xtensa_mark_zcl_first_insns): Fix incorrect nesting of conditional
	for handling RELAX_CHECK_ALIGN_NEXT_OPCODE.

Index: config/tc-xtensa.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-xtensa.c,v
retrieving revision 1.40
diff -u -p -r1.40 tc-xtensa.c
--- config/tc-xtensa.c	6 May 2005 21:27:47 -0000	1.40
+++ config/tc-xtensa.c	12 May 2005 03:48:59 -0000
@@ -2707,12 +2707,16 @@ xtensa_insnbuf_set_operand (xtensa_insnb
       if (xtensa_operand_is_PCrelative (xtensa_default_isa, opcode, operand)
 	  == 1)
 	as_bad_where ((char *) file, line,
-		      _("operand %u is out of range for '%s'"), value,
-		      xtensa_opcode_name (xtensa_default_isa, opcode));
+		      _("operand %d of '%s' has out of range value '%u'"), 
+		      operand + 1,
+		      xtensa_opcode_name (xtensa_default_isa, opcode),
+		      value);
       else
 	as_bad_where ((char *) file, line,
-		      _("operand %u is invalid for '%s'"), value,
-		      xtensa_opcode_name (xtensa_default_isa, opcode));
+		      _("operand %d of '%s' has invalid value '%u'"),
+		      operand + 1,
+		      xtensa_opcode_name (xtensa_default_isa, opcode),
+		      value);
       return;
     }
 
@@ -7135,11 +7139,9 @@ xtensa_mark_zcl_first_insns (void)
 	      /* Of course, sometimes (mostly for toy test cases) a
 		 zero-cost loop instruction is the last in a section.  */
 	      if (targ_frag)
-		{
-		  targ_frag->tc_frag_data.is_first_loop_insn = TRUE;
-		  if (fragP->fr_subtype == RELAX_CHECK_ALIGN_NEXT_OPCODE)
-		    frag_wane (fragP);
-		}
+		targ_frag->tc_frag_data.is_first_loop_insn = TRUE;
+	      if (fragP->fr_subtype == RELAX_CHECK_ALIGN_NEXT_OPCODE)
+		frag_wane (fragP);
 	    }
 	}
     }

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