aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2020-08-03 01:21:52 -0700
committeriximeow <me@iximeow.net>2020-08-09 01:38:57 -0700
commit5603d0578982d2b8275bc1fa0538ccd97ba35fd0 (patch)
tree72d3dabd59d13bd7dc3d0ffbd0237c921165306a /src
parent967230df2e6e57996d92996ae350dbabc0946f87 (diff)
missing avx instr
Diffstat (limited to 'src')
-rw-r--r--src/long_mode/display.rs2
-rw-r--r--src/long_mode/mod.rs2
-rw-r--r--src/long_mode/vex.rs5
3 files changed, 9 insertions, 0 deletions
diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs
index 2bd9ad8..8c73d1a 100644
--- a/src/long_mode/display.rs
+++ b/src/long_mode/display.rs
@@ -927,6 +927,7 @@ const MNEMONICS: &[&'static str] = &[
"vpmaxsb",
"vpmaxsd",
"vpmaxsw",
+ "vpmaxub",
"vpmaxud",
"vpminsd",
"vpminud",
@@ -2024,6 +2025,7 @@ impl <T: fmt::Write, Color: fmt::Display, Y: YaxColors<Color>> Colorize<T, Color
Opcode::VPMAXSB |
Opcode::VPMAXSD |
Opcode::VPMAXSW |
+ Opcode::VPMAXUB |
Opcode::VPMAXUD |
Opcode::VPMINSD |
Opcode::VPMINUD |
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs
index 17c0521..04d1fc6 100644
--- a/src/long_mode/mod.rs
+++ b/src/long_mode/mod.rs
@@ -1219,6 +1219,7 @@ pub enum Opcode {
VPMAXSB,
VPMAXSD,
VPMAXSW,
+ VPMAXUB,
VPMAXUD,
VPMINSD,
VPMINUD,
@@ -2736,6 +2737,7 @@ impl InstDecoder {
Opcode::VPMAXSB |
Opcode::VPMAXSD |
Opcode::VPMAXSW |
+ Opcode::VPMAXUB |
Opcode::VPMAXUD |
Opcode::VPMINSD |
Opcode::VPMINUD |
diff --git a/src/long_mode/vex.rs b/src/long_mode/vex.rs
index c944532..02ce061 100644
--- a/src/long_mode/vex.rs
+++ b/src/long_mode/vex.rs
@@ -1330,6 +1330,11 @@ fn read_vex_instruction<T: Iterator<Item=u8>>(opcode_map: VEXOpcodeMap, bytes: &
} else {
VEXOperandCode::G_V_E_xmm
}),
+ 0xDE => (Opcode::VPMAXUB, if L {
+ VEXOperandCode::G_V_E_ymm
+ } else {
+ VEXOperandCode::G_V_E_xmm
+ }),
0xDF => (Opcode::VPANDN, if L {
VEXOperandCode::G_V_E_ymm
} else {