[PATCH] Additional TC_EQUAL_IN_INSN check

Catherine Moore clm@cm00re.com
Tue Feb 15 18:10:00 GMT 2005


This patch adds an argument to TC_EQUAL_IN_INSN so that the current string
can be checked.  It also adds an additional check for TC_EQUAL_IN_INSN in
read_a_source_file.  The gas tests passed on targets linux, hppa-elf and
v850-elf. 

Okay to apply?

Thanks,
Catherine

2005-02-15  Catherine Moore <clm@cm00re.com>

	* read.c (read_a_source_file): Pass s to TC_EQUAL_IN_INSN.
	Add additional check for TC_EQUAL_IN_INSN.
	* config/tc-hppa.h (TC_EQUAL_IN_INSN): Add argument.
	* doc/internals.texi (TC_EQUAL_IN_INSN): Document new argument.


Index: doc/internals.texi
===================================================================
RCS file: /cvs/src/src/gas/doc/internals.texi,v
retrieving revision 1.40
diff -p -r1.40 internals.texi
*** doc/internals.texi	17 Aug 2004 12:19:58 -0000	1.40
--- doc/internals.texi	15 Feb 2005 13:14:43 -0000
*************** If you define this macro, GAS will not r
*** 1027,1036 ****
  @item TC_EQUAL_IN_INSN
  @cindex TC_EQUAL_IN_INSN
  If you define this macro, it should return nonzero if the instruction is
! permitted to contain an @kbd{=} character.  GAS will call it with two
! arguments, the character before the @kbd{=} character, and the value of
! @code{input_line_pointer} at that point.  GAS uses this macro to decide if
a
! @kbd{=} is an assignment or an instruction.
  
  @item TC_EOL_IN_INSN
  @cindex TC_EOL_IN_INSN
--- 1027,1036 ----
  @item TC_EQUAL_IN_INSN
  @cindex TC_EQUAL_IN_INSN
  If you define this macro, it should return nonzero if the instruction is
! permitted to contain an @kbd{=} character.  GAS will call it with three
! arguments, the character before the @kbd{=} character, the current string
! @code{s}, and the value of @code{input_line_pointer} at that point.  GAS
! uses this macro to decide if a @kbd{=} is an assignment or an instruction.
  
  @item TC_EOL_IN_INSN
  @cindex TC_EOL_IN_INSN
Index: read.c
===================================================================
RCS file: /cvs/src/src/gas/read.c,v
retrieving revision 1.88
diff -p -r1.88 read.c
*** read.c	31 Jan 2005 14:26:08 -0000	1.88
--- read.c	15 Feb 2005 13:14:46 -0000
*************** read_a_source_file (char *name)
*** 708,720 ****
  		  /* Input_line_pointer->after ':'.  */
  		  SKIP_WHITESPACE ();
  		}
! 	      else if (c == '='
  		       || ((c == ' ' || c == '\t')
  			   && input_line_pointer[1] == '='
  #ifdef TC_EQUAL_IN_INSN
! 			   && !TC_EQUAL_IN_INSN (c, input_line_pointer)
  #endif
  			   ))
  		{
  		  equals (s, 1);
  		  demand_empty_rest_of_line ();
--- 708,724 ----
  		  /* Input_line_pointer->after ':'.  */
  		  SKIP_WHITESPACE ();
  		}
! 	      else if ((c == '='
  		       || ((c == ' ' || c == '\t')
  			   && input_line_pointer[1] == '='
  #ifdef TC_EQUAL_IN_INSN
! 			   && !TC_EQUAL_IN_INSN (c, s, input_line_pointer)
  #endif
  			   ))
+ #ifdef TC_EQUAL_IN_INSN
+ 		      && !TC_EQUAL_IN_INSN (c, s, input_line_pointer)
+ #endif
+ 		      )
  		{
  		  equals (s, 1);
  		  demand_empty_rest_of_line ();
Index: config/tc-hppa.h
===================================================================
RCS file: /cvs/src/src/gas/config/tc-hppa.h,v
retrieving revision 1.26
diff -p -r1.26 tc-hppa.h
*** config/tc-hppa.h	27 Jul 2004 22:30:25 -0000	1.26
--- config/tc-hppa.h	15 Feb 2005 13:14:46 -0000
*************** extern const char	hppa_symbol_chars[];
*** 123,129 ****
     completer in an instruction.  This can be detected by checking the
     previous character, if the character is a comma, then the equal is
     being used as part of an instruction.  */
! #define TC_EQUAL_IN_INSN(C, PTR)	((C) == ',')
  
  /* Similarly for an exclamation point.  It is used in FP comparison
     instructions and as an end of line marker.  When used in an instruction
--- 123,129 ----
     completer in an instruction.  This can be detected by checking the
     previous character, if the character is a comma, then the equal is
     being used as part of an instruction.  */
! #define TC_EQUAL_IN_INSN(C, NAME, PTR)	((C) == ',')
  
  /* Similarly for an exclamation point.  It is used in FP comparison
     instructions and as an end of line marker.  When used in an instruction






More information about the Binutils mailing list