public class NewInstanceStub extends SnippetStub
Modifier and Type | Field and Description |
---|---|
static ForeignCallDescriptor |
NEW_INSTANCE_C |
method, SnippetGraphUnderConstruction
code, 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, toString
getCode, getCompilationResult, getDestroyedRegisters, getLinkage, getRegisterConfig, getStubs, initDestroyedRegisters, preservesRegisters
public static final ForeignCallDescriptor NEW_INSTANCE_C
public NewInstanceStub(HotSpotProviders providers, HotSpotForeignCallLinkage linkage)
protected Object[] makeConstArgs()
makeConstArgs
in class SnippetStub
private 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[].class
static Word refillAllocate(Word thread, KlassPointer intArrayHub, int sizeInBytes, boolean log)
intArrayHub
- the hub for int[].class
sizeInBytes
- 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)