31 lines
491 B
Rust
31 lines
491 B
Rust
|
|
use crate::vm::reg::*;
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||
|
|
#[allow(dead_code)]
|
||
|
|
pub enum Inst {
|
||
|
|
Add(Reg, Reg),
|
||
|
|
Mul(Reg, Reg),
|
||
|
|
Div(Reg, Reg),
|
||
|
|
Neg(Reg),
|
||
|
|
And(Reg, Reg),
|
||
|
|
Or(Reg, Reg),
|
||
|
|
Xor(Reg, Reg),
|
||
|
|
Shl(Reg, Reg),
|
||
|
|
Shr(Reg, Reg),
|
||
|
|
|
||
|
|
CmpEq(Reg, Reg),
|
||
|
|
CmpLt(Reg, Reg),
|
||
|
|
Jz(Reg),
|
||
|
|
Jnz(Reg),
|
||
|
|
|
||
|
|
Load(Reg, Reg),
|
||
|
|
Store(Reg, Reg),
|
||
|
|
StoreImm(Reg, u32),
|
||
|
|
Copy(Reg, Reg),
|
||
|
|
|
||
|
|
Nop,
|
||
|
|
Halt,
|
||
|
|
}
|
||
|
|
|
||
|
|
// https://crates.io/crates/packed_struct
|