diff options
-rw-r--r-- | src/long_mode/display.rs | 2 | ||||
-rw-r--r-- | src/long_mode/mod.rs | 2 | ||||
-rw-r--r-- | src/long_mode/vex.rs | 5 |
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 { |