aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-06-07 12:00:38 +0200
committerJan Beulich <jbeulich@suse.com>2021-06-07 12:00:38 +0200
commit4e014f6ac0a2420f615a902af4370b1a45087bb6 (patch)
tree4104c01fdb7faf0503f48f77308052907386d8c0 /gas
parenta442cac5084e97d47223bac61cfc4d168c568ba4 (diff)
downloadfsf-binutils-gdb-4e014f6ac0a2420f615a902af4370b1a45087bb6.zip
fsf-binutils-gdb-4e014f6ac0a2420f615a902af4370b1a45087bb6.tar.gz
fsf-binutils-gdb-4e014f6ac0a2420f615a902af4370b1a45087bb6.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-i386.c10
2 files changed, 4 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index b1d6556..a87815c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
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.
(x86_cons, i386_finalize_immediate, md_apply_fix): Use it.
(signed_cons): Use object_64bit.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index a6bc597..9e7a97f 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);