public abstract class HotSpotBackend extends Backend implements FrameMap.ReferenceMapBuilderFactory
| Modifier and Type | Class and Description |
|---|---|
static class |
HotSpotBackend.Options |
Backend.CodeInstallationTask, Backend.CodeInstallationTaskFactoryARITHMETIC_DREM, ARITHMETIC_FREM| Constructor and Description |
|---|
HotSpotBackend(HotSpotGraalRuntimeProvider runtime,
HotSpotProviders providers) |
| Modifier and Type | Method and Description |
|---|---|
void |
completeInitialization(HotSpotJVMCIRuntime jvmciRuntime,
OptionValues options)
Performs any remaining initialization that was deferred until the runtime object was initialized and this backend was registered with it.
|
CompiledCode |
createCompiledCode(ResolvedJavaMethod method,
CompilationRequest compilationRequest,
CompilationResult compResult,
boolean isDefault,
OptionValues options)
Turns a Graal
CompilationResult into a CompiledCode object that can be passed
to the VM for code installation. |
CompilationIdentifier |
getCompilationIdentifier(ResolvedJavaMethod resolvedJavaMethod)
Gets the compilation id for a given
ResolvedJavaMethod. |
HotSpotProviders |
getProviders() |
HotSpotGraalRuntimeProvider |
getRuntime() |
SuitesProvider |
getSuites() |
static int |
md5ImplCompressMBStub(Word bufAddr,
Object stateAddr,
int ofs,
int limit) |
static void |
multiplyToLenStub(Word xAddr,
int xlen,
Word yAddr,
int ylen,
Word zAddr,
int zLen) |
protected void |
profileInstructions(LIR lir,
CompilationResultBuilder crb) |
static int |
sha2ImplCompressMBStub(Word bufAddr,
Object stateAddr,
int ofs,
int limit) |
static int |
sha3ImplCompressMBStub(Word bufAddr,
Object stateAddr,
int ofs,
int limit) |
static int |
sha5ImplCompressMBStub(Word bufAddr,
Object stateAddr,
int ofs,
int limit) |
static int |
shaImplCompressMBStub(Word bufAddr,
Object stateAddr,
int ofs,
int limit) |
static void |
unsafeArraycopy(Word srcAddr,
Word dstAddr,
Word size) |
protected void |
updateStub(Stub stub,
HotSpotLIRGenerationResult gen,
FrameMap frameMap)
Updates a given stub with respect to the registers it destroys by
computing the destroyed
registers and removing those registers from the SaveRegistersOp
as these registers are declared as temporaries in the stub's linkage (and thus will be saved by the stub's caller). |
addCodeInstallationTask, addInstalledCode, createDefaultInstalledCode, createInstalledCode, createInstalledCode, createInstalledCode, emitBackEnd, getCodeCache, getConstantReflection, getForeignCalls, getMetaAccess, getTarget, getValueKind, newBlockOrder, newRegisterAllocationConfigclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitnewReferenceMapBuilderpublic static final HotSpotForeignCallDescriptor EXCEPTION_HANDLER
ExceptionHandlerStub. This stub is called by the
exception handler in a compiled method.public static final HotSpotForeignCallDescriptor IC_MISS_HANDLER
public static final HotSpotForeignCallDescriptor WRONG_METHOD_HANDLER
public static final HotSpotForeignCallDescriptor UNWIND_EXCEPTION_TO_CALLER
UnwindExceptionToCallerStub. This stub is called by code generated
from UnwindNode.public static final HotSpotForeignCallDescriptor EXCEPTION_HANDLER_IN_CALLER
public static final HotSpotForeignCallDescriptor AESCRYPT_ENCRYPTBLOCK
public static final HotSpotForeignCallDescriptor AESCRYPT_DECRYPTBLOCK
public static final HotSpotForeignCallDescriptor CIPHER_BLOCK_CHAINING_ENCRYPT_AESCRYPT
public static final HotSpotForeignCallDescriptor CIPHER_BLOCK_CHAINING_DECRYPT_AESCRYPT
public static final HotSpotForeignCallDescriptor MULTIPLY_TO_LEN
public static final HotSpotForeignCallDescriptor MUL_ADD
public static final HotSpotForeignCallDescriptor MONTGOMERY_MULTIPLY
public static final HotSpotForeignCallDescriptor MONTGOMERY_SQUARE
public static final HotSpotForeignCallDescriptor SQUARE_TO_LEN
public static final HotSpotForeignCallDescriptor MD5_IMPL_COMPRESS
public static final HotSpotForeignCallDescriptor SHA_IMPL_COMPRESS
public static final HotSpotForeignCallDescriptor SHA2_IMPL_COMPRESS
public static final HotSpotForeignCallDescriptor SHA5_IMPL_COMPRESS
public static final HotSpotForeignCallDescriptor SHA3_IMPL_COMPRESS
public static final HotSpotForeignCallDescriptor MD5_IMPL_COMPRESS_MB
public static final HotSpotForeignCallDescriptor SHA_IMPL_COMPRESS_MB
public static final HotSpotForeignCallDescriptor SHA2_IMPL_COMPRESS_MB
public static final HotSpotForeignCallDescriptor SHA5_IMPL_COMPRESS_MB
public static final HotSpotForeignCallDescriptor SHA3_IMPL_COMPRESS_MB
public static final HotSpotForeignCallDescriptor GHASH_PROCESS_BLOCKS
StubRoutines::_ghash_processBlocks.public static final HotSpotForeignCallDescriptor BASE64_ENCODE_BLOCK
StubRoutines::_base64_encodeBlock.public static final HotSpotForeignCallDescriptor BASE64_DECODE_BLOCK
StubRoutines::_base64_decodeBlock.public static final HotSpotForeignCallDescriptor COUNTERMODE_IMPL_CRYPT
StubRoutines::_counterMode_AESCrypt.public static final HotSpotForeignCallDescriptor VECTORIZED_MISMATCH
StubRoutines::_vectorizedMismatch.public static final org.graalvm.word.LocationIdentity CRC_TABLE_LOCATION
public static final HotSpotForeignCallDescriptor UPDATE_BYTES_CRC32
public static final HotSpotForeignCallDescriptor UPDATE_BYTES_CRC32C
public static final HotSpotForeignCallDescriptor UPDATE_BYTES_ADLER32
public static final HotSpotForeignCallDescriptor BIGINTEGER_LEFT_SHIFT_WORKER
public static final HotSpotForeignCallDescriptor BIGINTEGER_RIGHT_SHIFT_WORKER
public static final HotSpotForeignCallDescriptor ELECTRONIC_CODEBOOK_ENCRYPT_AESCRYPT
public static final HotSpotForeignCallDescriptor ELECTRONIC_CODEBOOK_DECRYPT_AESCRYPT
public static final HotSpotForeignCallDescriptor VM_ERROR
VMErrorNodepublic static final HotSpotForeignCallDescriptor NEW_MULTI_ARRAY
OutOfMemoryError on allocation failure.public static final HotSpotForeignCallDescriptor NEW_MULTI_ARRAY_OR_NULL
public static final HotSpotForeignCallDescriptor NEW_ARRAY
OutOfMemoryError on allocation failure.public static final HotSpotForeignCallDescriptor NEW_ARRAY_OR_NULL
public static final HotSpotForeignCallDescriptor NEW_INSTANCE
OutOfMemoryError on allocation failure.public static final HotSpotForeignCallDescriptor NEW_INSTANCE_OR_NULL
public HotSpotBackend(HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers)
public static void multiplyToLenStub(Word xAddr, int xlen, Word yAddr, int ylen, Word zAddr, int zLen)
public static int md5ImplCompressMBStub(Word bufAddr, Object stateAddr, int ofs, int limit)
public static int shaImplCompressMBStub(Word bufAddr, Object stateAddr, int ofs, int limit)
public static int sha2ImplCompressMBStub(Word bufAddr, Object stateAddr, int ofs, int limit)
public static int sha5ImplCompressMBStub(Word bufAddr, Object stateAddr, int ofs, int limit)
public static int sha3ImplCompressMBStub(Word bufAddr, Object stateAddr, int ofs, int limit)
public HotSpotGraalRuntimeProvider getRuntime()
public void completeInitialization(HotSpotJVMCIRuntime jvmciRuntime,
OptionValues options)
jvmciRuntime - options - protected void updateStub(Stub stub, HotSpotLIRGenerationResult gen, FrameMap frameMap)
computing the destroyed
registers and removing those registers from the SaveRegistersOp
as these registers are declared as temporaries in the stub's linkage (and thus will be saved by the stub's caller).stub - the stub to updategen - the HotSpotLIRGenerationResult being emittedframeMap - used to convert a virtualpublic HotSpotProviders getProviders()
getProviders in class Backendpublic SuitesProvider getSuites()
protected void profileInstructions(LIR lir, CompilationResultBuilder crb)
public CompiledCode createCompiledCode(ResolvedJavaMethod method,
CompilationRequest compilationRequest,
CompilationResult compResult,
boolean isDefault,
OptionValues options)
BackendCompilationResult into a CompiledCode object that can be passed
to the VM for code installation.createCompiledCode in class Backendpublic CompilationIdentifier getCompilationIdentifier(ResolvedJavaMethod resolvedJavaMethod)
BackendResolvedJavaMethod. Returns
CompilationIdentifier#INVALID_COMPILATION_ID in case there is no such id.getCompilationIdentifier in class Backend