aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2018-04-26 08:29:09 +0200
committerJan Beulich <jbeulich@suse.com>2018-04-26 08:29:09 +0200
commitdcd7e323760ab296262a2e18e9869d37ff59f340 (patch)
treee99379f41e148453d0633a481b70a1cd94aa16e5 /gas
parent6b8d358865b10f3f8269d0d89ece1b19b114be0d (diff)
downloadfsf-binutils-gdb-dcd7e323760ab296262a2e18e9869d37ff59f340.zip
fsf-binutils-gdb-dcd7e323760ab296262a2e18e9869d37ff59f340.tar.gz
fsf-binutils-gdb-dcd7e323760ab296262a2e18e9869d37ff59f340.tar.bz2
x86: tighten assertion in build_modrm_byte()
All VEX3SOURCES cases should have VexW set, and all should have a SIMD register destination.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 057a45f..7cd0a10 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2018-04-26 Jan Beulich <jbeulich@suse.com>
+ * config/tc-i386.c (build_modrm_byte): Extend assertion in
+ vex_3_sources handling to cover more cases.
+
+2018-04-26 Jan Beulich <jbeulich@suse.com>
+
* config/tc-i386.c (build_modrm_byte): Drop code dealing with
.veximmext and .immext set at the same time. Drop code dealing
with .cpufma when .vexsources == VEX3SOURCES.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 014720e..7126ca4 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -6591,10 +6591,9 @@ build_modrm_byte (void)
&& i.tm.opcode_modifier.vexvvvv == VEXXDS
&& (i.tm.opcode_modifier.veximmext
|| (i.imm_operands == 1
- && i.types[0].bitfield.vec_imm4
- && (i.tm.opcode_modifier.vexw == VEXW0
- || i.tm.opcode_modifier.vexw == VEXW1)
- && i.tm.operand_types[dest].bitfield.regsimd)));
+ && i.types[0].bitfield.vec_imm4))
+ && i.tm.opcode_modifier.vexw
+ && i.tm.operand_types[dest].bitfield.regsimd);
if (i.imm_operands == 0)
{