slige/runtime/arch.hpp

50 lines
852 B
C++
Raw Normal View History

2024-11-08 11:22:42 +00:00
#pragma once
#include <cstdint>
namespace sliger {
// NOTICE: keep up to date with src/arch.ts
enum class Op : uint32_t {
2024-12-10 23:18:51 +00:00
Nop = 0x00,
PushNull = 0x01,
PushInt = 0x02,
PushBool = 0x03,
PushString = 0x04,
PushPtr = 0x05,
Pop = 0x06,
ReserveStatic = 0x07,
LoadStatic = 0x08,
StoreStatic = 0x09,
LoadLocal = 0x0a,
StoreLocal = 0x0b,
Call = 0x0c,
Return = 0x0d,
Jump = 0x0e,
JumpIfTrue = 0x0f,
Builtin = 0x10,
Add = 0x20,
Subtract = 0x21,
Multiply = 0x22,
Divide = 0x23,
Remainder = 0x24,
Equal = 0x25,
LessThan = 0x26,
And = 0x27,
Or = 0x28,
Xor = 0x29,
Not = 0x2a,
SourceMap = 0x30,
};
enum class Builtin : uint32_t {
StringConcat = 0x10,
StringEqual = 0x11,
ArraySet = 0x20,
StructSet = 0x30,
2024-12-11 12:37:26 +00:00
Print = 0x40,
2024-11-08 11:22:42 +00:00
};
}