72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package vm
|
|
|
|
type OpCodeType uint32
|
|
|
|
const (
|
|
OpNoOp OpCodeType = 0x00000000
|
|
OpNop = OpNoOp
|
|
|
|
OpMove = 0x00000100
|
|
OpMov = OpMove
|
|
|
|
OpAdd = 0x00000200
|
|
OpSubtract = 0x00000201
|
|
OpSub = OpSubtract
|
|
OpMultiply = 0x00000202
|
|
OpMul = OpMultiply
|
|
OpDivideUnsigned = 0x00000203
|
|
OpDivU = OpDivideUnsigned
|
|
OpDivideSigned = 0x00000204
|
|
OpDivS = OpDivideSigned
|
|
|
|
OpNot = 0x00000300
|
|
OpAnd = 0x00000301
|
|
OpOr = 0x00000302
|
|
OpXor = 0x00000303
|
|
|
|
OpShiftRight = 0x00000400
|
|
OpShR = OpShiftRight
|
|
OpShiftLeft = 0x00000401
|
|
OpShL = OpShiftLeft
|
|
|
|
OpIsEqual = 0x00000500
|
|
OpEq = OpIsEqual
|
|
OpIsLessThanUnsigned = 0x00000501
|
|
OpLTU = OpIsLessThanUnsigned
|
|
OpIsLessThanSigned = 0x00000502
|
|
OpLTS = OpIsLessThanSigned
|
|
OpIsGreaterThanUnsigned = 0x00000503
|
|
OpGTU = OpIsGreaterThanUnsigned
|
|
OpIsGreaterThanSigned = 0x00000504
|
|
OpGTS = OpIsGreaterThanSigned
|
|
OpIsLessThanOrEqualUnsigned = 0x00000505
|
|
OpLTEU = OpIsLessThanOrEqualUnsigned
|
|
OpIsLessThanOrEqualSigned = 0x00000506
|
|
OpLTES = OpIsLessThanOrEqualSigned
|
|
OpIsGreaterThanOrEqualUnsigned = 0x00000507
|
|
OpGTEU = OpIsGreaterThanOrEqualUnsigned
|
|
OpIsGreaterThanOrEqualSigned = 0x00000508
|
|
OpGTES = OpIsGreaterThanOrEqualSigned
|
|
|
|
OpJump = 0x00000600
|
|
OpJmp = OpJump
|
|
OpJumpIfTrue = 0x00000601
|
|
OpJmpT = OpJumpIfTrue
|
|
OpJumpIfFalse = 0x00000602
|
|
OpJmpF = OpJumpIfFalse
|
|
|
|
OpCall = 0x00000700
|
|
OpCal = OpCall
|
|
OpCallIfTrue = 0x00000701
|
|
OpCalT = OpCallIfTrue
|
|
OpCallIfFalse = 0x00000702
|
|
OpCalF = OpCallIfFalse
|
|
|
|
OpReturn = 0x00000800
|
|
OpRet = OpReturn
|
|
OpReturnIfTrue = 0x00000801
|
|
OpRetT = OpReturnIfTrue
|
|
OpReturnIfFalse = 0x00000802
|
|
OpRetF = OpReturnIfFalse
|
|
)
|