diff options
author | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-12-13 01:13:20 +0100 |
---|---|---|
committer | Johannes Stoelp <johannes.stoelp@gmail.com> | 2024-12-13 01:13:20 +0100 |
commit | 758f014afb8ec5c20ef2fc862fc12e80f65d3d25 (patch) | |
tree | 41900866f4502e63aa5e20e725a30d543cf936f1 /src/insn/dec.rs | |
parent | a403a7255190f65ea73ccaf382ec7af1a98b94ad (diff) | |
download | juicebox-asm-758f014afb8ec5c20ef2fc862fc12e80f65d3d25.tar.gz juicebox-asm-758f014afb8ec5c20ef2fc862fc12e80f65d3d25.zip |
mem: make all memory operands explicit in size
* remove non size explicit MemOp
* introduce private Mem trait
* implement Mem8, Mem16, Mem32 and Mem64 operands
* implement EncodeX helpers based on explicit memory operands
* fixup instructions with explicit memory operands
* fixup examples
Diffstat (limited to 'src/insn/dec.rs')
-rw-r--r-- | src/insn/dec.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/insn/dec.rs b/src/insn/dec.rs index 66b83aa..545bc54 100644 --- a/src/insn/dec.rs +++ b/src/insn/dec.rs @@ -1,5 +1,5 @@ use super::Dec; -use crate::{Asm, MemOp16, MemOp32, MemOp64, MemOp8, Reg32, Reg64}; +use crate::{Asm, Mem16, Mem32, Mem64, Mem8, Reg32, Reg64}; impl Dec<Reg64> for Asm { fn dec(&mut self, op1: Reg64) { @@ -13,26 +13,26 @@ impl Dec<Reg32> for Asm { } } -impl Dec<MemOp8> for Asm { - fn dec(&mut self, op1: MemOp8) { +impl Dec<Mem8> for Asm { + fn dec(&mut self, op1: Mem8) { self.encode_m(0xfe, 1, op1); } } -impl Dec<MemOp16> for Asm { - fn dec(&mut self, op1: MemOp16) { +impl Dec<Mem16> for Asm { + fn dec(&mut self, op1: Mem16) { self.encode_m(0xff, 1, op1); } } -impl Dec<MemOp32> for Asm { - fn dec(&mut self, op1: MemOp32) { +impl Dec<Mem32> for Asm { + fn dec(&mut self, op1: Mem32) { self.encode_m(0xff, 1, op1); } } -impl Dec<MemOp64> for Asm { - fn dec(&mut self, op1: MemOp64) { +impl Dec<Mem64> for Asm { + fn dec(&mut self, op1: Mem64) { self.encode_m(0xff, 1, op1); } } |