68 lines
598 B
Rust
68 lines
598 B
Rust
pub enum AsmOpcode {
|
|
Nop,
|
|
|
|
// move
|
|
Mov,
|
|
CMov,
|
|
|
|
// load
|
|
Ldb,
|
|
Ldbs,
|
|
Ldh,
|
|
Ldhs,
|
|
Ldw,
|
|
|
|
// store
|
|
Stb,
|
|
Sth,
|
|
Stw,
|
|
|
|
// load immediate
|
|
Lli,
|
|
Lui,
|
|
Lwi,
|
|
|
|
// comparison
|
|
Ieq,
|
|
Ine,
|
|
Ilt,
|
|
Ile,
|
|
Igt,
|
|
Ige,
|
|
|
|
// jump
|
|
Jmp,
|
|
Jez,
|
|
Jnz,
|
|
Jic,
|
|
Jnc,
|
|
|
|
// bitwise
|
|
And,
|
|
Nand,
|
|
Or,
|
|
Nor,
|
|
Xor,
|
|
Xnor,
|
|
Not,
|
|
|
|
// arithmetic
|
|
Add,
|
|
Sub,
|
|
Shl,
|
|
Shr,
|
|
Addi,
|
|
Subi,
|
|
|
|
// utility
|
|
Push,
|
|
Pop,
|
|
Call,
|
|
Ret,
|
|
|
|
// system
|
|
Int,
|
|
IRet,
|
|
Hlt,
|
|
}
|