public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] Revert "gas: drop scrubber states 14 and 15"
@ 2024-08-12 17:57 H.J. Lu
  0 siblings, 0 replies; only message in thread
From: H.J. Lu @ 2024-08-12 17:57 UTC (permalink / raw)
  To: binutils-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=65d41fb015af0048347a25d0665bb1263eb982b0

commit 65d41fb015af0048347a25d0665bb1263eb982b0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 12 08:43:20 2024 -0700

    Revert "gas: drop scrubber states 14 and 15"
    
    This reverts commit 7dd0dfbde7ee31167a3b2e192a575493d26b7b0a.
    
    This is a prerequisite for the PR gas/32073 fix.

Diff:
---
 gas/app.c             | 29 +++++++++++++++++++++++++++++
 gas/config/tc-ia64.h  |  3 +++
 gas/config/tc-tic6x.h |  2 ++
 3 files changed, 34 insertions(+)

diff --git a/gas/app.c b/gas/app.c
index a47276e4816..b88b4c96137 100644
--- a/gas/app.c
+++ b/gas/app.c
@@ -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
diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h
index 665272adde3..8ab05373f6e 100644
--- a/gas/config/tc-ia64.h
+++ b/gas/config/tc-ia64.h
@@ -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
 
diff --git a/gas/config/tc-tic6x.h b/gas/config/tc-tic6x.h
index f21673e2d36..0b4223961e9 100644
--- a/gas/config/tc-tic6x.h
+++ b/gas/config/tc-tic6x.h
@@ -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.  */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-08-12 17:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-12 17:57 [binutils-gdb] Revert "gas: drop scrubber states 14 and 15" H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).