#include <VMInterface.h>
Public Types | |
enum | SystemExceptionId { Exception_NullPointer = 0, Exception_ArrayIndexOutOfBounds, Exception_ArrayTypeMismatch, Exception_DivideByZero, Num_SystemExceptions } |
Public Member Functions | |
CompilationInterface (Compile_Handle c, Method_Handle m, JIT_Handle jit, MemoryManager &mm, OpenMethodExecutionParams &comp_params, CompilationContext *cc, TypeManager &tpm) | |
HELPER_CALLING_CONVENTION | getRuntimeHelperCallingConvention (VM_RT_SUPPORT id) |
bool | isInterruptible (VM_RT_SUPPORT id) |
bool | mayBeInterruptible (VM_RT_SUPPORT id) |
void * | getRuntimeHelperAddress (VM_RT_SUPPORT) |
void * | getRuntimeHelperAddressForType (VM_RT_SUPPORT, Type *) |
MethodDesc * | getMagicHelper (VM_RT_SUPPORT) |
Type * | getFieldType (Class_Handle enclClass, uint32 cpIndex) |
NamedType * | getNamedType (Class_Handle enclClass, uint32 cpIndex, ResolveNewCheck check=ResolveNewCheck_NoCheck) |
Type * | getTypeFromDescriptor (Class_Handle enclClass, const char *descriptor) |
NamedType * | resolveNamedType (Class_Handle enclClass, uint32 cpIndex) |
MethodDesc * | getStaticMethod (Class_Handle enclClass, uint32 cpIndex) |
MethodDesc * | getVirtualMethod (Class_Handle enclClass, uint32 cpIndex) |
MethodDesc * | getSpecialMethod (Class_Handle enclClass, uint32 cpIndex) |
MethodDesc * | getInterfaceMethod (Class_Handle enclClass, uint32 cpIndex) |
FieldDesc * | getNonStaticField (Class_Handle enclClass, uint32 cpIndex, bool putfield) |
FieldDesc * | getStaticField (Class_Handle enclClass, uint32 cpIndex, bool putfield) |
FieldDesc * | getFieldByName (Class_Handle enclClass, const char *name) |
MethodDesc * | getMethodByName (Class_Handle enclClass, const char *name) |
ObjectType * | findClassUsingBootstrapClassloader (const char *klassName) |
Returns a system class by its name or NULL if no such class found. | |
MethodDesc * | resolveMethod (ObjectType *klass, const char *methodName, const char *methodSig) |
Recursively looks up for a given method with a given signature in the given class. | |
MethodDesc * | getOverriddenMethod (NamedType *type, MethodDesc *methodDesc) |
void * | getStringInternAddr (MethodDesc *enclosingMethodDesc, uint32 stringToken) |
Type * | getConstantType (MethodDesc *enclosingMethodDesc, uint32 constantToken) |
const void * | getConstantValue (MethodDesc *enclosingMethodDesc, uint32 constantToken) |
const char * | getSignatureString (MethodDesc *enclosingMethodDesc, uint32 methodToken) |
Byte * | allocateCodeBlock (size_t size, size_t alignment, CodeBlockHeat heat, int32 id, bool simulate) |
Byte * | allocateDataBlock (size_t size, size_t alignment) |
Byte * | allocateInfoBlock (size_t size) |
Byte * | allocateJITDataBlock (size_t size, size_t alignment) |
void | lockMethodData (void) |
Acquires a lock to protect method's data modifications (i.e. | |
void | unlockMethodData (void) |
Releases a lock which protects method's data. | |
void | setNotifyWhenClassIsExtended (ObjectType *type, void *callbackData) |
void | setNotifyWhenMethodIsOverridden (MethodDesc *methodDesc, void *callbackData) |
void | setNotifyWhenMethodIsRecompiled (MethodDesc *methodDesc, void *callbackData) |
bool | needWriteBarriers () const |
bool | isBCMapInfoRequired () const |
void | setBCMapInfoRequired (bool is_supported) const |
bool | isCompileLoadEventRequired () const |
void | sendCompiledMethodLoadEvent (MethodDesc *methodDesc, MethodDesc *outerDesc, uint32 codeSize, void *codeAddr, uint32 mapLength, AddrLocation *addrLocationMap, void *compileInfo) |
OpenMethodExecutionParams & | getCompilationParams () const |
bool | compileMethod (MethodDesc *method) |
Requests VM to request this JIT to synchronously (in the same thread) compile given method. | |
MethodDesc * | getMethodToCompile () const |
TypeManager & | getTypeManager () const |
MemoryManager & | getMemManager () const |
Type * | getTypeFromDrlVMTypeHandle (Type_Info_Handle) |
FieldDesc * | getFieldDesc (Field_Handle field) |
MethodDesc * | getMethodDesc (Method_Handle method) |
void | setCompilationContext (CompilationContext *cc) |
CompilationContext * | getCompilationContext () const |
Static Public Member Functions | |
static const char * | getRuntimeHelperName (VM_RT_SUPPORT helperId) |
static VM_RT_SUPPORT | str2rid (const char *helperName) |
Returns helper ID by its string representation. | |
static const char * | getMethodName (Class_Handle enclClass, uint32 cpIndex) |
static const char * | getMethodClassName (Class_Handle enclClass, uint32 cpIndex) |
static const char * | getFieldSignature (Class_Handle enclClass, uint32 cpIndex) |
Jitrino.CompilationInterface.CompilationInterface | ( | Compile_Handle | c, | |
Method_Handle | m, | |||
JIT_Handle | jit, | |||
MemoryManager & | mm, | |||
OpenMethodExecutionParams & | comp_params, | |||
CompilationContext * | cc, | |||
TypeManager & | tpm | |||
) |
static const char* Jitrino.CompilationInterface.getRuntimeHelperName | ( | VM_RT_SUPPORT | helperId | ) | [static] |
static VM_RT_SUPPORT Jitrino.CompilationInterface.str2rid | ( | const char * | helperName | ) | [static] |
Returns helper ID by its string representation.
Name comparison is case-insensitive. If the helperName is unknown, then VM_RT_UNKNOWN is returned.
HELPER_CALLING_CONVENTION Jitrino.CompilationInterface.getRuntimeHelperCallingConvention | ( | VM_RT_SUPPORT | id | ) |
bool Jitrino.CompilationInterface.isInterruptible | ( | VM_RT_SUPPORT | id | ) |
bool Jitrino.CompilationInterface.mayBeInterruptible | ( | VM_RT_SUPPORT | id | ) |
void* Jitrino.CompilationInterface.getRuntimeHelperAddress | ( | VM_RT_SUPPORT | ) |
void* Jitrino.CompilationInterface.getRuntimeHelperAddressForType | ( | VM_RT_SUPPORT | , | |
Type * | ||||
) |
MethodDesc* Jitrino.CompilationInterface.getMagicHelper | ( | VM_RT_SUPPORT | ) |
Type* Jitrino.CompilationInterface.getFieldType | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
NamedType* Jitrino.CompilationInterface.getNamedType | ( | Class_Handle | enclClass, | |
uint32 | cpIndex, | |||
ResolveNewCheck | check = ResolveNewCheck_NoCheck | |||
) |
Type* Jitrino.CompilationInterface.getTypeFromDescriptor | ( | Class_Handle | enclClass, | |
const char * | descriptor | |||
) |
NamedType* Jitrino.CompilationInterface.resolveNamedType | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
static const char* Jitrino.CompilationInterface.getMethodName | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) | [static] |
static const char* Jitrino.CompilationInterface.getMethodClassName | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) | [static] |
static const char* Jitrino.CompilationInterface.getFieldSignature | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) | [static] |
MethodDesc* Jitrino.CompilationInterface.getStaticMethod | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
MethodDesc* Jitrino.CompilationInterface.getVirtualMethod | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
MethodDesc* Jitrino.CompilationInterface.getSpecialMethod | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
MethodDesc* Jitrino.CompilationInterface.getInterfaceMethod | ( | Class_Handle | enclClass, | |
uint32 | cpIndex | |||
) |
FieldDesc* Jitrino.CompilationInterface.getNonStaticField | ( | Class_Handle | enclClass, | |
uint32 | cpIndex, | |||
bool | putfield | |||
) |
FieldDesc* Jitrino.CompilationInterface.getStaticField | ( | Class_Handle | enclClass, | |
uint32 | cpIndex, | |||
bool | putfield | |||
) |
FieldDesc* Jitrino.CompilationInterface.getFieldByName | ( | Class_Handle | enclClass, | |
const char * | name | |||
) |
MethodDesc* Jitrino.CompilationInterface.getMethodByName | ( | Class_Handle | enclClass, | |
const char * | name | |||
) |
ObjectType* Jitrino.CompilationInterface.findClassUsingBootstrapClassloader | ( | const char * | klassName | ) |
Returns a system class by its name or NULL if no such class found.
MethodDesc* Jitrino.CompilationInterface.resolveMethod | ( | ObjectType * | klass, | |
const char * | methodName, | |||
const char * | methodSig | |||
) |
Recursively looks up for a given method with a given signature in the given class.
Returns NULL if no such method found.
MethodDesc* Jitrino.CompilationInterface.getOverriddenMethod | ( | NamedType * | type, | |
MethodDesc * | methodDesc | |||
) |
void* Jitrino.CompilationInterface.getStringInternAddr | ( | MethodDesc * | enclosingMethodDesc, | |
uint32 | stringToken | |||
) |
Type* Jitrino.CompilationInterface.getConstantType | ( | MethodDesc * | enclosingMethodDesc, | |
uint32 | constantToken | |||
) |
const void* Jitrino.CompilationInterface.getConstantValue | ( | MethodDesc * | enclosingMethodDesc, | |
uint32 | constantToken | |||
) |
const char* Jitrino.CompilationInterface.getSignatureString | ( | MethodDesc * | enclosingMethodDesc, | |
uint32 | methodToken | |||
) |
Byte* Jitrino.CompilationInterface.allocateCodeBlock | ( | size_t | size, | |
size_t | alignment, | |||
CodeBlockHeat | heat, | |||
int32 | id, | |||
bool | simulate | |||
) |
Byte* Jitrino.CompilationInterface.allocateDataBlock | ( | size_t | size, | |
size_t | alignment | |||
) |
Byte* Jitrino.CompilationInterface.allocateInfoBlock | ( | size_t | size | ) |
Byte* Jitrino.CompilationInterface.allocateJITDataBlock | ( | size_t | size, | |
size_t | alignment | |||
) |
void Jitrino.CompilationInterface.lockMethodData | ( | void | ) |
Acquires a lock to protect method's data modifications (i.e.
code/info block allocations, exception handlers registration, etc) in multi-threaded compilation. The lock *must not* surround a code which may lead to execution of managed code, or a race and hang happen. For example, the managed code execution may happen during a resolution (invocation of resolve_XXX) to locate a class through a custom class loader. Note, that the lock is *not* per-method, and shared across all the methods.
void Jitrino.CompilationInterface.unlockMethodData | ( | void | ) |
Releases a lock which protects method's data.
void Jitrino.CompilationInterface.setNotifyWhenClassIsExtended | ( | ObjectType * | type, | |
void * | callbackData | |||
) |
void Jitrino.CompilationInterface.setNotifyWhenMethodIsOverridden | ( | MethodDesc * | methodDesc, | |
void * | callbackData | |||
) |
void Jitrino.CompilationInterface.setNotifyWhenMethodIsRecompiled | ( | MethodDesc * | methodDesc, | |
void * | callbackData | |||
) |
bool Jitrino.CompilationInterface.needWriteBarriers | ( | ) | const |
bool Jitrino.CompilationInterface.isBCMapInfoRequired | ( | ) | const |
void Jitrino.CompilationInterface.setBCMapInfoRequired | ( | bool | is_supported | ) | const |
bool Jitrino.CompilationInterface.isCompileLoadEventRequired | ( | ) | const |
void Jitrino.CompilationInterface.sendCompiledMethodLoadEvent | ( | MethodDesc * | methodDesc, | |
MethodDesc * | outerDesc, | |||
uint32 | codeSize, | |||
void * | codeAddr, | |||
uint32 | mapLength, | |||
AddrLocation * | addrLocationMap, | |||
void * | compileInfo | |||
) |
OpenMethodExecutionParams& Jitrino.CompilationInterface.getCompilationParams | ( | ) | const |
bool Jitrino.CompilationInterface.compileMethod | ( | MethodDesc * | method | ) |
Requests VM to request this JIT to synchronously (in the same thread) compile given method.
method | method to compile |
MethodDesc* Jitrino.CompilationInterface.getMethodToCompile | ( | ) | const |
TypeManager& Jitrino.CompilationInterface.getTypeManager | ( | ) | const |
MemoryManager& Jitrino.CompilationInterface.getMemManager | ( | ) | const |
Type* Jitrino.CompilationInterface.getTypeFromDrlVMTypeHandle | ( | Type_Info_Handle | ) |
FieldDesc* Jitrino.CompilationInterface.getFieldDesc | ( | Field_Handle | field | ) |
MethodDesc* Jitrino.CompilationInterface.getMethodDesc | ( | Method_Handle | method | ) |
void Jitrino.CompilationInterface.setCompilationContext | ( | CompilationContext * | cc | ) |
CompilationContext* Jitrino.CompilationInterface.getCompilationContext | ( | ) | const |
Genereated on Tue Mar 11 19:25:40 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.