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]

[PATCH] Additional TC_EQUAL_IN_INSN check


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





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