2015-07-26 14:32:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								USING:  compiler.cfg.instructions  cpu.x86  help.markup  help.syntax  layouts  math  ;
  
						 
					
						
							
								
									
										
										
										
											2014-10-19 07:45:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								IN:  compiler.cfg.stack-frame  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  stack-frame  
						 
					
						
							
								
									
										
										
										
											2016-10-08 01:08:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $class-description "Counts in bytes of the various sizes of the blocks of the stack frame. The stack frame is organized in the following fashion, from bottom to top:" 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-15 01:14:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  { $list
							 
						 
					
						
							
								
									
										
										
										
											2016-10-08 01:08:00 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    "Parameter space: space for parameters to FFI functions " 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-15 01:14:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    "Allocation area: space for local allocations." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "Spill area: space for register spills." 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "Reserved stack space: only applicable on Windows x86.64. See "  { $link reserved-stack-space } "."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "One final "  { $link cell } " of padding."  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "The stack frame is also aligned to a 16 byte boundary. It has the following slots:" 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 01:36:19 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  { $slots
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "total-size"  { "Total size of the stack frame."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "params"  { "Reserved parameter space."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "allot-area-base"  { "Base offset of the allocation area."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "allot-area-size"  { "Number of bytes requires for the allocation area."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "allot-area-align"  { "This slot is always at least "  { $link cell } " bytes."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "spill-area-base"  { "Base offset for the spill area."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "spill-area-size"  { "Number of bytes requires for all spill slots."  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "spill-area-align"  { "This slot is always at least "  { $link cell } " bytes."  } }
							 
						 
					
						
							
								
									
										
										
										
											2014-10-19 07:45:42 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2014-11-15 01:14:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $see-also align-stack } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  (stack-frame-size)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "stack-frame"  stack-frame } { "n"  integer  } }
							 
						 
					
						
							
								
									
										
										
										
											2015-07-26 14:32:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $description "Base stack frame size, without padding and alignment. If the size is zero, then no "  { $link ##epilogue } " and "  { $link ##prologue } " needs to be emitted for the word."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2014-11-15 01:14:47 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ARTICLE: "compiler.cfg.stack-frame"  "Stack frames" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"This vocab contains definitions for constructing stack frames."  ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ABOUT: "compiler.cfg.stack-frame"