x86: immediate operands don't allow for vector operations
authorJan Beulich <jbeulich@suse.com>
Mon, 7 Jun 2021 10:00:38 +0000 (12:00 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 7 Jun 2021 10:00:38 +0000 (12:00 +0200)
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.

gas/ChangeLog
gas/config/tc-i386.c

index b1d65569ce8e9dba7fd1d6cf28ff6b301c7984c3..a87815c5d4351a074556aa3bef997c45ef684d61 100644 (file)
@@ -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.
index a6bc597a3548c08744dc4544560156d2f8496637..9e7a97f37fde1368b98ac5540889b4a9e86a1f46 100644 (file)
@@ -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);