[PATCH] Additional TC_EQUAL_IN_INSN check

Alan Modra amodra@bigpond.net.au
Fri Feb 18 12:36:00 GMT 2005


On Thu, Feb 17, 2005 at 12:33:16PM -0600, Catherine Moore wrote:
> It turns out that the only port
> (other than the one I'm working on) which uses this macro is the hppa and
> the hppa port doesn't look at the string.

Actually, the hppa port definition does exactly nothing, since
TC_EQUAL_IN_INSN is only invoked with c == ' ' or c == '\t'.  I'm
removing the macro and its documentation.  This should make it easier
for you to add back a macro that does what you need.

>   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{s} at that point.  GAS uses this macro to decide if a
>   @kbd{=} is an assignment or an instruction.

BTW, this isn't acceptable.  "The value of `s'" doesn't mean a thing to
anyone who is reading this documentation.

	* config/tc-hppa.h (TC_EQUAL_IN_INSN): Delete.
	* read.c (read_a_source_file): Remove TC_EQUAL_IN_INSN test.
	* doc/internals.texi (TC_EQUAL_IN_INSN): Delete.

Index: gas/config/tc-hppa.h
===================================================================
RCS file: /cvs/src/src/gas/config/tc-hppa.h,v
retrieving revision 1.26
diff -u -p -r1.26 tc-hppa.h
--- gas/config/tc-hppa.h	27 Jul 2004 22:30:25 -0000	1.26
+++ gas/config/tc-hppa.h	18 Feb 2005 02:51:20 -0000
@@ -1,6 +1,6 @@
 /* tc-hppa.h -- Header file for the PA
    Copyright 1989, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003 Free Software Foundation, Inc.
+   2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -119,15 +119,9 @@ extern const char	hppa_symbol_chars[];
   parse_cons_expression_hppa (EXP)
 #define TC_CONS_FIX_NEW cons_fix_new_hppa
 
-/* On the PA, an equal sign often appears as a condition or nullification
-   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
-   it will always follow a comma.  */
+/* On the PA, an exclamation point can appear in an instruction.  It is
+   used in FP comparison instructions and as an end of line marker.
+   When used in an instruction it will always follow a comma.  */
 #define TC_EOL_IN_INSN(PTR)	(*(PTR) == '!' && (PTR)[-1] == ',')
 
 int hppa_fix_adjustable PARAMS((struct fix *));
Index: gas/read.c
===================================================================
RCS file: /cvs/src/src/gas/read.c,v
retrieving revision 1.89
diff -u -p -r1.89 read.c
--- gas/read.c	17 Feb 2005 13:46:00 -0000	1.89
+++ gas/read.c	18 Feb 2005 02:47:13 -0000
@@ -710,11 +710,7 @@ read_a_source_file (char *name)
 		}
 	      else if (c == '='
 		       || ((c == ' ' || c == '\t')
-			   && input_line_pointer[1] == '='
-#ifdef TC_EQUAL_IN_INSN
-			   && !TC_EQUAL_IN_INSN (c, input_line_pointer)
-#endif
-			   ))
+			   && input_line_pointer[1] == '='))
 		{
 		  equals (s, 1);
 		  demand_empty_rest_of_line ();
Index: gas/doc/internals.texi
===================================================================
RCS file: /cvs/src/src/gas/doc/internals.texi,v
retrieving revision 1.40
diff -u -p -r1.40 internals.texi
--- gas/doc/internals.texi	17 Aug 2004 12:19:58 -0000	1.40
+++ gas/doc/internals.texi	18 Feb 2005 02:47:14 -0000
@@ -1024,14 +1024,6 @@ LABELS_WITHOUT_COLONS is defined.
 If you define this macro, GAS will not require pseudo-ops to start with a
 @kbd{.} character.
 
-@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
 If you define this macro, it should return nonzero if the current input line



More information about the Binutils mailing list