eva_asm/instruction/
memory.rs1use derive_more::Display;
4
5use crate::{
6 instruction::Instruction,
7 opcode::{Mnemonic, OpCode},
8};
9
10#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
12#[display("{}", self.opcode())]
13pub struct MLoad;
14
15impl Instruction for MLoad {
16 fn opcode(&self) -> OpCode {
17 OpCode::Known(Mnemonic::MLOAD)
18 }
19}
20
21#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
23#[display("{}", self.opcode())]
24pub struct MStore;
25
26impl Instruction for MStore {
27 fn opcode(&self) -> OpCode {
28 OpCode::Known(Mnemonic::MSTORE)
29 }
30}
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
34#[display("{}", self.opcode())]
35pub struct MStore8;
36
37impl Instruction for MStore8 {
38 fn opcode(&self) -> OpCode {
39 OpCode::Known(Mnemonic::MSTORE8)
40 }
41}
42
43#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
45#[display("{}", self.opcode())]
46pub struct MSize;
47
48impl Instruction for MSize {
49 fn opcode(&self) -> OpCode {
50 OpCode::Known(Mnemonic::MSIZE)
51 }
52}
53
54#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Display)]
56#[display("{}", self.opcode())]
57pub struct MCopy;
58
59impl Instruction for MCopy {
60 fn opcode(&self) -> OpCode {
61 OpCode::Known(Mnemonic::MCOPY)
62 }
63}