110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Factor
		
	
	
| USING: compiler.codegen.relocation help.markup help.syntax math vm ;
 | |
| IN: compiler.constants
 | |
| 
 | |
| HELP: context-callstack-save-offset
 | |
| { $values { "n" integer } }
 | |
| { $description "Offset in bytes in the " { $link context } " struct to where the c callstack is saved." } ;
 | |
| 
 | |
| HELP: rc-absolute
 | |
| { $description "Absolute address in a four-byte location." } ;
 | |
| 
 | |
| HELP: rc-absolute-cell
 | |
| { $description "Indicates that the relocation is a cell-sized absolute address to an object in the VM." } ;
 | |
| 
 | |
| HELP: rt-cards-offset
 | |
| { $description "Relocation offset type for the cards table." }
 | |
| { $see-also rel-cards-offset } ;
 | |
| 
 | |
| HELP: rt-decks-offset
 | |
| { $description "Relocation offset type for the decks table." }
 | |
| { $see-also rel-decks-offset } ;
 | |
| 
 | |
| HELP: rt-literal
 | |
| { $description "Relocation type for a literal. The literal can be either an immediate such as a fixnum or " { $link f } " or an object reference." }
 | |
| { $see-also rel-literal } ;
 | |
| 
 | |
| HELP: string-offset
 | |
| { $values { "n" integer } }
 | |
| { $description "hm" } ;
 | |
| 
 | |
| HELP: vm-context-offset
 | |
| { $values { "n" integer } }
 | |
| { $description "Offset in bytes from the start of the vm struct to the context (ctx) field." } ;
 | |
| 
 | |
| ARTICLE: "compiler.constants" "VM memory layout constants"
 | |
| "Common constants. All the values are given in relation to the bootstrap image being built."
 | |
| $nl
 | |
| "Constants that must match vm/memory.hpp:"
 | |
| { $subsections card-bits card-mark deck-bits }
 | |
| "Constants that must match vm/layouts.hpp:"
 | |
| { $subsections
 | |
|   slot-offset
 | |
| }
 | |
| "Offsets to fields in the context struct:"
 | |
| { $subsections
 | |
|   context-callstack-bottom-offset
 | |
|   context-callstack-save-offset
 | |
|   context-callstack-seg-offset
 | |
|   context-datastack-offset
 | |
|   context-callstack-top-offset
 | |
|   context-retainstack-offset
 | |
| }
 | |
| "Offsets to field in the segment struct:"
 | |
| { $subsections
 | |
|   segment-end-offset
 | |
|   segment-start-offset
 | |
| }
 | |
| "Offsets to fields in the vm struct:"
 | |
| { $subsections
 | |
|   vm-context-offset
 | |
|   vm-fault-flag-offset
 | |
|   vm-signal-handler-addr-offset
 | |
|   vm-spare-context-offset
 | |
| }
 | |
| "Offsets to fields in data objects:"
 | |
| { $subsections
 | |
|   alien-offset
 | |
|   array-start-offset
 | |
|   byte-array-offset
 | |
|   callstack-length-offset
 | |
|   callstack-top-offset
 | |
|   float-offset
 | |
|   quot-entry-point-offset
 | |
|   string-offset
 | |
|   tuple-class-offset
 | |
|   word-entry-point-offset
 | |
| }
 | |
| "Relocation classes:"
 | |
| { $subsections
 | |
|     rc-absolute-cell
 | |
|     rc-absolute
 | |
|     rc-relative
 | |
|     rc-absolute-ppc-2/2
 | |
|     rc-absolute-ppc-2
 | |
|     rc-relative-ppc-2-pc
 | |
|     rc-relative-ppc-3-pc
 | |
|     rc-absolute-2
 | |
|     rc-absolute-1
 | |
|     rc-absolute-ppc-2/2/2/2
 | |
| }
 | |
| "Relocation types:"
 | |
| { $subsections
 | |
|     rt-dlsym
 | |
|     rt-entry-point
 | |
|     rt-entry-point-pic
 | |
|     rt-entry-point-pic-tail
 | |
|     rt-here
 | |
|     rt-this
 | |
|     rt-literal
 | |
|     rt-untagged
 | |
|     rt-megamorphic-cache-hits
 | |
|     rt-vm
 | |
|     rt-cards-offset
 | |
|     rt-decks-offset
 | |
|     rt-dlsym-toc
 | |
|     rt-inline-cache-miss
 | |
|     rt-safepoint
 | |
| } ;
 | |
| 
 | |
| ABOUT: "compiler.constants"
 |