2014-05-11 07:01:13 -04:00
|
|
|
USING: alien.c-types compiler.cfg.instructions help.markup help.syntax make
|
|
|
|
math ;
|
|
|
|
IN: compiler.cfg.builder.alien.boxing
|
|
|
|
|
|
|
|
HELP: box
|
|
|
|
{ $values
|
|
|
|
{ "vregs" "a one-element sequence containing a virtual register indentifier" }
|
|
|
|
{ "reps" "a one-element sequence containing a representation symbol" }
|
|
|
|
{ "c-type" c-type }
|
2014-06-08 21:20:27 -04:00
|
|
|
{ "dst" "box" }
|
2014-05-11 07:01:13 -04:00
|
|
|
}
|
|
|
|
{ $description "Emits a " { $link ##box-alien } " instruction which boxes an alien value contained in the given register." }
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: compiler.cfg.builder.alien.boxing make prettyprint ;"
|
|
|
|
"{ 71 } { int-rep } void* base-type [ box ] { } make nip ."
|
|
|
|
"{ T{ ##box-alien { dst 105 } { src 71 } { temp 104 } } }"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{ $see-also ##box-alien } ;
|
|
|
|
|
|
|
|
HELP: stack-size
|
|
|
|
{ $values
|
|
|
|
{ "c-type" c-type }
|
|
|
|
{ "n" number }
|
|
|
|
}
|
|
|
|
{ $description "Calculates how many bytes of stack space an instance of the C type requires." }
|
|
|
|
{ $examples
|
|
|
|
{ $unchecked-example
|
|
|
|
"USING: compiler.cfg.builder.alien.boxing prettyprint vm ;"
|
|
|
|
"context base-type stack-size ."
|
|
|
|
"144"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
{ $see-also heap-size } ;
|