about summary refs log tree commit diff
path: root/pkg/lang/vm/vm.go
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-05-30 02:02:53 +0000
committerGitHub <noreply@github.com>2022-05-30 02:02:53 +0000
commit78a29c41098db5e5f8291e0345a3cd443c52b329 (patch)
treebe8b3f1bba2491531e5be30165a6fc9b2a423fdc /pkg/lang/vm/vm.go
parentd2f69dccb3643834a79da79be4ece189a7178c9e (diff)
downloadjinx-78a29c41098db5e5f8291e0345a3cd443c52b329.tar.zst
jinx-78a29c41098db5e5f8291e0345a3cd443c52b329.zip
Specify arg count on VM Functions
Diffstat (limited to 'pkg/lang/vm/vm.go')
-rw-r--r--pkg/lang/vm/vm.go10
1 files changed, 4 insertions, 6 deletions
diff --git a/pkg/lang/vm/vm.go b/pkg/lang/vm/vm.go
index d4a1366..2377d89 100644
--- a/pkg/lang/vm/vm.go
+++ b/pkg/lang/vm/vm.go
@@ -106,11 +106,6 @@ func (vm *VM) step(op code.Op) (stepDecision, error) {
 	case code.OpPushObject:
 		panic("not implemented")
 
-	case code.OpShift:
-		by, advance := vm.code.GetInt(vm.pc)
-		vm.pc += advance
-
-		err = vm.stack.ShiftTopCallBase(int(by))
 	case code.OpDrop:
 		_, err = vm.stack.Pop()
 
@@ -152,7 +147,10 @@ func (vm *VM) step(op code.Op) (stepDecision, error) {
 	case code.OpLte:
 		err = vm.execLte()
 	case code.OpCall:
-		err = vm.execCall()
+		argCount, advance := vm.code.GetUint(vm.pc)
+		vm.pc += advance
+
+		err = vm.execCall(uint(argCount))
 
 	case code.OpJmp:
 		pc, _ := vm.code.GetUint(vm.pc)