diff --git a/module/language/tree-il/compile-bytecode.scm b/module/language/tree-il/compile-bytecode.scm index e327ca40b..cb8779938 100644 --- a/module/language/tree-il/compile-bytecode.scm +++ b/module/language/tree-il/compile-bytecode.scm @@ -1111,8 +1111,8 @@ in the frame with for the lambda-case clause @var{clause}." (let ((proc-slot (let ((env (push-frame env))) (fold for-push (for-push proc env) args) (stack-height env)))) - (emit-call asm proc-slot (length args)) - (emit-receive src dst proc-slot frame-size))) + (emit-call asm proc-slot (1+ (length args))) + (emit-receive asm (stack-height base) proc-slot frame-size))) (($ src (? variadic-constructor? name) args) ;; Stage result in 0 to avoid stompling args. @@ -1164,7 +1164,7 @@ in the frame with for the lambda-case clause @var{clause}." (apply emit asm dst (for-args args env))))))))) (($ ) (visit-prompt exp env `(value-at . ,base))) - (($ ) (visit-conditional exp env `(value-at. ,base))) + (($ ) (visit-conditional exp env `(value-at . ,base))) (($ ) (visit-seq exp env `(value-at . ,base))) (($ ) (visit-let exp env `(value-at . ,base))) (($ ) (visit-fix exp env `(value-at . ,base)))