public abstract class HotSpotHostForeignCallsProvider extends HotSpotForeignCallsProviderImpl implements ArrayCopyForeignCalls
ForeignCallsProvider.| Modifier and Type | Class and Description |
|---|---|
static class |
HotSpotHostForeignCallsProvider.TestForeignCalls |
| Modifier and Type | Field and Description |
|---|---|
static ForeignCallSignature |
GENERIC_ARRAYCOPY
Signature of a generic
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub. |
static HotSpotForeignCallDescriptor |
INVOKE_STATIC_METHOD_ONE_ARG |
static HotSpotForeignCallDescriptor |
JAVA_TIME_MILLIS |
static HotSpotForeignCallDescriptor |
JAVA_TIME_NANOS |
static HotSpotForeignCallDescriptor |
NOTIFY |
static HotSpotForeignCallDescriptor |
NOTIFY_ALL |
static ForeignCallSignature |
UNSAFE_ARRAYCOPY
Signature of an unsafe
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub. |
codeCache, DONT_PREPEND_THREAD, foreignCalls, IDENTITY_HASHCODE, jvmciRuntime, LOAD_AND_CLEAR_EXCEPTION, metaAccess, NO_LOCATIONS, OSR_MIGRATION_END, PREPEND_THREAD, runtime, signatureMap, TEST_DEOPTIMIZE_CALL_INT, VERIFY_OOP, wordTypes| Constructor and Description |
|---|
HotSpotHostForeignCallsProvider(HotSpotJVMCIRuntime jvmciRuntime,
HotSpotGraalRuntimeProvider runtime,
MetaAccessProvider metaAccess,
CodeCacheProvider codeCache,
WordTypes wordTypes) |
| Modifier and Type | Method and Description |
|---|---|
void |
initialize(HotSpotProviders providers,
OptionValues options) |
protected static void |
link(Stub stub) |
ForeignCallDescriptor |
lookupArraycopyDescriptor(JavaKind kind,
boolean aligned,
boolean disjoint,
boolean uninit,
org.graalvm.word.LocationIdentity killedLocation)
Looks up the call descriptor for a specialized
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub. |
ForeignCallDescriptor |
lookupCheckcastArraycopyDescriptor(boolean uninit)
Looks up the call descriptor for a fast checkcast
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub. |
protected void |
registerMathStubs(GraalHotSpotVMConfig hotSpotVMConfig,
HotSpotProviders providers,
OptionValues options) |
getDescriptor, getJVMCIRuntime, getRuntime, getStubs, getValueKind, invokeJavaMethodStub, linkForeignCall, lookupForeignCall, register, registerForeignCall, registerStubCall, registerStubCallclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDescriptor, lookupForeignCall, lookupForeignCallgetNativeABICallerSaveRegisterspublic static final HotSpotForeignCallDescriptor JAVA_TIME_MILLIS
public static final HotSpotForeignCallDescriptor JAVA_TIME_NANOS
public static final HotSpotForeignCallDescriptor NOTIFY
public static final HotSpotForeignCallDescriptor NOTIFY_ALL
public static final HotSpotForeignCallDescriptor INVOKE_STATIC_METHOD_ONE_ARG
public static final ForeignCallSignature UNSAFE_ARRAYCOPY
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub.
The signature is equivalent to Unsafe.copyMemory(long, long, long). For the
semantics refer to Unsafe.copyMemory(Object, long, Object, long, long).Unsafe.copyMemory(java.lang.Object, long, java.lang.Object, long, long)public static final ForeignCallSignature GENERIC_ARRAYCOPY
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub.
Instead of throwing an ArrayStoreException, the stub is expected to return the number
of copied elements xor'd with -1. A return value of 0 indicates that the
operation was successful.public HotSpotHostForeignCallsProvider(HotSpotJVMCIRuntime jvmciRuntime,
HotSpotGraalRuntimeProvider runtime,
MetaAccessProvider metaAccess,
CodeCacheProvider codeCache,
WordTypes wordTypes)
protected static void link(Stub stub)
public ForeignCallDescriptor lookupCheckcastArraycopyDescriptor(boolean uninit)
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub.CheckcastArrayCopyCallNodepublic ForeignCallDescriptor lookupArraycopyDescriptor(JavaKind kind, boolean aligned, boolean disjoint, boolean uninit, org.graalvm.word.LocationIdentity killedLocation)
ArrayCopyLookupSystem.arraycopy(java.lang.Object, int, java.lang.Object, int, int) stub.lookupArraycopyDescriptor in interface ArrayCopyLookupArrayCopyCallNodepublic void initialize(HotSpotProviders providers, OptionValues options)
protected void registerMathStubs(GraalHotSpotVMConfig hotSpotVMConfig, HotSpotProviders providers, OptionValues options)