[binutils-gdb] x86: tighten assertion in build_modrm_byte()
Jan Beulich
jbeulich@sourceware.org
Thu Apr 26 06:31:00 GMT 2018
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=dcd7e323760ab296262a2e18e9869d37ff59f340
commit dcd7e323760ab296262a2e18e9869d37ff59f340
Author: Jan Beulich <jbeulich@novell.com>
Date: Thu Apr 26 08:29:09 2018 +0200
x86: tighten assertion in build_modrm_byte()
All VEX3SOURCES cases should have VexW set, and all should have a SIMD
register destination.
Diff:
---
gas/ChangeLog | 5 +++++
gas/config/tc-i386.c | 7 +++----
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)
{
More information about the Binutils-cvs
mailing list