diff options
author | iximeow <me@iximeow.net> | 2023-12-16 14:47:02 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2023-12-16 14:47:02 -0800 |
commit | 2d303b6121e318e30572dd1134ddb0cf12bd0776 (patch) | |
tree | 568f60640a00fd707d690b875fdb9ca7bf5b125f /src/shared/evex.in | |
parent | 4d2e196e616162726c6211abc46c043078425322 (diff) |
fix incorrect register selection for `vpmovm2*` with `rex.b` set
Diffstat (limited to 'src/shared/evex.in')
-rw-r--r-- | src/shared/evex.in | 2 |
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); } |