factor/basis/stuff.factor

20 lines
522 B
Factor

: spill-integer-base ( -- n )
stack-frame get spill-counts>> double-float-regs swap at
double-float-regs reg-size * ;
: spill-integer@ ( n -- offset )
cells spill-integer-base + param@ ;
: spill-float@ ( n -- offset )
double-float-regs reg-size * param@ ;
: (stack-frame-size) ( stack-frame -- n )
[
{
[ spill-counts>> [ swap reg-size * ] { } assoc>map sum ]
[ gc-roots>> cells ]
[ params>> ]
[ return>> ]
} cleave
] sum-outputs ;