public final class NativeMethod extends RVMMethod
| Modifier and Type | Field and Description |
|---|---|
private Address |
nativeIP
the IP of the native procedure
|
private Address |
nativeTOC
the TOC of the native procedure.
|
currentCompiledMethoddeclaredAnnotationDatas| Constructor and Description |
|---|
NativeMethod(TypeReference declaringClass,
MemberReference memRef,
short modifiers,
TypeReference[] exceptionTypes,
Atom signature,
RVMAnnotation[] annotations,
RVMAnnotation[][] parameterAnnotations,
Object annotationDefault)
Construct native method information
|
| Modifier and Type | Method and Description |
|---|---|
protected CompiledMethod |
genCode()
Generates the code for this method.
|
private String |
getMangledName(boolean sig)
Computes the mangled name of the native routine: Java_Class_Method_Sig
|
Address |
getNativeIP() |
Address |
getNativeTOC() |
void |
registerNativeSymbol(Address symbolAddress)
Registers a native method.
|
private String |
replaceCharWithString(String originalString,
char targetChar,
String replaceString) |
private boolean |
resolveNativeMethod() |
void |
unregisterNativeSymbol() |
compile, createDefaultConstructor, createReflectionMethod, findOrCreateJtocOffset, getAnnotationDefault, getCurrentCompiledMethod, getCurrentEntryCodeArray, getDeclaredParameterAnnotations, getExceptionTypes, getInvoker, getParameterTypes, getParameterWords, getReturnType, hasNoInlinePragma, invalidateCompiledMethod, isAbstract, isBridge, isClassInitializer, isCompiled, isFinal, isInterruptible, isNative, isNonMovingAllocation, isObjectInitializer, isObjectInitializerHelper, isPure, isRuntimePure, isRuntimeServiceMethod, isSpecializedInvoke, isStatic, isStrictFP, isSynchronized, isSynthetic, isSysCall, isUninterruptible, isUnpreemptible, isVarArgs, mayWrite, readMethod, replaceCompiledMethodgetDeclaringClass, getDescriptor, getId, getMemberRef, getModifiers, getName, getOffset, getSignature, hashCode, hasOffset, isPrivate, isProtected, isPublic, setOffset, toStringgetAnnotation, getAnnotations, getAnnotationsInternal, getDeclaredAnnotations, getDeclaredAnnotationsInternal, hasAnnotations, hasBaselineNoRegistersAnnotation, hasBaselineSaveLSRegistersAnnotation, hasInlineAnnotation, hasInterruptibleAnnotation, hasLogicallyUninterruptibleAnnotation, hasNoBoundsCheckAnnotation, hasNoCheckStoreAnnotation, hasNoEscapesAnnotation, hasNoInlineAnnotation, hasNonMovingAllocationAnnotation, hasNonMovingAnnotation, hasNoNullCheckAnnotation, hasNoOptCompileAnnotation, hasPreemptibleAnnotation, hasPureAnnotation, hasRuntimeFinalAnnotation, hasRuntimePureAnnotation, hasUninterruptibleAnnotation, hasUninterruptibleNoWarnAnnotation, hasUnpreemptibleAnnotation, hasUnpreemptibleNoWarnAnnotation, hasUntracedAnnotation, isAnnotationDeclared, isAnnotationPresent, readAnnotations, toAnnotationsclone, equals, finalize, getClass, notify, notifyAll, wait, wait, waitgetAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByTypeNativeMethod(TypeReference declaringClass, MemberReference memRef, short modifiers, TypeReference[] exceptionTypes, Atom signature, RVMAnnotation[] annotations, RVMAnnotation[][] parameterAnnotations, Object annotationDefault)
declaringClass - the RVMClass object of the class that
declared this method.memRef - the canonical memberReference for this member.modifiers - modifiers associated with this member.exceptionTypes - exceptions thrown by this method.signature - generic type of this method.annotations - array of runtime visible annotationsparameterAnnotations - array of runtime visible parameter annotationsannotationDefault - value for this annotation that appearsprotected CompiledMethod genCode()
RVMMethodpublic Address getNativeIP()
public Address getNativeTOC()
private String replaceCharWithString(String originalString, char targetChar, String replaceString)
private String getMangledName(boolean sig)
sig - whether the sig name should be appendedprivate boolean resolveNativeMethod()
public void registerNativeSymbol(Address symbolAddress)
symbolAddress - address of native function that implements the methodpublic void unregisterNativeSymbol()