diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a3854ab..96ceb58 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 092b99e..36e5b19 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, ®xmm) && !operand_type_equal (&op, ®ymm) && !operand_type_equal (&op, ®zmm) |