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.compilers.baseline | |
org.jikesrvm.compilers.baseline.ia32 | |
org.jikesrvm.compilers.opt | |
org.jikesrvm.compilers.opt.escape | |
org.jikesrvm.compilers.opt.inlining | |
org.jikesrvm.mm.mmtk | |
org.jikesrvm.objectmodel | |
org.jikesrvm.runtime | |
org.jikesrvm.tools.header_gen | |
org.jikesrvm.tools.oth |
Test harness for the optimizing compiler (see the section "OptTestHarness" in the
user guide).
|
org.jikesrvm.util |
Provides utility classes and implementations of data structures suitable
for core runtime classes.
|
Modifier and Type | Field and Description |
---|---|
private RVMClass[] |
RVMClass.declaredInterfaces
Interfaces supported by this class
|
protected static RVMClass[] |
RVMType.emptyVMClass
Canonical representation of no VM classes
|
static RVMClass |
RVMType.FunctionTableType |
static RVMClass |
RVMType.IMTType |
private static RVMClass[] |
RVMClass.interfaces |
static RVMClass |
RVMType.ITableArrayType |
static RVMClass |
RVMType.ITableType |
static RVMClass |
RVMType.JavaIoSerializableType |
static RVMClass |
RVMType.JavaLangClassType |
static RVMClass |
RVMType.JavaLangCloneableType |
static RVMClass |
RVMType.JavaLangObjectType |
static RVMClass |
RVMType.JavaLangRefReferenceType |
static RVMClass |
RVMType.JavaLangStringType |
static RVMClass |
RVMType.JavaLangThrowableType |
private RVMClass |
InterfaceInvocation.IMTDict.klass |
static RVMClass |
RVMType.LinkageTripletTableType |
static RVMClass |
RVMType.MagicType |
static RVMClass |
RVMType.ObjectReferenceType |
private RVMClass[] |
RVMClass.subClasses
Non-final list of sub-classes.
|
private RVMClass |
RVMClass.superClass
Super class of this class
|
static RVMClass |
RVMType.TIBType |
Modifier and Type | Method and Description |
---|---|
RVMClass |
RVMType.asClass() |
RVMClass[] |
RVMClass.getAllImplementedInterfaces() |
static RVMClass |
RVMClass.getClassFromStackFrame(int skip)
Used for accessibility checks in reflection code.
|
RVMClass[] |
RVMClass.getDeclaredInterfaces() |
RVMClass |
RVMMember.getDeclaringClass() |
RVMClass |
BytecodeStream.getDeclaringClass()
Returns the declaring class that this bytecode stream is from
|
static RVMClass |
RVMClass.getInterface(int id) |
RVMClass[] |
RVMClass.getSubClasses() |
RVMClass |
RVMClass.getSuperClass() |
(package private) static RVMClass |
ClassFileReader.readClass(TypeReference typeRef,
DataInputStream input)
Creates an instance of a RVMClass.
|
(package private) static RVMClass[] |
ClassFileReader.readDeclaredInterfaces(DataInputStream input,
int[] constantPool) |
(package private) static RVMClass |
ClassFileReader.readSuperClass(DataInputStream input,
int[] constantPool,
short modifiers) |
Modifier and Type | Method and Description |
---|---|
private void |
RVMClass.addSubClass(RVMClass sub) |
(package private) static int[] |
DynamicTypeCheck.buildDoesImplement(RVMClass t)
Create the doesImplement vector for a RVMClass.
|
private static InterfaceInvocation.IMTDict |
InterfaceInvocation.buildIMTDict(RVMClass klass,
RVMClass[] interfaces)
Build up a description of the IMT contents for the given class.
|
private static InterfaceInvocation.IMTDict |
InterfaceInvocation.buildIMTDict(RVMClass klass,
RVMClass[] interfaces)
Build up a description of the IMT contents for the given class.
|
private static ITable |
InterfaceInvocation.buildITable(RVMClass C,
RVMClass I) |
void |
ClassLoadingListener.classInitialized(RVMClass c,
boolean writingBootImage) |
(package private) static boolean |
RVMClassLoader.getDesiredAssertionStatus(RVMClass klass)
Calculate the desired assertion status for a freshly loaded class
|
static int |
InterfaceInvocation.getITableIndex(RVMClass klass,
Atom mname,
Atom mdesc) |
static void |
InterfaceInvocation.initializeDispatchStructures(RVMClass klass)
Main entrypoint called from RVMClass.instantiate to
initialize the interface dispatching data structures for
the given class.
|
private static void |
InterfaceInvocation.installITable(RVMClass C,
RVMClass I) |
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 |
JMXSupport.notifyClassLoaded(RVMClass klass) |
private static void |
InterfaceInvocation.populateIMT(RVMClass klass,
InterfaceInvocation.IMTDict d) |
void |
InterfaceInvocation.IMTDict.populateIMT(RVMClass klass,
TIB tib,
IMT imt) |
private RVMMethod |
MethodReference.resolveInterfaceMethodInternal(RVMClass declaringClass)
Find the RVMMethod that this member reference refers to using
the search order specified in JVM spec 5.4.3.4.
|
private RVMMethod |
MethodReference.resolveInternal(RVMClass declaringClass)
Find the RVMMethod that this member reference refers to using
the search order specified in JVM spec 5.4.3.3.
|
private RVMField |
FieldReference.resolveInternal(RVMClass declaringClass) |
private RVMField |
FieldReference.searchInterfaceFields(RVMClass c) |
private RVMMethod |
MethodReference.searchInterfaceMethods(RVMClass c) |
static void |
InterfaceInvocation.updateTIBEntry(RVMClass klass,
RVMMethod m)
If there is an an IMT or ITable entry that contains
compiled code for the argument method, then update it to
contain the current compiled code for the method.
|
Constructor and Description |
---|
IMTDict(RVMClass c) |
RVMClass(TypeReference typeRef,
int[] constantPool,
short modifiers,
RVMClass superClass,
RVMClass[] declaredInterfaces,
RVMField[] declaredFields,
RVMMethod[] declaredMethods,
TypeReference[] declaredClasses,
TypeReference declaringClass,
TypeReference enclosingClass,
MethodReference enclosingMethod,
Atom sourceName,
RVMMethod classInitializerMethod,
Atom signature,
RVMAnnotation[] annotations)
Construct a class from its constituent loaded parts
|
RVMClass(TypeReference typeRef,
int[] constantPool,
short modifiers,
RVMClass superClass,
RVMClass[] declaredInterfaces,
RVMField[] declaredFields,
RVMMethod[] declaredMethods,
TypeReference[] declaredClasses,
TypeReference declaringClass,
TypeReference enclosingClass,
MethodReference enclosingMethod,
Atom sourceName,
RVMMethod classInitializerMethod,
Atom signature,
RVMAnnotation[] annotations)
Construct a class from its constituent loaded parts
|
Modifier and Type | Field and Description |
---|---|
protected RVMClass |
TemplateCompilerFramework.klass
The declaring class of the method being compiled
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
TemplateCompilerFramework.emit_checkcast_resolvedClass(RVMClass type)
Emit code to implement the checkcast bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_checkcast_resolvedInterface(RVMClass type)
Emit code to implement the checkcast bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_instanceof_resolvedClass(RVMClass type)
Emit code to implement the instanceof bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_instanceof_resolvedInterface(RVMClass type)
Emit code to implement the instanceof bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_resolved_new(RVMClass typeRef)
Emit code to allocate a scalar object
|
Modifier and Type | Method and Description |
---|---|
protected void |
BaselineCompilerImpl.emit_checkcast_resolvedClass(RVMClass type) |
protected void |
BaselineCompilerImpl.emit_checkcast_resolvedInterface(RVMClass type) |
protected void |
BaselineCompilerImpl.emit_instanceof_resolvedClass(RVMClass type) |
protected void |
BaselineCompilerImpl.emit_instanceof_resolvedInterface(RVMClass type) |
protected void |
BaselineCompilerImpl.emit_resolved_new(RVMClass typeRef) |
Modifier and Type | Method and Description |
---|---|
static ClassConstantOperand |
ClassLoaderProxy.getClassFromConstantPool(RVMClass klass,
int index) |
static DoubleConstantOperand |
ClassLoaderProxy.getDoubleFromConstantPool(RVMClass klass,
int index) |
static FloatConstantOperand |
ClassLoaderProxy.getFloatFromConstantPool(RVMClass klass,
int index) |
static IntConstantOperand |
ClassLoaderProxy.getIntFromConstantPool(RVMClass klass,
int index) |
static LongConstantOperand |
ClassLoaderProxy.getLongFromConstantPool(RVMClass klass,
int index) |
static StringConstantOperand |
ClassLoaderProxy.getStringFromConstantPool(RVMClass klass,
int index) |
static RVMMethod |
ClassLoaderProxy.lookupMethod(RVMClass cls,
MethodReference ref)
Find the method of the given class that matches the given descriptor.
|
Modifier and Type | Field and Description |
---|---|
private RVMClass |
ObjectReplacer.klass
type of the object
|
Modifier and Type | Method and Description |
---|---|
private static boolean |
ObjectReplacer.containsUnsupportedUse(IR ir,
Register reg,
RVMClass klass,
Set<Register> visited)
Some cases we don't handle yet.
|
private static ArrayList<RVMField> |
ObjectReplacer.getFieldsAsArrayList(RVMClass klass)
Returns the instance fields of the object.
|
Constructor and Description |
---|
ObjectReplacer(Register r,
RVMClass _klass,
IR i) |
Modifier and Type | Field and Description |
---|---|
private static ImmutableEntryHashMapRVM<RVMClass,ImmutableEntryHashSetRVM<RVMClass>> |
InterfaceHierarchy.interfaceMapping
a mapping from RVMClass (an interface) to a set of classes that
claim to implement this interface.
|
private static ImmutableEntryHashMapRVM<RVMClass,ImmutableEntryHashSetRVM<RVMClass>> |
InterfaceHierarchy.interfaceMapping
a mapping from RVMClass (an interface) to a set of classes that
claim to implement this interface.
|
private HashMapRVM<RVMClass,InvalidationDatabase.MethodSet> |
InvalidationDatabase.noSubclassHash
A mapping from RVMClass to MethodSet: holds the set of methods which
depend on a particular class being "final"
|
Modifier and Type | Method and Description |
---|---|
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.allImplementors(RVMClass I) |
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.allSubClasses(RVMClass C) |
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.findOrCreateSet(RVMClass I) |
Modifier and Type | Method and Description |
---|---|
void |
ClassLoadingDependencyManager.addNoSubclassDependency(RVMClass source,
CompiledMethod cm)
Record that the code currently being compiled (cm) must be
invalidated if source ever has a subclass.
|
void |
InvalidationDatabase.addNoSubclassDependency(RVMClass source,
int dependent_cmid)
Records that if a particular RVMClass ever has a subclass, then
the CompiledMethod encoded by the cmid must be invalidated.
|
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.allImplementors(RVMClass I) |
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.allSubClasses(RVMClass C) |
void |
ClassLoadingDependencyManager.classInitialized(RVMClass c,
boolean writingBootImage) |
private static ImmutableEntryHashSetRVM<RVMClass> |
InterfaceHierarchy.findOrCreateSet(RVMClass I) |
private void |
ClassLoadingDependencyManager.handleOverriddenMethods(RVMClass c)
Takes action when a method is overridden.
|
private void |
ClassLoadingDependencyManager.handleSubclassing(RVMClass c) |
Iterator<Integer> |
InvalidationDatabase.invalidatedBySubclass(RVMClass m)
Returns an iteration of CMID's (compiled method ids) that are dependent
on the argument RVMMethod not having any subclasses.
|
private static void |
InterfaceHierarchy.noteImplements(RVMClass c,
RVMClass I)
Notes that a class implements an interface.
|
static void |
InterfaceHierarchy.notifyClassInitialized(RVMClass c)
Notify this dictionary that a new class has been initialized.
|
void |
InvalidationDatabase.removeNoSubclassDependency(RVMClass source)
Deletes all NoSubclass dependencies on the argument RVMClass.
|
void |
InvalidationDatabase.removeNoSubclassDependency(RVMClass source,
int dependent_cmid)
Delete as NoSubclassDependency.
|
Modifier and Type | Method and Description |
---|---|
private ObjectReference |
ObjectModel.copyScalar(ObjectReference from,
TIB tib,
RVMClass type,
int allocator) |
Modifier and Type | Method and Description |
---|---|
RVMClass |
ITable.getInterfaceClass() |
Modifier and Type | Method and Description |
---|---|
static Address |
ObjectModel.allocateScalar(BootImageInterface bootImage,
RVMClass klass,
boolean needsIdentityHash,
int identityHashValue)
Allocate and initialize space in the bootimage (at bootimage writing time)
to be an uninitialized instance of the (scalar) type specified by klass.
|
static int |
JavaHeader.bytesRequiredWhenCopied(Object fromObj,
RVMClass type) |
static int |
ObjectModel.bytesRequiredWhenCopied(Object fromObj,
RVMClass type)
how many bytes are needed when the scalar object is copied by GC?
|
static int |
JavaHeader.bytesUsed(Object obj,
RVMClass type) |
static int |
ObjectModel.bytesUsed(Object obj,
RVMClass type)
how many bytes are used by the scalar?
|
static int |
JavaHeader.computeScalarHeaderSize(RVMClass type)
Computes the header size of an instance of the given type.
|
static int |
ObjectModel.computeScalarHeaderSize(RVMClass type)
Computes the header size of an instance of the given type.
|
static int |
JavaHeader.getAlignment(RVMClass t) |
static int |
ObjectModel.getAlignment(RVMClass t) |
static int |
JavaHeader.getAlignment(RVMClass t,
Object obj) |
static int |
ObjectModel.getAlignment(RVMClass t,
Object obj) |
protected FieldLayoutContext |
FieldLayoutPacked.getLayoutContext(RVMClass klass) |
protected abstract FieldLayoutContext |
FieldLayout.getLayoutContext(RVMClass klass)
Return the appropriate layout context object for the given class.
|
protected FieldLayoutContext |
FieldLayoutUnpacked.getLayoutContext(RVMClass klass) |
static ObjectReference |
JavaHeader.getNextObject(ObjectReference obj,
RVMClass type)
Get the next object in the heap under contiguous
allocation.
|
static ObjectReference |
ObjectModel.getNextObject(ObjectReference obj,
RVMClass type)
Gets the next object after this scalar under contiguous allocation.
|
static Address |
JavaHeader.getObjectEndAddress(Object obj,
RVMClass type)
What is the first word after the class?
|
static Address |
ObjectModel.getObjectEndAddress(Object object,
RVMClass type)
Gets the pointer just past an object.
|
static int |
JavaHeader.getOffsetForAlignment(RVMClass t,
boolean needsIdentityHash) |
static int |
ObjectModel.getOffsetForAlignment(RVMClass t,
boolean needsIdentityHash) |
static int |
JavaHeader.getOffsetForAlignment(RVMClass t,
ObjectReference obj) |
static int |
ObjectModel.getOffsetForAlignment(RVMClass t,
ObjectReference obj) |
static Object |
JavaHeader.getReferenceWhenCopiedTo(Object obj,
Address to,
RVMClass type)
Get the reference of a scalar when copied to the specified region.
|
static Object |
ObjectModel.getReferenceWhenCopiedTo(Object obj,
Address region,
RVMClass type)
Get the reference of an object after copying to a specified region.
|
protected void |
FieldLayout.layoutField(FieldLayoutContext layout,
RVMClass klass,
RVMField field,
int fieldSize)
Lay out a given field.
|
void |
FieldLayout.layoutInstanceFields(RVMClass klass)
This is where a class gets laid out.
|
static void |
ObjectModel.layoutInstanceFields(RVMClass klass)
Layout the instance fields declared in this class.
|
static Object |
JavaHeader.moveObject(Address toAddress,
Object fromObj,
int numBytes,
RVMClass type)
Copy a scalar to the given raw storage address.
|
static Object |
ObjectModel.moveObject(Address toAddress,
Object fromObj,
int numBytes,
RVMClass type)
Copy a scalar object to the given raw storage address.
|
static Object |
JavaHeader.moveObject(Object fromObj,
Object toObj,
int numBytes,
RVMClass type)
Copies a scalar to the given location.
|
static Object |
ObjectModel.moveObject(Object fromObj,
Object toObj,
int numBytes,
RVMClass type)
Copies a scalar object to the given raw storage address.
|
static int |
JavaHeader.objectStartOffset(RVMClass klass)
What is the offset of the first word of the class?
|
static int |
ObjectModel.objectStartOffset(RVMClass t)
For a reference to an object, what is the offset in bytes to the bottom
word of the object?
|
protected void |
FieldLayout.setOffset(RVMClass klass,
RVMField field,
int offset)
Update a field to set its offset within the object.
|
protected void |
FieldLayout.updateClass(RVMClass klass,
FieldLayoutContext fieldLayout)
Updates the RVMClass with context info.
|
Modifier and Type | Method and Description |
---|---|
RVMClass |
StackBrowser.getCurrentClass() |
Modifier and Type | Method and Description |
---|---|
static void |
RuntimeEntrypoints.initializeClassForDynamicLink(RVMClass cls)
Prepare a class for use prior to first allocation,
field access, or method invocation.
|
static void |
Callbacks.notifyClassInitialized(RVMClass klass)
Notify the callback manager that a class has been initialized.
|
void |
Callbacks.ClassInitializedMonitor.notifyClassInitialized(RVMClass klass)
Notify the monitor that a class has been initialized.
|
static void |
Callbacks.notifyClassInstantiated(RVMClass klass)
Notify the callback manager that a class has been instantiated.
|
void |
Callbacks.ClassInstantiatedMonitor.notifyClassInstantiated(RVMClass klass)
Notify the monitor that a class has been instantiated.
|
static void |
Callbacks.notifyClassLoaded(RVMClass klass)
Notify the callback manager that a class has been loaded.
|
void |
Callbacks.ClassLoadedMonitor.notifyClassLoaded(RVMClass klass)
Notify the monitor that a class has been loaded.
|
static void |
Callbacks.notifyClassResolved(RVMClass klass)
Notify the callback manager that a class has been resolved.
|
void |
Callbacks.ClassResolvedMonitor.notifyClassResolved(RVMClass klass)
Notify the monitor that a class has been resolved.
|
static Object |
RuntimeEntrypoints.resolvedNewScalar(RVMClass cls)
Allocate something like "new Foo()".
|
Modifier and Type | Method and Description |
---|---|
(package private) static void |
GenerateInterfaceDeclarations.emitCDeclarationsForJavaType(String Cname,
RVMClass cls) |
Modifier and Type | Field and Description |
---|---|
(package private) RVMClass |
OptTestHarness.mainClass |
Modifier and Type | Method and Description |
---|---|
(package private) RVMClass |
OptTestHarness.loadClass(String s) |
Modifier and Type | Method and Description |
---|---|
(package private) RVMMethod |
OptTestHarness.findDeclaredOrFirstMethod(RVMClass klass,
String methname,
String methdesc)
Finds a method, either one with a given descriptor or the first matching
one in in the given class.
|
private void |
OptTestHarness.processClass(RVMClass klass,
OptOptions opts) |
Modifier and Type | Method and Description |
---|---|
void |
PrintLN.print(RVMClass class_) |