summaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a3854ab136..96ceb582a7 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-15 Jan Beulich <jbeulich@suse.com>
+
+ * config/tc-i386.c (build_modrm_byte): Add missing ! to reg64
+ check leading to abort().
+
2017-12-14 Nick Clifton <nickc@redhat.com>
* config/tc-m32c.c: Update address of FSF in copyright notice.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 092b99ed3a..36e5b1958a 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -6437,7 +6437,7 @@ build_modrm_byte (void)
if (i.tm.opcode_modifier.vexvvvv == VEXXDS)
{
/* For instructions with VexNDS, the register-only source
- operand must be 32/64bit integer, XMM, YMM or ZMM
+ operand must be a 32/64bit integer, XMM, YMM, ZMM, or mask
register. It is encoded in VEX prefix. We need to
clear RegMem bit before calling operand_type_equal. */
@@ -6459,7 +6459,7 @@ build_modrm_byte (void)
op.bitfield.regmem = 0;
if ((dest + 1) >= i.operands
|| (!op.bitfield.reg32
- && op.bitfield.reg64
+ && !op.bitfield.reg64
&& !operand_type_equal (&op, &regxmm)
&& !operand_type_equal (&op, &regymm)
&& !operand_type_equal (&op, &regzmm)