about summary refs log tree commit diff
path: root/pkg/lang/vm/code/op.go
blob: 1ce08f7940ab7cd0c80c44c9705e6f78674f3f4e (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package code

type Op uint8

const (
	OpNop Op = iota
	OpHalt

	OpPushInt
	OpPushFloat
	OpPushString
	OpPushTrue
	OpPushFalse
	OpPushNull
	OpPushArray
	OpPushFunction
	OpPushObject
	OpPushType

	OpDrop

	OpGetGlobal
	OpGetLocal
	OpSetLocal
	OpGetMember
	OpSetMember

	OpGetEnv
	OpSetEnv
	OpAddToEnv

	OpAnchorType
	
	OpSetArgCount

	OpAdd
	OpSub
	OpMul
	OpDiv
	OpMod
	OpEq
	OpLt
	OpGt
	OpLte
	OpGte

	OpIndex
	OpCall

	OpJmp
	OpJt
	OpJf

	OpRet

	// Temporary operations, which will be removed with the advent of methods.
	OpTempArrLen
	OpTempArrPush
)