| 
									
										
										
										
											2010-04-27 10:51:00 -04:00
										 |  |  | ! Copyright (C) 2009, 2010 Slava Pestov. | 
					
						
							| 
									
										
										
										
											2008-09-17 20:31:35 -04:00
										 |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2010-05-02 18:48:41 -04:00
										 |  |  | USING: math math.order namespaces accessors kernel layouts | 
					
						
							| 
									
										
										
										
											2010-05-16 03:43:02 -04:00
										 |  |  | combinators assocs sequences cpu.architecture | 
					
						
							| 
									
										
										
										
											2010-05-02 18:48:41 -04:00
										 |  |  | words compiler.cfg.instructions ;
 | 
					
						
							| 
									
										
										
										
											2008-09-17 20:31:35 -04:00
										 |  |  | IN: compiler.cfg.stack-frame | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-02 19:23:47 -04:00
										 |  |  | TUPLE: stack-frame | 
					
						
							|  |  |  | { params integer } | 
					
						
							| 
									
										
										
										
											2010-05-22 01:25:10 -04:00
										 |  |  | { allot-area-size integer } | 
					
						
							|  |  |  | { allot-area-align integer } | 
					
						
							| 
									
										
										
										
											2009-10-20 06:02:42 -04:00
										 |  |  | { spill-area-size integer } | 
					
						
							| 
									
										
										
										
											2010-05-22 01:25:10 -04:00
										 |  |  | { spill-area-align integer } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { total-size integer } | 
					
						
							|  |  |  | { allot-area-base integer } | 
					
						
							|  |  |  | { spill-area-base integer } ;
 | 
					
						
							| 
									
										
										
										
											2008-09-17 20:31:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-19 00:33:15 -04:00
										 |  |  | : local-allot-offset ( n -- offset )
 | 
					
						
							| 
									
										
										
										
											2010-05-22 01:25:10 -04:00
										 |  |  |     stack-frame get allot-area-base>> + ;
 | 
					
						
							| 
									
										
										
										
											2008-09-17 20:31:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-07 18:44:50 -04:00
										 |  |  | : spill-offset ( n -- offset )
 | 
					
						
							| 
									
										
										
										
											2010-05-22 01:25:10 -04:00
										 |  |  |     stack-frame get spill-area-base>> + ;
 | 
					
						
							| 
									
										
										
										
											2008-11-06 20:00:56 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-02 19:23:47 -04:00
										 |  |  | : (stack-frame-size) ( stack-frame -- n )
 | 
					
						
							| 
									
										
										
										
											2010-05-22 01:25:10 -04:00
										 |  |  |     [ spill-area-base>> ] [ spill-area-size>> ] bi + ;
 |