Revert "gas: drop scrubber states 14 and 15"

This reverts commit 7dd0dfbde7.

This is a prerequisite for the PR gas/32073 fix.
This commit is contained in:
H.J. Lu
2024-08-12 08:43:20 -07:00
parent 3fc9d4e2e5
commit 65d41fb015
3 changed files with 34 additions and 0 deletions

View File

@@ -485,6 +485,12 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen,
13: After seeing a vertical bar, looking for a second
vertical bar as a parallel expression separator.
#endif
#ifdef TC_PREDICATE_START_CHAR
14: After seeing a predicate start character at state 0, looking
for a predicate end character as predicate.
15: After seeing a predicate start character at state 1, looking
for a predicate end character as predicate.
#endif
#ifdef TC_Z80
16: After seeing an 'a' or an 'A' at the start of a symbol
17: After seeing an 'f' or an 'F' in state 16
@@ -771,6 +777,29 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen,
/* flushchar: */
ch = GET ();
#ifdef TC_PREDICATE_START_CHAR
if (ch == TC_PREDICATE_START_CHAR && (state == 0 || state == 1))
{
state += 14;
PUT (ch);
continue;
}
else if (state == 14 || state == 15)
{
if (ch == TC_PREDICATE_END_CHAR)
{
state -= 14;
PUT (ch);
ch = GET ();
}
else
{
PUT (ch);
continue;
}
}
#endif
recycle:
#if defined TC_ARM && defined OBJ_ELF

View File

@@ -78,6 +78,9 @@ extern const char *ia64_target_format (void);
#define LEX_QM (LEX_NAME|LEX_BEGIN_NAME) /* allow `?' inside name */
#define LEX_HASH LEX_END_NAME /* allow `#' ending a name */
#define TC_PREDICATE_START_CHAR '('
#define TC_PREDICATE_END_CHAR ')'
extern const char ia64_symbol_chars[];
#define tc_symbol_chars ia64_symbol_chars

View File

@@ -24,6 +24,8 @@
#define DOUBLEBAR_PARALLEL
#define DWARF2_LINE_MIN_INSN_LENGTH 2
#define MD_APPLY_SYM_VALUE(FIX) 0
#define TC_PREDICATE_START_CHAR '['
#define TC_PREDICATE_END_CHAR ']'
/* For TI C6X, we keep spaces in what the preprocessor considers
operands as they may separate functional unit specifiers from
operands. */