Modifier and Type | Method and Description |
---|---|
(package private) static RegisterOperand |
CounterArrayManager.InsertALoadOffset(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand reg2,
int offset)
Insert array load off before s in the instruction stream.
|
Modifier and Type | Method and Description |
---|---|
static Object |
JNIHelpers.invokeWithDotDotVarArg(int methodID,
TypeReference expectReturnType) |
static Object |
JNIHelpers.invokeWithDotDotVarArg(Object obj,
int methodID,
TypeReference expectReturnType,
boolean skip4Args) |
static Object |
JNIHelpers.invokeWithVarArg(int methodID,
Address argAddress,
TypeReference expectReturnType) |
static Object |
JNIHelpers.invokeWithVarArg(Object obj,
int methodID,
Address argAddress,
TypeReference expectReturnType,
boolean skip4Args) |
Modifier and Type | Field and Description |
---|---|
static TypeReference |
TypeReference.Address |
static TypeReference |
TypeReference.AddressArray |
private TypeReference[] |
TypeReferenceVector.array |
static TypeReference |
TypeReference.BaselineNoRegisters |
static TypeReference |
TypeReference.BaselineSaveLSRegisters |
(package private) static TypeReference |
TypeReference.baseReflectionClass
Abstract base of reflective method invoker classes
|
static TypeReference |
TypeReference.Boolean |
static TypeReference |
TypeReference.BooleanArray |
static TypeReference |
TypeReference.Byte |
static TypeReference |
TypeReference.ByteArray |
static TypeReference |
TypeReference.Char |
static TypeReference |
TypeReference.CharArray |
static TypeReference |
TypeReference.Class |
static TypeReference |
TypeReference.Code |
static TypeReference |
TypeReference.CodeArray |
private TypeReference[] |
RVMClass.declaredClasses
Declared inner classes, may be null
|
private TypeReference |
RVMMember.declaringClass
The class that declared this member, available by calling
getDeclaringClass once the class is loaded.
|
private TypeReference |
RVMClass.declaringClass
The outer class, or null if this is not a inner/nested class
|
static TypeReference |
TypeReference.Double |
static TypeReference |
TypeReference.DoubleArray |
static TypeReference |
TypeReference.DynamicBridge |
private static TypeReference[] |
TypeReferenceVector.empty |
private TypeReference |
RVMClass.enclosingClass
The enclosing class if this is a local class
|
static TypeReference |
TypeReference.ExceptionTable |
private TypeReference[] |
ExceptionHandlerMap.exceptionTypes
exception type for which i-th handler is to be invoked
- something like "java/lang/IOException".
|
static TypeReference |
TypeReference.Extent |
static TypeReference |
TypeReference.ExtentArray |
private TypeReference |
FieldReference.fieldContentsType
The field's type
|
static TypeReference |
TypeReference.Float |
static TypeReference |
TypeReference.FloatArray |
static TypeReference |
TypeReference.FunctionTable |
static TypeReference |
TypeReference.IMT |
static TypeReference |
TypeReference.Int |
static TypeReference |
TypeReference.IntArray |
static TypeReference |
TypeReference.Interruptible |
static TypeReference |
TypeReference.ITable |
static TypeReference |
TypeReference.ITableArray |
static TypeReference |
TypeReference.JavaIoSerializable |
static TypeReference |
TypeReference.JavaLangArithmeticException |
static TypeReference |
TypeReference.JavaLangArrayIndexOutOfBoundsException |
static TypeReference |
TypeReference.JavaLangArrayStoreException |
static TypeReference |
TypeReference.JavaLangClass |
static TypeReference |
TypeReference.JavaLangClassCastException |
static TypeReference |
TypeReference.JavaLangCloneable |
static TypeReference |
TypeReference.JavaLangError |
static TypeReference |
TypeReference.JavaLangIllegalMonitorStateException |
static TypeReference |
TypeReference.JavaLangNegativeArraySizeException |
static TypeReference |
TypeReference.JavaLangNullPointerException |
static TypeReference |
TypeReference.JavaLangObject |
static TypeReference |
TypeReference.JavaLangObjectArray |
static TypeReference |
TypeReference.JavaLangRefReference |
static TypeReference |
TypeReference.JavaLangString |
static TypeReference |
TypeReference.JavaLangSystem |
static TypeReference |
TypeReference.JavaLangThrowable |
static TypeReference |
TypeReference.JNIFunctions |
static TypeReference |
TypeReference.LinkageTripletTable |
static TypeReference |
TypeReference.LogicallyUninterruptible |
static TypeReference |
TypeReference.Long |
static TypeReference |
TypeReference.LongArray |
static TypeReference |
TypeReference.Magic |
static TypeReference |
TypeReference.NativeBridge |
static TypeReference |
TypeReference.NoCheckStore |
static TypeReference |
TypeReference.NonMoving |
static TypeReference |
TypeReference.NonMovingAllocation |
static TypeReference |
TypeReference.NULL_TYPE |
static TypeReference |
TypeReference.ObjectReference |
static TypeReference |
TypeReference.ObjectReferenceArray |
static TypeReference |
TypeReference.Offset |
static TypeReference |
TypeReference.OffsetArray |
static TypeReference |
TypeReference.OptimizationPlanner |
private TypeReference[] |
MethodReference.parameterTypes
types of parameters (not including "this", if virtual)
|
static TypeReference |
TypeReference.Preemptible |
static TypeReference |
TypeReference.ReferenceFieldsVary |
static TypeReference |
TypeReference.ReferenceMaps |
private TypeReference |
MethodReference.returnType
type of return value
|
static TypeReference |
TypeReference.RVMArray |
static TypeReference |
TypeReference.SaveVolatile |
static TypeReference |
TypeReference.Short |
static TypeReference |
TypeReference.ShortArray |
static TypeReference |
TypeReference.SpecializedMethodInvoke |
static TypeReference |
TypeReference.SysCall |
static TypeReference |
TypeReference.Thread |
static TypeReference |
TypeReference.TIB |
protected TypeReference |
MemberReference.type
The type reference
|
private TypeReference |
RVMAnnotation.type
The type of the annotation.
|
static TypeReference |
TypeReference.Type |
protected TypeReference |
RVMType.typeRef
Canonical type reference for this RVMType instance
|
private static TypeReference[][] |
TypeReference.types
Dictionary of all TypeReference instances.
|
static TypeReference |
TypeReference.Uninterruptible |
static TypeReference |
TypeReference.UninterruptibleNoWarn |
static TypeReference |
TypeReference.Unpreemptible |
static TypeReference |
TypeReference.UnpreemptibleNoWarn |
static TypeReference |
TypeReference.Untraced |
static TypeReference |
TypeReference.VALIDATION_TYPE |
static TypeReference |
TypeReference.Void |
static TypeReference |
TypeReference.Word |
static TypeReference |
TypeReference.WordArray |
Modifier and Type | Field and Description |
---|---|
private static ImmutableEntryHashSetRVM<TypeReference> |
TypeReference.dictionary
Used to canonicalize TypeReferences
|
Modifier and Type | Method and Description |
---|---|
(package private) TypeReference |
RVMAnnotation.annotationType()
Return the TypeReference of the declared annotation, ie an
interface and not the class object of this instance
|
(package private) TypeReference |
TypeReferenceVector.elementAt(int index) |
static TypeReference |
TypeReference.findOrCreate(Class<?> klass)
Convert a java.lang.Class into a type reference the slow way.
|
static TypeReference |
TypeReference.findOrCreate(ClassLoader cl,
Atom tn)
Find or create the canonical TypeReference instance for
the given pair.
|
static TypeReference |
TypeReference.findOrCreate(String tn)
Shorthand for doing a find or create for a type reference that should
be created using the bootstrap classloader.
|
static TypeReference |
TypeReference.findOrCreateInternal(ClassLoader cl,
Atom tn)
Find or create the canonical TypeReference instance for
the given pair without type descriptor parsing.
|
TypeReference[] |
TypeReferenceVector.finish() |
TypeReference |
TypeReference.getArrayElementType() |
TypeReference |
TypeReference.getArrayTypeForElementType() |
private static TypeReference |
RVMClassLoader.getClassTypeRef(DataInputStream input,
ClassLoader cl) |
TypeReference[] |
RVMClass.getDeclaredClasses() |
TypeReference |
RVMClass.getDeclaringClass() |
TypeReference |
RVMClass.getEnclosingClass() |
TypeReference |
ExceptionHandlerMap.getExceptionType(int i) |
TypeReference[] |
ExceptionHandlerMap.getExceptionTypes() |
TypeReference[] |
RVMMethod.getExceptionTypes()
Exceptions thrown by this method -
something like
{ "java/lang/IOException", "java/lang/EOFException" } |
TypeReference |
FieldReference.getFieldContentsType() |
TypeReference |
TypeReference.getInnermostElementType() |
TypeReference |
BytecodeStream.getObjectArrayType()
Returns the type of the object array (as a RVMType).
|
TypeReference[] |
MethodReference.getParameterTypes() |
TypeReference[] |
RVMMethod.getParameterTypes() |
abstract TypeReference |
SpecializedMethod.getReturnType() |
TypeReference |
MethodReference.getReturnType() |
TypeReference |
RVMMethod.getReturnType() |
abstract TypeReference[] |
SpecializedMethod.getSignature() |
TypeReference |
MemberReference.getType() |
TypeReference |
RVMField.getType() |
TypeReference |
RVMType.getTypeRef() |
TypeReference |
RVMClass.getTypeRef(int constantPoolIndex) |
static TypeReference |
TypeReference.getTypeRef(int id)
Get the canonical type reference given its id.
|
(package private) static TypeReference |
ClassFileReader.getTypeRef(int[] constantPool,
int constantPoolIndex) |
TypeReference |
BytecodeStream.getTypeReference()
Returns the type reference (as a RVMType).
|
TypeReference[] |
Atom.parseForParameterTypes(ClassLoader cl)
Parse "this" method descriptor to obtain descriptions of method's
parameters.
|
TypeReference |
Atom.parseForReturnType(ClassLoader cl)
Parse "this" method descriptor to obtain description of method's
return type.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
TypeReferenceVector.addElement(TypeReference item) |
void |
TypeReferenceVector.addUniqueElement(TypeReference item) |
protected CompiledMethod |
SpecializedMethod.compileSpecializedMethod(RVMMethod template,
TypeReference[] specializedParams)
Compile a specialized version of a template method.
|
(package private) static RVMField |
RVMField.createAnnotationField(TypeReference annotationClass,
MemberReference memRef) |
protected static Class<?> |
RVMType.createClassForType(RVMType type,
TypeReference typeRef) |
(package private) static RVMMethod |
RVMMethod.createDefaultConstructor(TypeReference klass,
MemberReference memRef)
Create a method to act as a default constructor (just return)
|
(package private) static Primitive |
Primitive.createPrimitive(TypeReference tr)
Creates an instance of a
Primitive . |
(package private) RVMMethod |
RVMMethod.createReflectionMethod(TypeReference reflectionClass,
int[] constantPool,
MethodReference memRef)
Create a method for reflectively invoking this method
|
(package private) static UnboxedType |
UnboxedType.createUnboxedType(TypeReference tr)
Create an instance of a
UnboxedType |
boolean |
TypeReference.definitelyDifferent(TypeReference that)
Do this and that definitely refer to the different types?
|
boolean |
TypeReference.definitelySame(TypeReference that)
Do
this and that definitely refer to the same type? |
static MemberReference |
MemberReference.findOrCreate(TypeReference tRef,
Atom mn,
Atom md)
Find or create the canonical MemberReference instance for
the given tuple.
|
static MethodReference |
MethodReference.findOrCreate(TypeReference tRef,
Atom mn,
Atom md)
Find or create a method reference
|
(package private) boolean |
AnnotatedElement.isAnnotationDeclared(TypeReference annotationTypeRef)
Checks if an annotation is declared.
|
(package private) static RVMAnnotation.AnnotationMember |
RVMAnnotation.AnnotationMember.readAnnotationMember(TypeReference type,
int[] constantPool,
DataInputStream input,
ClassLoader classLoader) |
(package private) static RVMClass |
ClassFileReader.readClass(TypeReference typeRef,
DataInputStream input)
Creates an instance of a RVMClass.
|
(package private) static int[] |
ClassFileReader.readConstantPool(TypeReference typeRef,
DataInputStream input)
Parse and return the constant pool in a class file
|
(package private) static RVMField[] |
ClassFileReader.readDeclaredFields(TypeReference typeRef,
DataInputStream input,
int[] constantPool) |
(package private) static RVMMethod[] |
ClassFileReader.readDeclaredMethods(TypeReference typeRef,
DataInputStream input,
int[] constantPool) |
(package private) static RVMField |
RVMField.readField(TypeReference declaringClass,
int[] constantPool,
MemberReference memRef,
short modifiers,
DataInputStream input)
Reads and creates a field.
|
(package private) static RVMMethod |
RVMMethod.readMethod(TypeReference declaringClass,
int[] constantPool,
MemberReference memRef,
short modifiers,
DataInputStream input)
Called from
ClassFileReader.readClass(TypeReference,DataInputStream) to create an
instance of a RVMMethod by reading the relevant data from the argument bytecode stream. |
(package private) static int |
ClassFileReader.readTypeRef(TypeReference typeRef,
DataInputStream input,
int[] constantPool)
Read the class' TypeReference
|
(package private) static <T> Object |
RVMAnnotation.readValue(TypeReference type,
int[] constantPool,
DataInputStream input,
ClassLoader classLoader) |
private static <T> Object |
RVMAnnotation.readValue(TypeReference type,
int[] constantPool,
DataInputStream input,
ClassLoader classLoader,
byte elementValue_tag) |
(package private) void |
TypeReferenceVector.setElementAt(TypeReference item,
int index) |
Constructor and Description |
---|
AbstractMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct abstract method information
|
AbstractMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct abstract method information
|
ExceptionHandlerMap(int[] startPCs,
int[] endPCs,
int[] handlerPCs,
TypeReference[] exceptionTypes) |
FieldReference(TypeReference tr,
Atom mn,
Atom d,
int id) |
MemberReference(TypeReference tRef,
Atom mn,
Atom d,
int id) |
MethodReference(TypeReference tr,
Atom mn,
Atom d,
int id) |
NativeMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct native method information
|
NativeMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct native method information
|
NormalMethod(TypeReference dc,
MemberReference mr,
short mo,
TypeReference[] et,
short lw,
short ow,
byte[] bc,
ExceptionHandlerMap eMap,
int[] lm,
LocalVariableTable lvt,
int[] constantPool,
Atom sig,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object ad)
Construct a normal Java bytecode method's information
|
NormalMethod(TypeReference dc,
MemberReference mr,
short mo,
TypeReference[] et,
short lw,
short ow,
byte[] bc,
ExceptionHandlerMap eMap,
int[] lm,
LocalVariableTable lvt,
int[] constantPool,
Atom sig,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object ad)
Construct a normal Java bytecode method's information
|
Primitive(TypeReference tr,
Class<?> classForType,
Atom name,
int stackWords,
int memoryBytes)
Constructor
|
RVMAnnotation(TypeReference type,
RVMAnnotation.AnnotationMember[] elementValuePairs)
Construct a read annotation
|
RVMArray(TypeReference typeRef,
RVMType elementType) |
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
|
RVMField(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
Atom signature,
int constantValueIndex,
RVMAnnotation[] annotations)
Create a field.
|
RVMMember(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
Atom signature,
RVMAnnotation[] annotations)
NOTE: Only
RVMClass is allowed to create an instance of a RVMMember. |
RVMMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct a read method
|
RVMMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct a read method
|
RVMType(TypeReference typeRef,
Class<?> classForType,
int dimension,
RVMAnnotation[] annotations)
Create an instance of a
RVMType |
RVMType(TypeReference typeRef,
int dimension,
RVMAnnotation[] annotations)
Create an instance of a
RVMType |
UnboxedType(TypeReference tr,
Class<?> classForType,
Atom name,
int stackWords,
int memoryBytes)
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected CompiledMethod |
BaselineBootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params) |
protected abstract void |
TemplateCompilerFramework.emit_checkcast(TypeReference typeRef)
Emit code to implement the checkcast bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_instanceof(TypeReference typeRef)
Emit code to implement the instanceof bytecode
|
protected abstract void |
TemplateCompilerFramework.emit_multianewarray(TypeReference typeRef,
int dimensions)
Emit code to allocate a multi-dimensional array
|
protected abstract void |
TemplateCompilerFramework.emit_unresolved_new(TypeReference typeRef)
Emit code to dynamically link and allocate a scalar object
|
protected abstract void |
TemplateCompilerFramework.emit_unresolved_newarray(TypeReference typeRef)
Emit code to dynamically link the element class and allocate an array
|
Modifier and Type | Field and Description |
---|---|
private TypeReference[] |
BaselineGCMapIterator.bridgeParameterTypes
parameter types passed by that method
|
Modifier and Type | Method and Description |
---|---|
protected void |
BaselineCompilerImpl.emit_checkcast(TypeReference typeRef) |
protected void |
BaselineCompilerImpl.emit_instanceof(TypeReference typeRef) |
protected void |
BaselineCompilerImpl.emit_multianewarray(TypeReference typeRef,
int dimensions) |
protected void |
BaselineCompilerImpl.emit_unresolved_new(TypeReference typeRef) |
protected void |
BaselineCompilerImpl.emit_unresolved_newarray(TypeReference tRef) |
Modifier and Type | Method and Description |
---|---|
static CompiledMethod |
BootImageCompiler.compile(NormalMethod method,
TypeReference[] params) |
protected abstract CompiledMethod |
BootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params)
Compiles a method with bytecodes.
|
Modifier and Type | Field and Description |
---|---|
(package private) TypeReference |
FieldDatabase.FieldDatabaseEntry.cachedConcreteType
cache a copy of the concrete type already determined for this field
|
(package private) TypeReference |
FieldDatabase.FieldWriterInfo.concreteType |
(package private) TypeReference |
OptimizingCompilerException.IllegalUpcast.magicType
Unboxed type that was attempted to convert to an Object
|
Modifier and Type | Method and Description |
---|---|
static TypeReference |
ClassLoaderProxy.findCommonSuperclass(TypeReference t1,
TypeReference t2)
Returns a common superclass of the two types.
|
(package private) TypeReference |
FieldDatabase.FieldDatabaseEntry.getConcreteType() |
TypeReference |
FieldDatabase.getConcreteType(RVMField f) |
static TypeReference |
FieldAnalysis.getConcreteType(RVMField f)
Gets the a single concrete type for a field, if there is one.
|
static TypeReference |
StaticFieldReader.getTypeFromStaticField(RVMField field)
Get the type of an object contained in a static field.
|
Modifier and Type | Method and Description |
---|---|
private static ConstantOperand |
Simplifier.boxConstantObjectAsOperand(Object x,
TypeReference t)
Package up an object as a constant operand
|
private static Object |
Simplifier.boxConstantOperand(ConstantOperand op,
TypeReference t)
Package up a constant operand as an object
|
static TypeReference |
ClassLoaderProxy.findCommonSuperclass(TypeReference t1,
TypeReference t2)
Returns a common superclass of the two types.
|
static byte |
ClassLoaderProxy.includesType(TypeReference parentType,
TypeReference childType)
Return Constants.YES if the parent type is defintely a supertype
of the child type.
|
private static boolean |
FieldAnalysis.isCandidate(TypeReference tref)
Is a type a candidate for type analysis?
|
private static void |
FieldAnalysis.recordConcreteType(RVMMethod m,
RVMField f,
TypeReference t)
Record that a method stores an object of a particular concrete type
to a field.
|
Constructor and Description |
---|
IllegalUpcast(TypeReference type) |
Modifier and Type | Method and Description |
---|---|
TypeReference |
BC2IR.getArrayTypeOf(Operand op)
Returns the data type of the given operand, assuming that the operand is
an array reference.
|
private TypeReference |
BC2IR.getRefTypeOf(Operand op)
Returns the data type of the given operand, assuming that the operand is
a reference.
|
Modifier and Type | Method and Description |
---|---|
Instruction |
BC2IR._aloadHelper(Operator operator,
Operand ref,
Operand index,
TypeReference type) |
private Instruction |
BC2IR._binaryDualHelper(Operator operator,
Operand op1,
Operand op2,
TypeReference type) |
Instruction |
BC2IR._binaryHelper(Operator operator,
Operand op1,
Operand op2,
TypeReference type) |
private Instruction |
BC2IR._guardedBinaryDualHelper(Operator operator,
Operand op1,
Operand op2,
Operand guard,
TypeReference type) |
private Instruction |
BC2IR._guardedBinaryHelper(Operator operator,
Operand op1,
Operand op2,
Operand guard,
TypeReference type) |
private Instruction |
BC2IR._moveDualHelper(Operator operator,
Operand val,
TypeReference type) |
(package private) Instruction |
BC2IR._moveHelper(Operator operator,
Operand val,
TypeReference type) |
(package private) Instruction |
BC2IR._unaryDualHelper(Operator operator,
Operand val,
TypeReference type) |
(package private) Instruction |
BC2IR._unaryHelper(Operator operator,
Operand val,
TypeReference type) |
private void |
BC2IR.assertIsAssignable(TypeReference parentType,
TypeReference childType)
Assert that the given child type is a subclass of the given parent type.
|
void |
BC2IR.assertIsType(Operand op,
TypeReference type)
Assert that the given operand is of the given type, or of
a subclass of the given type.
|
private boolean |
BC2IR.couldCauseClassLoading(TypeReference typeRef) |
private boolean |
BC2IR.do_CheckStore(Operand ref,
Operand elem,
TypeReference elemType)
Generate a storecheck for the given array and elem
|
Instruction |
BC2IR.generateAnewarray(TypeReference arrayTypeRef,
TypeReference elementTypeRef) |
(package private) int |
GenerationContext.getLocalNumberFor(Register reg,
TypeReference type)
Gets the local number for a given register
|
private static Operator |
GenerateMagic.getOperator(TypeReference type,
int operatorClass) |
private Register[] |
GenerationContext.getPool(TypeReference type) |
(package private) boolean |
GenerationContext.isLocal(Operand op,
int i,
TypeReference type)
Is the operand a particular bytecode local?
|
(package private) Register |
GenerationContext.localReg(int i,
TypeReference type)
Returns the Register used to for local i of TypeReference type.
|
(package private) RegisterOperand |
GenerationContext.makeLocal(int i,
TypeReference type)
Makes a register operand that refers to the given local variable number
and has the given type.
|
private TypeOperand |
BC2IR.makeTypeOperand(TypeReference type)
Make a type operand that refers to the given type.
|
(package private) byte |
HandlerBlockLE.mayCatchException(TypeReference et) |
(package private) byte |
HandlerBlockLE.mustCatchException(TypeReference et) |
(package private) Operand |
BC2IR.pop(TypeReference type)
Pops an operand of the given type from the stack.
|
(package private) void |
BC2IR.push(Operand r,
TypeReference type)
Push an operand of the specified type on the simulated stack.
|
BasicBlock |
BC2IR.rectifyStateWithExceptionHandler(TypeReference exceptionType) |
private BasicBlock |
BC2IR.rectifyStateWithExceptionHandler(TypeReference exceptionType,
boolean linkToExitIfUncaught) |
private void |
BC2IR.replaceLocalsOnStack(int index,
TypeReference type)
Replaces copies of local
<#index,type> with
newly-generated temporaries, and generates the necessary move instructions. |
Constructor and Description |
---|
GenerationContext(NormalMethod meth,
TypeReference[] params,
CompiledMethod cm,
OptOptions opts,
InlineOracle ip)
Use this constructor to create an outermost (non-inlined)
GenerationContext.
|
Modifier and Type | Field and Description |
---|---|
TypeReference[] |
CompilationPlan.params
The specialized parameters to use in place of those defined in method.
|
static TypeReference |
OptConstants.PRIMITIVE_TYPE_FOR_WORD |
Modifier and Type | Method and Description |
---|---|
protected CompiledMethod |
OptimizingBootImageCompiler.compileMethod(NormalMethod method,
TypeReference[] params) |
Constructor and Description |
---|
CompilationPlan(NormalMethod m,
TypeReference[] pms,
OptimizationPlanElement[] op,
InstrumentationPlan mp,
OptOptions opts)
Construct a compilation plan
|
Modifier and Type | Method and Description |
---|---|
private static Instruction |
DynamicTypeCheckExpansion.convertToBranchingTypeCheck(Instruction s,
IR ir,
Operand RHSobj,
TypeReference LHStype,
Operand RHStib,
RegisterOperand result)
Generate wrapper around branching type check to get a
value producing type check.
|
private static Instruction |
DynamicTypeCheckExpansion.generateBranchingTypeCheck(Instruction s,
IR ir,
Operand RHSobj,
TypeReference LHStype,
Operand RHStib,
BasicBlock trueBlock,
BasicBlock falseBlock,
RegisterOperand oldGuard,
BranchProfileOperand falseProb)
Generate a branching dynamic type check.
|
private static Instruction |
DynamicTypeCheckExpansion.generateValueProducingTypeCheck(Instruction s,
IR ir,
Operand RHSobj,
TypeReference LHStype,
Operand RHStib,
RegisterOperand result)
Generate a value-producing dynamic type check.
|
static RegisterOperand |
ConvertToLowLevelIR.insertBinary(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand o1,
Operand o2)
Insert a binary instruction before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertGuardedUnary(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand o1,
Operand guard)
Insert a guarded unary instruction before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffset(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand reg2,
Offset offset)
Insert a load off before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffset(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand reg2,
Offset offset,
LocationOperand loc,
Operand guard)
Insert a load off before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffset(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand reg2,
Offset offset,
Operand guard)
Insert a load off before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffset(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand reg2,
Operand offset,
LocationOperand loc,
Operand guard)
Insert a load off before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffsetJTOC(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Offset offset)
Insert a load off the JTOC before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertLoadOffsetJTOC(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand offset)
Insert a load off the JTOC before s in the instruction stream.
|
(package private) static RegisterOperand |
ConvertToLowLevelIR.InsertUnary(Instruction s,
IR ir,
Operator operator,
TypeReference type,
Operand o1)
Insert a unary instruction before s in the instruction stream.
|
Modifier and Type | Field and Description |
---|---|
TypeReference[] |
IR.params
The specialized parameters to be used in place of those defined
in the NormalMethod.
|
Modifier and Type | Method and Description |
---|---|
private void |
BasicBlock.addTargets(BasicBlock.ComputedBBEnum e,
TypeReference thrownException) |
static Operator |
IRTools.getCondMoveOp(TypeReference type)
Returns the correct operator for a conditional move with the given data
type.
|
static Operand |
IRTools.getDefaultOperand(TypeReference type)
Returns a constant operand with a default value for a given type
|
static Operator |
IRTools.getLoadOp(TypeReference type,
boolean isStatic)
Returns the correct operator for loading a value of the given type
|
static Operator |
IRTools.getMoveOp(TypeReference type)
Returns the correct operator for moving the given data type.
|
Register |
AbstractRegisterPool.getReg(TypeReference type)
Get a new register of the appropriate type to hold values of 'type'
|
static Operator |
IRTools.getStoreOp(TypeReference type,
boolean isStatic)
Returns the correct operator for storing a value of the given type
|
RegisterOperand |
AbstractRegisterPool.makeTemp(TypeReference type)
Make a temporary register operand to hold values of the specified type
(a new register is allocated).
|
byte |
ExceptionHandlerBasicBlock.mayCatchException(TypeReference cand)
Return YES/NO/MAYBE values that answer the question is it possible for
this handler block to catch an exception of the type et.
|
static RegisterOperand |
IRTools.moveIntoRegister(TypeReference type,
Operator move_op,
GenericRegisterPool pool,
Instruction s,
Operand op)
Generates an instruction to move the given operand into a register, and
inserts it before the given instruction.
|
byte |
ExceptionHandlerBasicBlock.mustCatchException(TypeReference cand)
Return YES/NO/MAYBE values that answer the question is it guarenteed that
this handler block will catch an exception of type
cand |
Modifier and Type | Field and Description |
---|---|
(package private) TypeReference |
LocationOperand.arrayElementType
Array element type that corresponds to the type of the array that contains
this location;
null if this is not an array access. |
private TypeReference |
RegisterOperand.type
Inferred data type of the contents of the register.
|
private TypeReference |
TypeOperand.typeRef
The data type.
|
Modifier and Type | Method and Description |
---|---|
TypeReference |
LocationOperand.getElementType() |
TypeReference |
NullConstantOperand.getType() |
TypeReference |
Operand.getType()
Return the
TypeReference of the value represented by the operand. |
TypeReference |
StringConstantOperand.getType() |
TypeReference |
ClassConstantOperand.getType() |
TypeReference |
TIBConstantOperand.getType() |
TypeReference |
AddressConstantOperand.getType() |
TypeReference |
IntConstantOperand.getType()
Return the
TypeReference of the value represented by
the operand. |
TypeReference |
TypeOperand.getType() |
TypeReference |
ObjectConstantOperand.getType() |
TypeReference |
LongConstantOperand.getType() |
TypeReference |
TrueGuardOperand.getType() |
TypeReference |
FloatConstantOperand.getType() |
TypeReference |
LocationOperand.getType() |
TypeReference |
CodeConstantOperand.getType() |
TypeReference |
RegisterOperand.getType()
Return the
TypeReference of the value represented by the operand. |
TypeReference |
DoubleConstantOperand.getType() |
TypeReference |
TypeOperand.getTypeRef() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
LocationOperand.arrayMayBeAliased(TypeReference t1,
TypeReference t2) |
private static boolean |
Operand.compatiblePrimitives(TypeReference type1,
TypeReference type2) |
void |
RegisterOperand.refine(TypeReference t)
Refine the type of the register to t if t is a more precise type than the
register currently holds
|
void |
RegisterOperand.setPreciseType(TypeReference t)
Set the
TypeReference of the value represented by the operand and
make the type precise. |
void |
RegisterOperand.setType(TypeReference t)
Set the
TypeReference of the value represented by the operand. |
Constructor and Description |
---|
LocationOperand(TypeReference t)
Constructs a new location operand with the given array element type.
|
RegisterOperand(Register reg,
TypeReference typ)
Constructs a new register operand with the given register and data type.
|
RegisterOperand(Register reg,
TypeReference typ,
byte inFlags,
boolean isPrecise,
boolean isDeclared)
Constructs a new register operand with the given register, data type and flags.
|
TypeOperand(RVMType t,
TypeReference tr) |
TypeOperand(TypeReference tr) |
Modifier and Type | Method and Description |
---|---|
TypeReference |
LiveSetElement.getRegisterType()
Returns the register type associated with this element
|
Modifier and Type | Field and Description |
---|---|
private static TypeReference |
CallingConvention.wordType |
Modifier and Type | Field and Description |
---|---|
private static TypeReference |
OptMachineCodeMap.TYPE |
Modifier and Type | Method and Description |
---|---|
private TypeReference |
EnterSSA.findParameterType(Register p) |
private static TypeReference |
EnterSSA.meetPhiType(Instruction s,
Map<Instruction,EnterSSA.PhiTypeInformation> phiTypes)
Return the meet of the types on the rhs of a phi instruction
|
Modifier and Type | Method and Description |
---|---|
(package private) static Register |
LoadElimination.findOrCreateRegister(Object heapType,
int valueNumber,
HashMap<LoadElimination.UseRecord,Register> registers,
GenericRegisterPool pool,
TypeReference type)
Given a value number, return the temporary register allocated
for that value number.
|
(package private) static Register |
LoadElimination.findOrCreateRegister(Object heapType,
int v1,
int v2,
HashMap<LoadElimination.UseRecord,Register> registers,
GenericRegisterPool pool,
TypeReference type)
Given a pair of value numbers, return the temporary register
allocated for that pair.
|
(package private) static Instruction |
SSA.makeMoveInstruction(IR ir,
Register r1,
Register r2,
TypeReference t)
Create a move instruction r1 := r2.
|
private void |
SSADictionary.registerDef(Instruction s,
BasicBlock b,
TypeReference t)
Register that an instruction writes a heap variable for a given
type.
|
private void |
SSADictionary.registerUse(Instruction s,
TypeReference t)
Register that an instruction uses a heap variable of a given
type.
|
Modifier and Type | Method and Description |
---|---|
private void |
LoopVersioning.generatePhiNodes(AnnotatedLSTNode loop,
ArrayList<Register> registers,
ArrayList<TypeReference> types,
ArrayList<Instruction> phiInstructions,
HashMap<Register,Register> subOptimalRegMap,
HashMap<Register,Register> optimalRegMap)
Generate into a new block phi nodes that define the original
register defined by the loop and use two newly created
registers.
|
private void |
LoopVersioning.getRegistersDefinedInLoop(AnnotatedLSTNode loop,
ArrayList<Register> registers,
ArrayList<TypeReference> types,
ArrayList<Instruction> definingInstructions)
Get registers defined in the given loop.
|
Modifier and Type | Method and Description |
---|---|
protected static Object |
JNIGenericHelpers.callMethod(Object obj,
MethodReference mr,
Object[] args,
TypeReference expectedReturnType,
boolean nonVirtual)
Dispatch method call
|
protected static Object |
JNIGenericHelpers.callMethodJValuePtr(JNIEnvironment env,
int objJREF,
int methodID,
Address argAddress,
TypeReference expectedReturnType,
boolean nonVirtual)
Dispatch method call, arguments in jvalue*
|
Modifier and Type | Method and Description |
---|---|
static Object |
JNIHelpers.invokeWithDotDotVarArg(int methodID,
TypeReference expectReturnType)
Common code shared by the JNI functions CallStatic<type>Method
(static method invocation)
|
static Object |
JNIHelpers.invokeWithDotDotVarArg(Object obj,
int methodID,
TypeReference expectReturnType,
boolean skip4Args)
Common code shared by the JNI functions Call<type>Method
(virtual method invocation)
|
static Object |
JNIHelpers.invokeWithVarArg(int methodID,
Address argAddress,
TypeReference expectReturnType)
Common code shared by the JNI functions CallStatic<type>MethodV
|
static Object |
JNIHelpers.invokeWithVarArg(Object obj,
int methodID,
Address argAddress,
TypeReference expectReturnType,
boolean skip4Args)
Common code shared by the JNI functions Call<type>MethodV
|
Modifier and Type | Field and Description |
---|---|
private static TypeReference |
SpecializedScanMethod.returnType
The return type of this method: void
|
private static TypeReference[] |
SpecializedScanMethod.signature
This method's signature: the object to be scanned and the trace to use
|
private static TypeReference |
SpecializedScanMethod.specializedScanMethodType
Our type reference
|
private TypeReference[] |
SpecializedScanMethod.specializedSignature
The specialized signature of the method
|
Modifier and Type | Method and Description |
---|---|
TypeReference |
SpecializedScanMethod.getReturnType() |
TypeReference[] |
SpecializedScanMethod.getSignature() |
Constructor and Description |
---|
SpecializedScanMethod(int id,
TypeReference specializedTrace) |
Modifier and Type | Method and Description |
---|---|
(package private) int |
OptTestHarness.parseMethodArgs(TypeReference[] argDesc,
String[] args,
int i,
Object[] methodArgs) |