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.RuntimeCodeInstallerPlatformHelper
public boolean targetWithinPCDisplacement(long pcDisplacement)
targetWithinPCDisplacement
in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelper
public int insertTrampolineCalls(byte[] compiledBytes, int initialPos, Map<Long,Integer> directTargets)
insertTrampolineCalls
in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelper
public void performCodeSynchronization(CodeInfo codeInfo)
RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelper
performCodeSynchronization
in interface RuntimeCodeInstaller.RuntimeCodeInstallerPlatformHelper
codeInfo
- the new code to be installed