|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.objectmodel.TIB
public final class TIB
This class represents an instance of a type information block, at runtime it is an array with Object elements.
TIBLayoutConstants
Field Summary | |
---|---|
private int |
alignData
Alignment encoded data for this TIB - only used at build time |
private Object[] |
data
The backing data used during boot image writing. |
Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants |
---|
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX |
Constructor Summary | |
---|---|
private |
TIB(int size)
Private constructor. |
Method Summary | |
---|---|
static TIB |
allocate(int size,
int alignData)
Create a new TIB of the specified size. |
static int |
computeSize(int numVirtualMethods)
Calculate the size of a TIB |
Object |
get(int index)
Get a TIB entry. |
int |
getAlignData()
|
Object[] |
getBacking()
Only called at boot image write time. |
int[] |
getDoesImplement()
Get the does implement entry of the TIB |
IMT |
getImt()
Get the IMT from the TIB |
ITableArray |
getITableArray()
Get the ITable array for this type. |
short[] |
getSuperclassIds()
Get the superclass id set for this type. |
RVMType |
getType()
Get the type for this TIB. |
ArchitectureSpecific.CodeArray |
getVirtualMethod(int virtualMethodIndex)
Get a virtual method from this TIB. |
ArchitectureSpecific.CodeArray |
getVirtualMethod(Offset virtualMethodOffset)
Get a virtual method from this TIB by offset. |
static int |
getVirtualMethodIndex(int slot)
Calculate the virtual method index for the given raw slot index. |
static int |
getVirtualMethodIndex(Offset virtualMethodOffset)
Calculate the virtual method index for the given offset. |
static Offset |
getVirtualMethodOffset(int virtualMethodIndex)
Calculate the virtual method offset for the given index. |
void |
initializeInternalLazyCompilationTrampoline()
Initialize the lazy method invoker trampoline for this tib. |
boolean |
isInternalLazyCompilationTrampoline(int virtualMethodIndex)
Determine if a virtual method is the internal lazy compilation trampoline. |
int |
lazyMethodInvokerTrampolineIndex()
Calculate the address that is the call target for the lazy method invoker trampoline. |
static int |
lazyMethodInvokerTrampolineWords()
|
int |
length()
Return the length of the TIB |
int |
numVirtualMethods()
The number of virtual methods in this TIB. |
void |
set(int index,
Object value)
Set a TIB entry. |
void |
setAlignData(int alignData)
|
void |
setArrayElementTib(TIB arrayElementTIB)
Set the TIB of the elements of this array (null if not an array). |
void |
setDoesImplement(int[] doesImplement)
Set the does implement entry of the TIB |
void |
setImt(IMT imt)
Set the IMT of the TIB |
void |
setITableArray(ITableArray iTableArray)
Set the ITable array for this type. |
void |
setSpecializedMethod(int specializedMethodIndex,
ArchitectureSpecific.CodeArray code)
Set a specialized method in this TIB. |
void |
setSuperclassIds(short[] superclassIds)
Set the superclass id set for this type. |
void |
setType(RVMType type)
Set the type for this TIB. |
void |
setVirtualMethod(int virtualMethodIndex,
ArchitectureSpecific.CodeArray code)
Set a virtual method in this TIB. |
void |
setVirtualMethod(Offset virtualMethodOffset,
ArchitectureSpecific.CodeArray code)
Set a virtual method in this TIB by offset. |
boolean |
slotContainsCode(int slot)
Does this slot in the TIB hold code? |
boolean |
slotContainsTib(int slot)
Does this slot in the TIB hold a TIB entry? |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private int alignData
private final Object[] data
Constructor Detail |
---|
private TIB(int size)
Method Detail |
---|
public static int lazyMethodInvokerTrampolineWords()
public static int computeSize(int numVirtualMethods)
public static Offset getVirtualMethodOffset(int virtualMethodIndex)
virtualMethodIndex
- The index to calculate the offset for
public static int getVirtualMethodIndex(Offset virtualMethodOffset)
virtualMethodOffset
- The offset to calculate the index for
public static int getVirtualMethodIndex(int slot)
slot
- The raw slot to find the virtual method index for.
public Object[] getBacking()
RuntimeTable
getBacking
in interface RuntimeTable<Object>
public static TIB allocate(int size, int alignData)
size
- The size of the TIBalignData
- Alignment-encoded data for this TIB,
AlignmentEncoding.ALIGN_CODE_NONE for no alignment encoding.
public Object get(int index)
get
in interface RuntimeTable<Object>
index
- The index of the entry to get
public void set(int index, Object value)
set
in interface RuntimeTable<Object>
index
- The index of the entry to setvalue
- The value to set the entry to.public int length()
length
in interface RuntimeTable<Object>
public RVMType getType()
public void setType(RVMType type)
public short[] getSuperclassIds()
public void setSuperclassIds(short[] superclassIds)
public ITableArray getITableArray()
public void setITableArray(ITableArray iTableArray)
public int[] getDoesImplement()
public void setDoesImplement(int[] doesImplement)
public IMT getImt()
public void setImt(IMT imt)
public void setArrayElementTib(TIB arrayElementTIB)
public ArchitectureSpecific.CodeArray getVirtualMethod(int virtualMethodIndex)
public boolean isInternalLazyCompilationTrampoline(int virtualMethodIndex)
public ArchitectureSpecific.CodeArray getVirtualMethod(Offset virtualMethodOffset)
public void setVirtualMethod(int virtualMethodIndex, ArchitectureSpecific.CodeArray code)
public void setVirtualMethod(Offset virtualMethodOffset, ArchitectureSpecific.CodeArray code)
public int lazyMethodInvokerTrampolineIndex()
public void initializeInternalLazyCompilationTrampoline()
public void setSpecializedMethod(int specializedMethodIndex, ArchitectureSpecific.CodeArray code)
public int numVirtualMethods()
public boolean slotContainsTib(int slot)
slot
- the TIB slot
true
if this the array element TIBpublic boolean slotContainsCode(int slot)
slot
- the TIB slot
true
if slot is one that holds a code array referencepublic void setAlignData(int alignData)
public int getAlignData()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |