aboutsummaryrefslogtreecommitdiff
path: root/src/long_mode
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-06-27 14:57:03 -0700
committeriximeow <me@iximeow.net>2021-06-27 14:57:03 -0700
commitc42f84b37c9be599442a44caab289f5fdf971649 (patch)
treeef6fbd22721917f341541cc20de8729084ecb3ec /src/long_mode
parentbc16a5069bc53aec217e8f3a8a269c0e53b7eed7 (diff)
protected-mode avx512
Diffstat (limited to 'src/long_mode')
-rw-r--r--src/long_mode/evex.rs11
-rw-r--r--src/long_mode/mod.rs2
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)?;
}