summaryrefslogtreecommitdiff
path: root/module/language/tree-il/compile-bytecode.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2020-05-09 22:23:00 +0200
committerAndy Wingo <wingo@pobox.com>2020-05-09 22:23:00 +0200
commit04e3cece45ec72283ec2a8519c7a73f497896fd1 (patch)
tree2101a4b0349321e16788511f253c840c648a5bda /module/language/tree-il/compile-bytecode.scm
parentc49ccfbc3d9530efcff54f99a9b927af05409e2c (diff)
downloadguile-04e3cece45ec72283ec2a8519c7a73f497896fd1.tar.gz
Fix baseline compiler bugs
* module/language/tree-il/compile-bytecode.scm (compile-closure): Fix FP-relative computation for "receive" target. Fix value-at syntax in conditional.
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)))