|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface TIBLayoutConstants
Layout the TIB (Type Information Block).
-------------------------------------------------------------------------------------------- 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 | +--------------+
Field Summary | |
---|---|
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). |
Field Detail |
---|
static final int IMT_METHOD_SLOTS
static final int TIB_TYPE_INDEX
static final int TIB_SUPERCLASS_IDS_INDEX
static final int TIB_DOES_IMPLEMENT_INDEX
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.
static final int TIB_INTERFACE_DISPATCH_TABLE_INDEX
static final int TIB_FIRST_SPECIALIZED_METHOD_INDEX
static final int TIB_FIRST_VIRTUAL_METHOD_INDEX
static final int NEEDS_DYNAMIC_LINK
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |