[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