diff options
| author | iximeow <me@iximeow.net> | 2020-08-03 01:21:52 -0700 | 
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2020-08-09 01:38:57 -0700 | 
| commit | 5603d0578982d2b8275bc1fa0538ccd97ba35fd0 (patch) | |
| tree | 72d3dabd59d13bd7dc3d0ffbd0237c921165306a | |
| parent | 967230df2e6e57996d92996ae350dbabc0946f87 (diff) | |
missing avx instr
| -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 { | 
