public abstract class Stub extends Object
Modifier and Type | Field and Description |
---|---|
protected InstalledCode |
code
The code installed for the stub.
|
protected CompilationResult |
compResult
Compilation result from which
code was created. |
private Set<Register> |
destroyedRegisters
The registers destroyed by this stub.
|
protected HotSpotForeignCallLinkage |
linkage
The linkage information for a call to this stub from compiled code.
|
protected HotSpotProviders |
providers |
private static List<Stub> |
stubs |
Constructor and Description |
---|
Stub(HotSpotProviders providers,
HotSpotForeignCallLinkage linkage)
Creates a new stub.
|
Modifier and Type | Method and Description |
---|---|
private LIRSuites |
createLIRSuites() |
protected abstract Object |
debugScopeContext()
Gets a context object for the debug scope created when producing the code for this stub.
|
InstalledCode |
getCode(Backend backend)
Gets the code for this stub, compiling it first if necessary.
|
CompilationResult |
getCompilationResult(Backend backend)
Gets the compilation result for this stub, compiling it first if necessary, and installing it
in code.
|
Set<Register> |
getDestroyedRegisters()
Gets the registers defined by this stub.
|
protected abstract StructuredGraph |
getGraph()
Gets the graph that from which the code for this stub will be compiled.
|
protected abstract ResolvedJavaMethod |
getInstalledCodeOwner()
Gets the method the stub's code will be associated with once installed.
|
HotSpotForeignCallLinkage |
getLinkage()
Gets the linkage for a call to this stub from compiled code.
|
RegisterConfig |
getRegisterConfig() |
static Collection<Stub> |
getStubs()
Gets an immutable view of all stubs that have been created.
|
void |
initDestroyedRegisters(Set<Register> registers) |
boolean |
preservesRegisters()
Determines if this stub preserves all registers apart from those it
destroys.
|
String |
toString() |
protected final HotSpotForeignCallLinkage linkage
protected InstalledCode code
protected CompilationResult compResult
code
was created.private Set<Register> destroyedRegisters
protected final HotSpotProviders providers
public Stub(HotSpotProviders providers, HotSpotForeignCallLinkage linkage)
linkage
- linkage details for a call to the stubpublic void initDestroyedRegisters(Set<Register> registers)
public Set<Register> getDestroyedRegisters()
public boolean preservesRegisters()
public static Collection<Stub> getStubs()
public HotSpotForeignCallLinkage getLinkage()
public RegisterConfig getRegisterConfig()
protected abstract StructuredGraph getGraph()
protected abstract ResolvedJavaMethod getInstalledCodeOwner()
protected abstract Object debugScopeContext()
public InstalledCode getCode(Backend backend)
private LIRSuites createLIRSuites()
public CompilationResult getCompilationResult(Backend backend)