1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

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.
This commit is contained in:
Andy Wingo 2020-05-09 22:23:00 +02:00
parent c49ccfbc3d
commit 04e3cece45

View file

@ -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.