aboutsummaryrefslogtreecommitdiff
path: root/src/real_mode/evex.rs
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2021-07-04 12:55:21 -0700
committeriximeow <me@iximeow.net>2021-07-04 12:55:21 -0700
commit2c84821ee0d9807d20ea82b8550edde09426a867 (patch)
treefa178ef6cb0bbd108e1c36b30dbb150b81bfe6fa /src/real_mode/evex.rs
parent2a3b81c024c28f1676046918c2ceecee8fe7777d (diff)
add real-mode decoder
Diffstat (limited to 'src/real_mode/evex.rs')
-rw-r--r--src/real_mode/evex.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/real_mode/evex.rs b/src/real_mode/evex.rs
new file mode 100644
index 0000000..9840b35
--- /dev/null
+++ b/src/real_mode/evex.rs
@@ -0,0 +1,18 @@
+// use crate::long_mode::{OperandSpec, DecodeError, RegSpec, RegisterBank, Instruction, Opcode};
+use crate::real_mode::{Arch, DecodeError, RegSpec, RegisterBank, Instruction, Opcode};
+use crate::real_mode::{read_modrm, read_E_vex, read_imm_unsigned};
+use yaxpeax_arch::Reader;
+
+const DEFAULT_EVEX_REGISTER_SIZE: RegisterBank = RegisterBank::D;
+const DEFAULT_EVEX_REGISTER_WIDTH: u8 = 4;
+
+fn isa_has_qwords() -> bool {
+ false
+}
+
+fn apply_disp_scale(inst: &mut Instruction) {
+ inst.disp *= inst.mem_size as u32;
+}
+
+include!("../shared/generated_evex.in");
+include!("../shared/evex.in");