1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use signal::Signal;
use target::Target;
use type_t::Type;
use typedef::*;
use value::Value;
#[derive(Serialize, Deserialize, Debug, Clone)]
pub enum Instruction {
Add(Target, Target),
Sub(Target, Target),
Div(Target, Target),
Mul(Target, Target),
Rem(Target, Target),
Cmp(Target, Target),
Jmp(Address),
JmpLt(Address),
JmpGt(Address),
JmpEq(Address),
JmpLtEq(Address),
JmpGtEq(Address),
Cast(Target, Type),
Push(Target, Value),
Mov(Target, Target),
Swp(Target, Target),
Dup(Target),
Call(Address),
Ret,
Halt,
Pause,
Nop,
Sig(Signal),
}