[ stack-params get [ caller-stack-cleanup ] keep ]
} cleave ;
-M: #alien-invoke emit-node ( block node -- block' )
+M: #alien-invoke emit-node
params>>
[
[ params>alien-insn-params ]
]
[ caller-return ] bi ;
-M: #alien-indirect emit-node ( block node -- block' )
+M: #alien-indirect emit-node
params>>
[
[ ds-pop ^^unbox-any-c-ptr ] dip
]
[ caller-return ] bi ;
-M: #alien-assembly emit-node ( block node -- block' )
+M: #alien-assembly emit-node
params>>
[
[ params>alien-insn-params ]
: emit-callback-outputs ( block params -- )
[ emit-callback-return ] keep callback-stack-cleanup ;
-M: #alien-callback emit-node ( block node -- block' )
+M: #alien-callback emit-node
dup params>> xt>> dup
[
t cfg get frame-pointer?<<