[binutils-gdb] x86: immediate operands don't allow for vector operations

Jan Beulich jbeulich@sourceware.org
Mon Jun 7 10:02:24 GMT 2021


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

commit 4e014f6ac0a2420f615a902af4370b1a45087bb6
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Jun 7 12:00:38 2021 +0200

    x86: immediate operands don't allow for vector operations
    
    Neither masking nor broadcast are possible here, and RC/SAE get dealt
    with elsewhere.
    
    This also fixes gas crashes (i.e. "Fatal error: unable to continue with
    assembly"), since the return path being removed failed to restore
    input_line_pointer from save_input_line_pointer.

Diff:
---
 gas/ChangeLog        |  4 ++++
 gas/config/tc-i386.c | 10 ----------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index b1d65569ce8..a87815c5d43 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2021-06-07  Jan Beulich  <jbeulich@suse.com>
+
+	* config/tc-i386.c (i386_immediate): Don't call check_VecOperations.
+
 2021-06-07  Jan Beulich  <jbeulich@suse.com>
 
 	* config/tc-i386.c (extend_to_32bit_address): New.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index a6bc597a354..9e7a97f37fd 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -10689,16 +10689,6 @@ i386_immediate (char *imm_start)
   exp_seg = expression (exp);
 
   SKIP_WHITESPACE ();
-
-  /* Handle vector operations.  */
-  if (*input_line_pointer == '{')
-    {
-      input_line_pointer = check_VecOperations (input_line_pointer,
-						NULL);
-      if (input_line_pointer == NULL)
-	return 0;
-    }
-
   if (*input_line_pointer)
     as_bad (_("junk `%s' after expression"), input_line_pointer);


More information about the Binutils-cvs mailing list