aboutsummaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2023-12-16 14:47:02 -0800
committeriximeow <me@iximeow.net>2023-12-16 14:47:02 -0800
commit2d303b6121e318e30572dd1134ddb0cf12bd0776 (patch)
tree568f60640a00fd707d690b875fdb9ca7bf5b125f /src/shared
parent4d2e196e616162726c6211abc46c043078425322 (diff)
fix incorrect register selection for `vpmovm2*` with `rex.b` set
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/evex.in2
1 files changed, 2 insertions, 0 deletions
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);
}