Package | Description |
---|---|
org.jikesrvm.classloader |
Provides classes that implement the classloading system as well as
data types that represent Java entities like classes, fields, methods
and primitives.
|
org.jikesrvm.mm.mminterface | |
org.jikesrvm.mm.mmtk | |
org.jikesrvm.objectmodel | |
org.jikesrvm.runtime |
Modifier and Type | Field and Description |
---|---|
private TIB |
RVMClass.typeInformationBlock
type and virtual method dispatch table for class
|
private TIB |
RVMArray.typeInformationBlock
The TIB for this type, created when the array is resolved.
|
Modifier and Type | Method and Description |
---|---|
TIB |
RVMClass.getTypeInformationBlock()
Runtime type information for this class type.
|
abstract TIB |
RVMType.getTypeInformationBlock() |
TIB |
Primitive.getTypeInformationBlock()
Runtime type information for this class/array type.
|
TIB |
UnboxedType.getTypeInformationBlock()
Runtime type information for this class/array type.
|
TIB |
RVMArray.getTypeInformationBlock()
Runtime type information for this array type.
|
Modifier and Type | Method and Description |
---|---|
static ITable |
InterfaceInvocation.findITable(TIB tib,
int id)
Return a reference to the itable for a given class, interface pair
We might not have created the iTable yet, in which case we will do that and then return it.
|
static boolean |
DynamicTypeCheck.instanceOfClass(RVMClass LHSclass,
TIB rhsTIB)
LHSclass is a fully loaded class.
|
static boolean |
DynamicTypeCheck.instanceOfInterface(RVMClass LHSclass,
TIB rhsTIB)
LHSclass is a fully loaded interface.
|
static boolean |
DynamicTypeCheck.instanceOfNonArray(RVMClass LHSclass,
TIB rhsTIB)
LHSclass is a fully loaded class or interface.
|
void |
InterfaceInvocation.IMTDict.populateIMT(RVMClass klass,
TIB tib,
IMT imt) |
private void |
RVMClass.publishResolved(TIB allocatedTib,
short[] superclassIds,
int[] doesImplement)
Atomically initialize the important parts of the TIB and let the world know this type is
resolved.
|
private void |
RVMArray.publishResolved(TIB allocatedTib,
short[] superclassIds,
int[] doesImplement)
Atomically initialize the important parts of the TIB and let the world know this type is
resolved.
|
private void |
InterfaceInvocation.IMTDict.set(TIB tib,
IMT imt,
int extSlot,
CodeArray value) |
Modifier and Type | Field and Description |
---|---|
private static TIB |
DebugUtil.tibForArrayType |
private static TIB |
DebugUtil.tibForClassType |
private static TIB |
DebugUtil.tibForPrimitiveType |
Modifier and Type | Method and Description |
---|---|
static TIB |
MemoryManager.newTIB(int numVirtualMethods,
int alignCode)
Allocates a new type information block (TIB).
|
Modifier and Type | Method and Description |
---|---|
static Object |
MemoryManager.allocateArray(int numElements,
int logElementSize,
int headerSize,
TIB tib,
int allocator,
int align,
int offset,
int site)
Allocate an array object.
|
private static Object |
MemoryManager.allocateArrayInternal(int numElements,
int size,
TIB tib,
int allocator,
int align,
int offset,
int site)
Allocate an array object.
|
static Object |
MemoryManager.allocateScalar(int size,
TIB tib,
int allocator,
int align,
int offset,
int site)
Allocate a scalar object.
|
static void |
MemoryManager.initializeHeader(BootImageInterface bootImage,
Address ref,
TIB tib,
int size,
boolean isScalar)
Override the boot-time initialization method here, so that
the core MMTk code doesn't need to know about the
BootImageInterface type.
|
Modifier and Type | Method and Description |
---|---|
private ObjectReference |
ObjectModel.copyArray(ObjectReference from,
TIB tib,
RVMArray type,
int allocator) |
private ObjectReference |
ObjectModel.copyScalar(ObjectReference from,
TIB tib,
RVMClass type,
int allocator) |
Modifier and Type | Method and Description |
---|---|
static TIB |
TIB.allocate(int size,
int alignData)
Create a new TIB of the specified size.
|
static TIB |
JavaHeader.getTIB(Object o) |
static TIB |
ObjectModel.getTIB(Object o) |
static TIB |
ObjectModel.getTIB(ObjectReference ptr) |
Modifier and Type | Method and Description |
---|---|
static Object |
ObjectModel.initializeArray(Address ptr,
TIB tib,
int numElems,
int size)
Initialize raw storage with low memory word ptr of size bytes
to be an uninitialized instance of the array type specific by tib
with numElems elements.
|
static Object |
JavaHeader.initializeArrayHeader(Address ptr,
TIB tib,
int size)
Perform any required initialization of the JAVA portion of the header.
|
static Address |
JavaHeader.initializeArrayHeader(BootImageInterface bootImage,
Address ptr,
TIB tib,
int size,
int numElements,
boolean needsIdentityHash,
int identityHashValue)
Perform any required initialization of the JAVA portion of the header.
|
static void |
MiscHeader.initializeHeader(BootImageInterface bootImage,
Address ref,
TIB tib,
int size,
boolean isScalar)
Perform any required initialization of the MISC portion of the header.
|
static void |
MiscHeader.initializeHeader(Object obj,
TIB tib,
int size,
boolean isScalar)
Perform any required initialization of the MISC portion of the header.
|
static Object |
ObjectModel.initializeScalar(Address ptr,
TIB tib,
int size)
Initialize raw storage with low memory word ptr of size bytes
to be an uninitialized instance of the (scalar) type specified by tib.
|
static Object |
JavaHeader.initializeScalarHeader(Address ptr,
TIB tib,
int size)
Perform any required initialization of the JAVA portion of the header.
|
static Address |
JavaHeader.initializeScalarHeader(BootImageInterface bootImage,
Address ptr,
TIB tib,
int size,
boolean needsIdentityHash,
int identityHashValue)
Perform any required initialization of the JAVA portion of the header.
|
void |
TIB.setArrayElementTib(TIB arrayElementTIB) |
static void |
ObjectModel.setTIB(ObjectReference ptr,
TIB tib) |
static void |
JavaHeader.setTIB(Object ref,
TIB tib)
Sets the TIB for an object.
|
static void |
ObjectModel.setTIB(Object ref,
TIB tib) |
Modifier and Type | Method and Description |
---|---|
static TIB |
Magic.addressAsTIB(Address address)
Cast bits.
|
static TIB |
Magic.getTIBAtOffset(Object object,
Offset offset)
Get TIB at arbitrary (byte) offset from object.
|
Modifier and Type | Method and Description |
---|---|
static Object |
RuntimeEntrypoints.resolvedNewArray(int numElements,
int logElementSize,
int headerSize,
TIB tib,
int allocator,
int align,
int offset,
int site)
Allocate something like "new int[cnt]" or "new Foo[cnt]".
|
static Object |
RuntimeEntrypoints.resolvedNewScalar(int size,
TIB tib,
boolean hasFinalizer,
int allocator,
int align,
int offset,
int site)
Allocate something like "new Foo()".
|
static void |
Statics.setSlotContents(Offset offset,
TIB tib)
Set contents of a slot, as a TIB.
|
static Object |
Magic.tibAsObject(TIB tib)
Cast bits of tib into an object
Note: for use by Statics when assigning slots
|