public class NewInstanceStub extends SnippetStub
| Modifier and Type | Field and Description |
|---|---|
static ForeignCallDescriptor |
NEW_INSTANCE_C |
method, SnippetGraphUnderConstructioncode, compResult, linkage, providers| Constructor and Description |
|---|
NewInstanceStub(HotSpotProviders providers,
HotSpotForeignCallLinkage linkage) |
| Modifier and Type | Method and Description |
|---|---|
private static Word |
allocate(Word thread,
int size) |
static Word |
edenAllocate(Word sizeInBytes,
boolean log)
Attempts to allocate a chunk of memory from Eden space.
|
private static boolean |
forceSlowPath() |
private static boolean |
logging() |
protected Object[] |
makeConstArgs() |
private static Object |
newInstance(KlassPointer hub,
KlassPointer intArrayHub,
Register threadRegister)
Re-attempts allocation after an initial TLAB allocation failed or was skipped (e.g., due to
-XX:-UseTLAB).
|
static void |
newInstanceC(ForeignCallDescriptor newInstanceC,
Word thread,
KlassPointer hub) |
(package private) static Word |
refillAllocate(Word thread,
KlassPointer intArrayHub,
int sizeInBytes,
boolean log)
Attempts to refill the current thread's TLAB and retries the allocation.
|
checkConstArg, debugScopeContext, getConstantParameterValue, getGraph, getInstalledCodeOwner, toStringgetCode, getCompilationResult, getDestroyedRegisters, getLinkage, getRegisterConfig, getStubs, initDestroyedRegisters, preservesRegisterspublic static final ForeignCallDescriptor NEW_INSTANCE_C
public NewInstanceStub(HotSpotProviders providers, HotSpotForeignCallLinkage linkage)
protected Object[] makeConstArgs()
makeConstArgs in class SnippetStubprivate static boolean logging()
private static Object newInstance(KlassPointer hub, KlassPointer intArrayHub, Register threadRegister)
hub - the hub of the object to be allocatedintArrayHub - the hub for int[].classstatic Word refillAllocate(Word thread, KlassPointer intArrayHub, int sizeInBytes, boolean log)
intArrayHub - the hub for int[].classsizeInBytes - the size of the allocationlog - specifies if logging is enabledWord.zero() if the
operation was unsuccessfulpublic static Word edenAllocate(Word sizeInBytes, boolean log)
sizeInBytes - the size of the chunk to allocatelog - specifies if logging is enabledWord.zero() if allocation failsprivate static boolean forceSlowPath()
public static void newInstanceC(ForeignCallDescriptor newInstanceC, Word thread, KlassPointer hub)