20 lines
		
	
	
		
			522 B
		
	
	
	
		
			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 ; |