public class AMD64RuntimeCodeInstallerPlatformHelper extends Object implements RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelper
| Constructor and Description |
|---|
AMD64RuntimeCodeInstallerPlatformHelper() |
| Modifier and Type | Method and Description |
|---|---|
int |
getTrampolineCallSize()
The size for trampoline jumps: jmp [rip+offset]
|
int |
insertTrampolineCalls(byte[] compiledBytes,
int initialPos,
Map<Long,Integer> directTargets) |
void |
performCodeSynchronization(CodeInfo codeInfo)
Method to enable platforms to perform any needed operations before code becomes visible.
|
boolean |
targetWithinPCDisplacement(long pcDisplacement)
Checking if the pc displacement is within a signed 32 bit range.
|
public AMD64RuntimeCodeInstallerPlatformHelper()
public int getTrampolineCallSize()
Trampoline jumps are added immediately after the method code, where each jump needs 6 bytes. The jump instructions reference the 8-byte destination addresses, which are allocated after the jumps.
getTrampolineCallSize in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelperpublic boolean targetWithinPCDisplacement(long pcDisplacement)
targetWithinPCDisplacement in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelperpublic int insertTrampolineCalls(byte[] compiledBytes,
int initialPos,
Map<Long,Integer> directTargets)
insertTrampolineCalls in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelperpublic void performCodeSynchronization(CodeInfo codeInfo)
RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelperperformCodeSynchronization in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelpercodeInfo - the new code to be installed