mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-09 15:10:29 +02:00
Add new $calli expression type.
* module/language/cps.scm ($calli): New expression type, calls a label as a value. Adapt all callers.
This commit is contained in:
parent
a1eb526b0c
commit
171072ec5a
21 changed files with 105 additions and 19 deletions
|
@ -1,6 +1,6 @@
|
|||
;;; Continuation-passing style (CPS) intermediate language (IL)
|
||||
|
||||
;; Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2013-2021, 2023 Free Software Foundation, Inc.
|
||||
|
||||
;;;; This library is free software; you can redistribute it and/or
|
||||
;;;; modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -578,6 +578,11 @@
|
|||
(compile-call #f proc args))
|
||||
(($ $callk kfun proc args)
|
||||
(compile-call kfun proc args))
|
||||
(($ $calli args callee)
|
||||
(match (intmap-ref cont k)
|
||||
(($ $ktail)
|
||||
(emit-moves (lookup-send-parallel-moves label allocation))
|
||||
(compile-tail (1+ (length args)) emit-indirect-tail-call))))
|
||||
(_
|
||||
(match cont
|
||||
(($ $kargs names vars)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue