VM memory layout constants


Common constants. All the values are given in relation to the bootstrap image being built.

Constants that must match vm/memory.hpp:
card-bits ( -- value )

card-mark ( -- n )

deck-bits ( -- value )


Constants that must match vm/layouts.hpp:
slot-offset ( slot tag -- n )


Offsets to fields in the context struct:
context-callstack-bottom-offset ( -- n )

context-callstack-save-offset ( -- n )

context-callstack-seg-offset ( -- n )

context-datastack-offset ( -- n )

context-callstack-top-offset ( -- n )

context-retainstack-offset ( -- n )


Offsets to field in the segment struct:
segment-end-offset ( -- n )

segment-start-offset ( -- n )


Offsets to fields in the vm struct:
vm-context-offset ( -- n )

vm-fault-flag-offset ( -- n )

vm-signal-handler-addr-offset ( -- n )

vm-spare-context-offset ( -- n )


Offsets to fields in data objects:
alien-offset ( -- n )

array-start-offset ( -- n )

byte-array-offset ( -- n )

callstack-length-offset ( -- n )

callstack-top-offset ( -- n )

float-offset ( -- n )

quot-entry-point-offset ( -- n )

string-offset ( -- n )

tuple-class-offset ( -- n )

word-entry-point-offset ( -- n )


Relocation classes:
rc-absolute-cell ( -- value )

rc-absolute ( -- value )

rc-relative ( -- value )

rc-absolute-ppc-2/2 ( -- value )

rc-absolute-ppc-2 ( -- value )

rc-relative-ppc-2-pc ( -- value )

rc-relative-ppc-3-pc ( -- value )

rc-absolute-2 ( -- value )

rc-absolute-1 ( -- value )

rc-absolute-ppc-2/2/2/2 ( -- value )


Relocation types:
rt-dlsym ( -- value )

rt-entry-point ( -- value )

rt-entry-point-pic ( -- value )

rt-entry-point-pic-tail ( -- value )

rt-here ( -- value )

rt-this ( -- value )

rt-literal ( -- value )

rt-untagged ( -- value )

rt-megamorphic-cache-hits ( -- value )

rt-vm ( -- value )

rt-cards-offset ( -- value )

rt-decks-offset ( -- value )

rt-dlsym-toc ( -- value )

rt-inline-cache-miss ( -- value )

rt-safepoint ( -- value )