public abstract class HotSpotHostForeignCallsProvider extends HotSpotForeignCallsProviderImpl
ForeignCallsProvider
.Modifier and Type | Field and Description |
---|---|
private static EnumMap<Kind,ForeignCallDescriptor>[][] |
arraycopyDescriptors |
private static ForeignCallDescriptor[] |
checkcastArraycopyDescriptors |
private static ForeignCallDescriptor[][] |
objectArraycopyDescriptorsKillAny |
private static ForeignCallDescriptor[][] |
uninitObjectArraycopyDescriptors |
codeCache, DONT_PREPEND_THREAD, foreignCalls, IDENTITY_HASHCODE, LOAD_AND_CLEAR_EXCEPTION, metaAccess, NO_LOCATIONS, NOT_REEXECUTABLE, OSR_MIGRATION_END, PREPEND_THREAD, REEXECUTABLE, runtime, TEST_DEOPTIMIZE_CALL_INT, VERIFY_OOP
Constructor and Description |
---|
HotSpotHostForeignCallsProvider(HotSpotGraalRuntimeProvider runtime,
MetaAccessProvider metaAccess,
CodeCacheProvider codeCache) |
Modifier and Type | Method and Description |
---|---|
private ForeignCallDescriptor |
buildDescriptor(Kind kind,
boolean aligned,
boolean disjoint,
boolean uninit,
boolean killAny,
long routine) |
HotSpotForeignCallLinkage |
getForeignCall(ForeignCallDescriptor descriptor) |
void |
initialize(HotSpotProviders providers,
HotSpotVMConfig c) |
protected static void |
link(Stub stub) |
static ForeignCallDescriptor |
lookupArraycopyDescriptor(Kind kind,
boolean aligned,
boolean disjoint,
boolean uninit,
boolean killAny) |
static ForeignCallDescriptor |
lookupCheckcastArraycopyDescriptor(boolean uninit) |
private void |
registerArrayCopy(Kind kind,
long routine,
long alignedRoutine,
long disjointRoutine,
long alignedDisjointRoutine) |
private void |
registerArrayCopy(Kind kind,
long routine,
long alignedRoutine,
long disjointRoutine,
long alignedDisjointRoutine,
boolean uninit) |
private void |
registerArraycopyDescriptor(Map<Long,ForeignCallDescriptor> descMap,
Kind kind,
boolean aligned,
boolean disjoint,
boolean uninit,
boolean killAny,
long routine) |
private void |
registerCheckcastArraycopyDescriptor(boolean uninit,
long routine) |
canDeoptimize, getKilledLocations, isReexecutable, linkForeignCall, lookupForeignCall, register, registerForeignCall, registerStubCall
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNativeABICallerSaveRegisters
private static final EnumMap<Kind,ForeignCallDescriptor>[][] arraycopyDescriptors
private static final ForeignCallDescriptor[][] uninitObjectArraycopyDescriptors
private static final ForeignCallDescriptor[] checkcastArraycopyDescriptors
private static ForeignCallDescriptor[][] objectArraycopyDescriptorsKillAny
public HotSpotHostForeignCallsProvider(HotSpotGraalRuntimeProvider runtime, MetaAccessProvider metaAccess, CodeCacheProvider codeCache)
public static ForeignCallDescriptor lookupCheckcastArraycopyDescriptor(boolean uninit)
public static ForeignCallDescriptor lookupArraycopyDescriptor(Kind kind, boolean aligned, boolean disjoint, boolean uninit, boolean killAny)
private void registerArraycopyDescriptor(Map<Long,ForeignCallDescriptor> descMap, Kind kind, boolean aligned, boolean disjoint, boolean uninit, boolean killAny, long routine)
private ForeignCallDescriptor buildDescriptor(Kind kind, boolean aligned, boolean disjoint, boolean uninit, boolean killAny, long routine)
private void registerCheckcastArraycopyDescriptor(boolean uninit, long routine)
private void registerArrayCopy(Kind kind, long routine, long alignedRoutine, long disjointRoutine, long alignedDisjointRoutine)
private void registerArrayCopy(Kind kind, long routine, long alignedRoutine, long disjointRoutine, long alignedDisjointRoutine, boolean uninit)
public void initialize(HotSpotProviders providers, HotSpotVMConfig c)
public HotSpotForeignCallLinkage getForeignCall(ForeignCallDescriptor descriptor)