public final class TIBLayoutConstants extends Object
-------------------------------------------------------------------------------------------- Type Information Block (TIB) Layout Constants -------------------------------------------------------------------------------------------- Object[] (type info block) RVMType (class info) / / +--------------------+ +--------------+ | TIB pointer | | TIB pointer | +--------------------+ +--------------+ | status | | status | +--------------------+ +--------------+ | length | | field0 | +--------------------+ +--------------+ TIB: 0:| type +------------> | ... | +--------------------+ +--------------+ 1:| superclass ids +--> | fieldN-1 | +--------------------+ +--------------+ 2:| implements trits +--> +--------------------+ 3:| array element TIB +--> +--------------------+ 4:| iTABLES/IMT +--> +--------------------+ 5:| specialized 0 +--> +--------------------+ | ... +--> +--------------------+ V0:| virtual method 0 +-----+ +--------------------+ | | ... | | INSTRUCTION[] (machine code) +--------------------+ | / VN-1:| virtual method N-1 | | +--------------+ +--------------------+ | | TIB pointer | | +--------------+ | | status | | +--------------+ | | length | | +--------------+ +------->| code0 | +--------------+ | ... | +--------------+ | codeN-1 | +--------------+
Modifier and Type | Field and Description |
---|---|
static int |
IMT_METHOD_SLOTS
Number of slots reserved for interface method pointers.
|
static int |
NEEDS_DYNAMIC_LINK
Special value returned by RVMClassLoader.getFieldOffset() or
RVMClassLoader.getMethodOffset() to indicate fields or methods
that must be accessed via dynamic linking code because their
offset is not yet known or the class's static initializer has not
yet been run.
|
static int |
TIB_ARRAY_ELEMENT_TIB_INDEX
The TIB of the elements type of an array (may be
null in fringe cases
when element type couldn't be resolved during array resolution). |
static int |
TIB_DOES_IMPLEMENT_INDEX
Does this class implement the ith interface?
|
static int |
TIB_FIRST_SPECIALIZED_METHOD_INDEX
A set of 0 or more specialized methods used in the VM such as for GC scanning.
|
static int |
TIB_FIRST_VIRTUAL_METHOD_INDEX
Next group of slots point to virtual method code blocks (slots V1..VN in above diagram).
|
static int |
TIB_INTERFACE_DISPATCH_TABLE_INDEX
A pointer to either an ITable or InterfaceMethodTable (IMT)
depending on which dispatch implementation we are using.
|
static int |
TIB_SUPERCLASS_IDS_INDEX
A vector of ids for classes that this one extends.
|
static int |
TIB_TYPE_INDEX
First slot of TIB points to RVMType (slot 0 in above diagram).
|
Modifier | Constructor and Description |
---|---|
private |
TIBLayoutConstants() |
public static final int IMT_METHOD_SLOTS
public static final int TIB_TYPE_INDEX
public static final int TIB_SUPERCLASS_IDS_INDEX
public static final int TIB_DOES_IMPLEMENT_INDEX
public static final int TIB_ARRAY_ELEMENT_TIB_INDEX
null
in fringe cases
when element type couldn't be resolved during array resolution).
Will be null
when not an array.public static final int TIB_INTERFACE_DISPATCH_TABLE_INDEX
public static final int TIB_FIRST_SPECIALIZED_METHOD_INDEX
public static final int TIB_FIRST_VIRTUAL_METHOD_INDEX
public static final int NEEDS_DYNAMIC_LINK
private TIBLayoutConstants()