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.
|
currentCompiledMethod
declaredAnnotationDatas
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, replaceCompiledMethod
getDeclaringClass, getDescriptor, getId, getMemberRef, getModifiers, getName, getOffset, getSignature, hashCode, hasOffset, isPrivate, isProtected, isPublic, setOffset, toString
getAnnotation, 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, toAnnotations
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
getAnnotationsByType, getDeclaredAnnotation, getDeclaredAnnotationsByType
NativeMethod(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()
RVMMethod
public 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()