diff options
| author | iximeow <me@iximeow.net> | 2025-06-01 09:28:57 +0000 |
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2025-06-01 09:28:57 +0000 |
| commit | cf9ab8fcd04608c565da4fd1aff5bff47a5fe385 (patch) | |
| tree | a0c63b5d92a3e0d97abd0d1f19d2c89be0ddb3a5 | |
| parent | 54538a07bf4e0b8b2335e146198cda02a49589c8 (diff) | |
describe the per-isa extensions a bit better
| -rw-r--r-- | src/long_mode/mod.rs | 8 | ||||
| -rw-r--r-- | src/protected_mode/mod.rs | 8 | ||||
| -rw-r--r-- | src/real_mode/mod.rs | 8 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index 1ec924a..1a09f04 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -2793,6 +2793,14 @@ impl LengthedInstruction for Instruction { /// /// unless you're using an `Arc<Mutex<InstDecoder>>`, which is _fine_ but i'd be very curious about /// the design requiring that. +/// +/// `InstDecoder::default()` constructs a decoder that will decode all instructions valid in 64-bit +/// mode. the associated per-extension functions are not yet fully tested or implemented, and +/// should be considered unstable. +/// +/// the per-extension functions themselves will not change version to version, but if an +/// instruction is incorrectly accepted or rejected under a particular subset of ISA extension +/// flags, this will be fixed in a minor or patch version of `yaxpeax-x86. #[derive(PartialEq, Copy, Clone, Eq, Hash, PartialOrd, Ord)] pub struct InstDecoder { flags: [u64; 2], diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs index 835c934..56290d2 100644 --- a/src/protected_mode/mod.rs +++ b/src/protected_mode/mod.rs @@ -2709,6 +2709,14 @@ impl LengthedInstruction for Instruction { /// /// unless you're using an `Arc<Mutex<InstDecoder>>`, which is _fine_ but i'd be very curious about /// the design requiring that. +/// +/// `InstDecoder::default()` constructs a decoder that will decode all instructions valid in 32-bit +/// mode. the associated per-extension functions are not yet fully tested or implemented, and +/// should be considered unstable. +/// +/// the per-extension functions themselves will not change version to version, but if an +/// instruction is incorrectly accepted or rejected under a particular subset of ISA extension +/// flags, this will be fixed in a minor or patch version of `yaxpeax-x86. #[derive(PartialEq, Copy, Clone, Eq, Hash, PartialOrd, Ord)] pub struct InstDecoder { flags: [u64; 2], diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs index 8037d93..1ef76ea 100644 --- a/src/real_mode/mod.rs +++ b/src/real_mode/mod.rs @@ -2709,6 +2709,14 @@ impl LengthedInstruction for Instruction { /// /// unless you're using an `Arc<Mutex<InstDecoder>>`, which is _fine_ but i'd be very curious about /// the design requiring that. +/// +/// `InstDecoder::default()` constructs a decoder that will decode all instructions valid in 16-bit +/// mode. the associated per-extension functions are not yet fully tested or implemented, and +/// should be considered unstable. +/// +/// the per-extension functions themselves will not change version to version, but if an +/// instruction is incorrectly accepted or rejected under a particular subset of ISA extension +/// flags, this will be fixed in a minor or patch version of `yaxpeax-x86. #[derive(PartialEq, Copy, Clone, Eq, Hash, PartialOrd, Ord)] pub struct InstDecoder { flags: [u64; 2], |
