diff options
author | iximeow <me@iximeow.net> | 2021-01-15 14:52:11 -0800 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2021-01-15 14:52:11 -0800 |
commit | f057c712f91b215034fe84fa0f22694aaa8dffb3 (patch) | |
tree | 6c28340154b900ba984ccd188fd7149aa4de6d75 /src/long_mode/display.rs | |
parent | 81e9b93aab9217cf7cb508f64b19fc1c0df024b5 (diff) |
fix several missing or invalid decodings among 0f01 opcodes
* `mwaitx`, `monitorx`, `rdpru`, and `clzero` are now supported
* swapgs is no longer decoded in protected mode
* rdpkru and wrpkru are no longer decoded if mod bits != 11
Diffstat (limited to 'src/long_mode/display.rs')
-rw-r--r-- | src/long_mode/display.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs index e653399..c3f4413 100644 --- a/src/long_mode/display.rs +++ b/src/long_mode/display.rs @@ -513,6 +513,8 @@ const MNEMONICS: &[&'static str] = &[ "vmxoff", "monitor", "mwait", + "monitorx", + "mwaitx", "clac", "stac", "encls", @@ -527,6 +529,8 @@ const MNEMONICS: &[&'static str] = &[ "enclu", "rdpkru", "wrpkru", + "rdpru", + "clzero", "rdseed", "rdrand", "addps", @@ -2152,6 +2156,8 @@ impl <T: fmt::Write, Color: fmt::Display, Y: YaxColors<Color>> Colorize<T, Color Opcode::VMXOFF | Opcode::MONITOR | Opcode::MWAIT | + Opcode::MONITORX | + Opcode::MWAITX | Opcode::SKINIT | Opcode::CLGI | Opcode::STGI | @@ -2169,6 +2175,8 @@ impl <T: fmt::Write, Color: fmt::Display, Y: YaxColors<Color>> Colorize<T, Color Opcode::ENCLU | Opcode::RDPKRU | Opcode::WRPKRU | + Opcode::RDPRU | + Opcode::CLZERO | Opcode::LAR => { write!(out, "{}", colors.platform_op(self)) } Opcode::CRC32 | |