This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH] Additional TC_EQUAL_IN_INSN check
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: Catherine Moore <clm at cm00re dot com>
- Cc: 'Nick Clifton' <nickc at redhat dot com>, binutils at sourceware dot org
- Date: Fri, 18 Feb 2005 13:26:13 +1030
- Subject: Re: [PATCH] Additional TC_EQUAL_IN_INSN check
- References: <42133AF4.2070602@redhat.com> <20050217183642.EVRM13037.imta01ps.mx.bigpond.com@psmam02.bigpond.com>
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