]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/builder/alien/alien-docs.factor
fa22861bca4f5066d1244eb1db3e84d259f7d695
[factor.git] / basis / compiler / cfg / builder / alien / alien-docs.factor
1 USING: help.markup help.syntax literals make multiline sequences
2 stack-checker.alien ;
3 IN: compiler.cfg.builder.alien
4
5 <<
6 STRING: ex-caller-return
7 USING: compiler.cfg.builder.alien make prettyprint ;
8 [
9     T{ ##alien-invoke { reg-outputs { { 1 int-rep RAX } } } } ,
10     T{ alien-invoke-params { return pointer: void } }  caller-return
11 ] { } make  .
12 {
13     T{ ##alien-invoke { reg-outputs { { 1 int-rep RAX } } } }
14     T{ ##box-alien { dst 116 } { src 1 } { temp 115 } }
15 }
16 ;
17 >>
18
19 HELP: caller-return
20 { $values { "params" alien-node-params } }
21 { $description "If the last alien call returns a value, then this word will emit an instruction to the current sequence being constructed by " { $link make } " that boxes it." }
22 { $examples { $unchecked-example $[ ex-caller-return ] } } ;
23
24 HELP: unbox-parameters
25 { $values { "parameters" sequence } { "vregs" sequence } { "reps" sequence } }
26 { $description "Unboxes a sequence of parameters to send to an ffi function." } ;