diff options
author | iximeow <me@iximeow.net> | 2021-06-27 14:57:03 -0700 |
---|---|---|
committer | iximeow <me@iximeow.net> | 2021-06-27 14:57:03 -0700 |
commit | c42f84b37c9be599442a44caab289f5fdf971649 (patch) | |
tree | ef6fbd22721917f341541cc20de8729084ecb3ec /src/long_mode | |
parent | bc16a5069bc53aec217e8f3a8a269c0e53b7eed7 (diff) |
protected-mode avx512
Diffstat (limited to 'src/long_mode')
-rw-r--r-- | src/long_mode/evex.rs | 11 | ||||
-rw-r--r-- | src/long_mode/mod.rs | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/long_mode/evex.rs b/src/long_mode/evex.rs index adfd014..483747b 100644 --- a/src/long_mode/evex.rs +++ b/src/long_mode/evex.rs @@ -2,5 +2,16 @@ use crate::long_mode::{DecodeError, RegSpec, RegisterBank, Instruction, Opcode}; use crate::long_mode::{read_modrm, read_E_vex, read_imm_unsigned}; +const DEFAULT_EVEX_REGISTER_SIZE: RegisterBank = RegisterBank::Q; +const DEFAULT_EVEX_REGISTER_WIDTH: u8 = 8; + +fn isa_has_qwords() -> bool { + true +} + +fn apply_disp_scale(inst: &mut Instruction) { + inst.disp *= inst.mem_size as u64; +} + include!("../shared/generated_evex.in"); include!("../shared/evex.in"); diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index 59bb321..1039260 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -7047,7 +7047,7 @@ fn read_instr<T: Iterator<Item=u8>>(decoder: &InstDecoder, mut bytes_iter: T, in return Err(DecodeError::InvalidPrefixes); } else { instruction.prefixes = prefixes; - evex::read_evex(&mut bytes_iter, instruction, length)?; + evex::read_evex(&mut bytes_iter, instruction, length, None)?; if decoder != &InstDecoder::default() { decoder.revise_instruction(instruction)?; } |