aboutsummaryrefslogtreecommitdiff
path: root/src/long_mode/mod.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2026-05-13 04:30:27 +0000
committeriximeow <me@iximeow.net>2026-05-13 04:30:27 +0000
commit89549f17a48236b890f4af254e75c379455a00f1 (patch)
treeecbbb3f6d9175a2ec0f1497c5923f335bb999e17 /src/long_mode/mod.rs
parent6f0426bc30ae65aac2f08cbf90aafa823f4554bc (diff)
add behavior fuzzing, fix some stuff it noticed
Diffstat (limited to 'src/long_mode/mod.rs')
-rw-r--r--src/long_mode/mod.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs
index 1b5caf1..04b89ff 100644
--- a/src/long_mode/mod.rs
+++ b/src/long_mode/mod.rs
@@ -462,6 +462,9 @@ impl OperandSpec {
fn is_memory(&self) -> bool {
(*self as u8) & 0x80 != 0
}
+ fn is_masked(&self) -> bool {
+ (*self as u8) & 0x40 != 0
+ }
}
/// an `avx512` merging mode.
@@ -7128,6 +7131,8 @@ fn read_operands<
instruction.imm = read_num(words, 1)? as u64;
instruction.operands[0] = OperandSpec::ImmInDispField;
instruction.operands[1] = OperandSpec::ImmU8;
+ // because there is an implied push of the adjusted base pointer
+ instruction.mem_size = 8;
instruction.operand_count = 2;
}
OperandCase::Fw => {