From 97f1c7e15a35df264dae91d76660db4762bd5d25 Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 3 Aug 2020 01:51:39 -0700 Subject: vpermq (avx2) --- src/long_mode/vex.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/long_mode') diff --git a/src/long_mode/vex.rs b/src/long_mode/vex.rs index cdca801..8325e3f 100644 --- a/src/long_mode/vex.rs +++ b/src/long_mode/vex.rs @@ -772,8 +772,19 @@ fn read_vex_operands>(bytes: &mut T, instruction: &mut Inst instruction.vex_reg.bank = bank; Ok(()) } + VEXOperandCode::G_E_ymm_imm8 => { + let modrm = read_modrm(bytes, length)?; + instruction.modrm_rrr = + RegSpec::from_parts((modrm >> 3) & 7, instruction.prefixes.vex().r(), RegisterBank::Y); + let mem_oper = read_E_ymm(bytes, instruction, modrm, length)?; + instruction.operands[0] = OperandSpec::RegRRR; + instruction.operands[1] = mem_oper; + instruction.imm = read_imm_unsigned(bytes, 1, length)?; + instruction.operands[2] = OperandSpec::ImmU8; + instruction.operand_count = 3; + Ok(()) + } - VEXOperandCode::G_E_ymm_imm8 | VEXOperandCode::G_V_E_xmm_xmm4 | VEXOperandCode::G_V_E_ymm_ymm4 | VEXOperandCode::G_V_ymm_E_xmm | -- cgit v1.1