summaryrefslogtreecommitdiff
path: root/module/language/tree-il/compile-bytecode.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/tree-il/compile-bytecode.scm')
-rw-r--r--module/language/tree-il/compile-bytecode.scm6
1 files changed, 3 insertions, 3 deletions
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)))
(($ <primcall> 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)))))))))
(($ <prompt>) (visit-prompt exp env `(value-at . ,base)))
- (($ <conditional>) (visit-conditional exp env `(value-at. ,base)))
+ (($ <conditional>) (visit-conditional exp env `(value-at . ,base)))
(($ <seq>) (visit-seq exp env `(value-at . ,base)))
(($ <let>) (visit-let exp env `(value-at . ,base)))
(($ <fix>) (visit-fix exp env `(value-at . ,base)))