diff options
Diffstat (limited to 'vendor/github.com/d5/tengo/compiler/opcodes.go')
-rw-r--r-- | vendor/github.com/d5/tengo/compiler/opcodes.go | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/vendor/github.com/d5/tengo/compiler/opcodes.go b/vendor/github.com/d5/tengo/compiler/opcodes.go deleted file mode 100644 index d832ee17..00000000 --- a/vendor/github.com/d5/tengo/compiler/opcodes.go +++ /dev/null @@ -1,155 +0,0 @@ -package compiler - -// Opcode represents a single byte operation code. -type Opcode = byte - -// List of opcodes -const ( - OpConstant Opcode = iota // Load constant - OpBComplement // bitwise complement - OpPop // Pop - OpTrue // Push true - OpFalse // Push false - OpEqual // Equal == - OpNotEqual // Not equal != - OpMinus // Minus - - OpLNot // Logical not ! - OpJumpFalsy // Jump if falsy - OpAndJump // Logical AND jump - OpOrJump // Logical OR jump - OpJump // Jump - OpNull // Push null - OpArray // Array object - OpMap // Map object - OpError // Error object - OpImmutable // Immutable object - OpIndex // Index operation - OpSliceIndex // Slice operation - OpCall // Call function - OpReturn // Return - OpGetGlobal // Get global variable - OpSetGlobal // Set global variable - OpSetSelGlobal // Set global variable using selectors - OpGetLocal // Get local variable - OpSetLocal // Set local variable - OpDefineLocal // Define local variable - OpSetSelLocal // Set local variable using selectors - OpGetFreePtr // Get free variable pointer object - OpGetFree // Get free variables - OpSetFree // Set free variables - OpGetLocalPtr // Get local variable as a pointer - OpSetSelFree // Set free variables using selectors - OpGetBuiltin // Get builtin function - OpClosure // Push closure - OpIteratorInit // Iterator init - OpIteratorNext // Iterator next - OpIteratorKey // Iterator key - OpIteratorValue // Iterator value - OpBinaryOp // Binary Operation -) - -// OpcodeNames is opcode names. -var OpcodeNames = [...]string{ - OpConstant: "CONST", - OpPop: "POP", - OpTrue: "TRUE", - OpFalse: "FALSE", - OpBComplement: "NEG", - OpEqual: "EQL", - OpNotEqual: "NEQ", - OpMinus: "NEG", - OpLNot: "NOT", - OpJumpFalsy: "JMPF", - OpAndJump: "ANDJMP", - OpOrJump: "ORJMP", - OpJump: "JMP", - OpNull: "NULL", - OpGetGlobal: "GETG", - OpSetGlobal: "SETG", - OpSetSelGlobal: "SETSG", - OpArray: "ARR", - OpMap: "MAP", - OpError: "ERROR", - OpImmutable: "IMMUT", - OpIndex: "INDEX", - OpSliceIndex: "SLICE", - OpCall: "CALL", - OpReturn: "RET", - OpGetLocal: "GETL", - OpSetLocal: "SETL", - OpDefineLocal: "DEFL", - OpSetSelLocal: "SETSL", - OpGetBuiltin: "BUILTIN", - OpClosure: "CLOSURE", - OpGetFreePtr: "GETFP", - OpGetFree: "GETF", - OpSetFree: "SETF", - OpGetLocalPtr: "GETLP", - OpSetSelFree: "SETSF", - OpIteratorInit: "ITER", - OpIteratorNext: "ITNXT", - OpIteratorKey: "ITKEY", - OpIteratorValue: "ITVAL", - OpBinaryOp: "BINARYOP", -} - -// OpcodeOperands is the number of operands. -var OpcodeOperands = [...][]int{ - OpConstant: {2}, - OpPop: {}, - OpTrue: {}, - OpFalse: {}, - OpBComplement: {}, - OpEqual: {}, - OpNotEqual: {}, - OpMinus: {}, - OpLNot: {}, - OpJumpFalsy: {2}, - OpAndJump: {2}, - OpOrJump: {2}, - OpJump: {2}, - OpNull: {}, - OpGetGlobal: {2}, - OpSetGlobal: {2}, - OpSetSelGlobal: {2, 1}, - OpArray: {2}, - OpMap: {2}, - OpError: {}, - OpImmutable: {}, - OpIndex: {}, - OpSliceIndex: {}, - OpCall: {1}, - OpReturn: {1}, - OpGetLocal: {1}, - OpSetLocal: {1}, - OpDefineLocal: {1}, - OpSetSelLocal: {1, 1}, - OpGetBuiltin: {1}, - OpClosure: {2, 1}, - OpGetFreePtr: {1}, - OpGetFree: {1}, - OpSetFree: {1}, - OpGetLocalPtr: {1}, - OpSetSelFree: {1, 1}, - OpIteratorInit: {}, - OpIteratorNext: {}, - OpIteratorKey: {}, - OpIteratorValue: {}, - OpBinaryOp: {1}, -} - -// ReadOperands reads operands from the bytecode. -func ReadOperands(numOperands []int, ins []byte) (operands []int, offset int) { - for _, width := range numOperands { - switch width { - case 1: - operands = append(operands, int(ins[offset])) - case 2: - operands = append(operands, int(ins[offset+1])|int(ins[offset])<<8) - } - - offset += width - } - - return -} |