aboutsummaryrefslogtreecommitdiff
path: root/src/long_mode
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-07-03 09:42:25 -0700
committeriximeow <me@iximeow.net>2021-07-03 09:43:13 -0700
commitd548b9d8b7d2163d524c2a25ff0cb7e794e4e11d (patch)
tree77bc53ca1b645b09329f848f9be99e806dbb4ae1 /src/long_mode
parent77efbb834a5119b93e656dce6189f36df89645bb (diff)
support pconfig/tme
Diffstat (limited to 'src/long_mode')
-rw-r--r--src/long_mode/display.rs2
-rw-r--r--src/long_mode/mod.rs4
2 files changed, 6 insertions, 0 deletions
diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs
index 049b96d..5f74a3e 100644
--- a/src/long_mode/display.rs
+++ b/src/long_mode/display.rs
@@ -598,6 +598,7 @@ const MNEMONICS: &[&'static str] = &[
"vmlaunch",
"vmresume",
"vmxoff",
+ "pconfig",
"monitor",
"mwait",
"monitorx",
@@ -3131,6 +3132,7 @@ impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode {
Opcode::VMSAVE |
Opcode::VMRUN |
Opcode::VMXOFF |
+ Opcode::PCONFIG |
Opcode::MONITOR |
Opcode::MWAIT |
Opcode::MONITORX |
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs
index 41e24e6..125716f 100644
--- a/src/long_mode/mod.rs
+++ b/src/long_mode/mod.rs
@@ -1295,6 +1295,7 @@ pub enum Opcode {
VMLAUNCH,
VMRESUME,
VMXOFF,
+ PCONFIG,
MONITOR,
MWAIT,
MONITORX,
@@ -9157,6 +9158,9 @@ fn unlikely_operands<T: Reader<<Arch as yaxpeax_arch::Arch>::Address, <Arch as y
0b100 => {
instruction.opcode = Opcode::VMXOFF;
},
+ 0b101 => {
+ instruction.opcode = Opcode::PCONFIG;
+ },
_ => {
return Err(DecodeError::InvalidOpcode);
}