From 2d303b6121e318e30572dd1134ddb0cf12bd0776 Mon Sep 17 00:00:00 2001 From: iximeow Date: Sat, 16 Dec 2023 14:47:02 -0800 Subject: fix incorrect register selection for `vpmovm2*` with `rex.b` set --- src/shared/evex.in | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/shared') diff --git a/src/shared/evex.in b/src/shared/evex.in index efeec20..837b867 100644 --- a/src/shared/evex.in +++ b/src/shared/evex.in @@ -2842,6 +2842,8 @@ pub(crate) fn read_evex_operands< if mem_oper == OperandSpec::RegMMM { instruction.mem_size = 0; instruction.regs[1].bank = RegisterBank::K; + // only 8 mask registers, `xed` suggests that any invalid bits are masked out??? + instruction.regs[1].num &= 0b111; } else { return Err(DecodeError::InvalidOperand); } -- cgit v1.1