public class AMD64HotSpotRegisterConfig extends Object implements RegisterConfig
Modifier and Type | Field and Description |
---|---|
private boolean |
allAllocatableAreCallerSaved |
private Register[] |
allocatable |
private Architecture |
architecture |
private RegisterAttributes[] |
attributesMap |
private Register[] |
callerSaved
The caller saved registers always include all parameter registers.
|
private CalleeSaveLayout |
csl |
private Register[] |
javaGeneralParameterRegisters |
private int |
maxFrameSize |
private Register[] |
nativeGeneralParameterRegisters |
private boolean |
needsNativeStackHomeSpace |
private Register[] |
xmmParameterRegisters |
Constructor and Description |
---|
AMD64HotSpotRegisterConfig(Architecture architecture,
HotSpotVMConfig config) |
AMD64HotSpotRegisterConfig(Architecture architecture,
HotSpotVMConfig config,
Register[] allocatable) |
private final Architecture architecture
private final Register[] allocatable
private final int maxFrameSize
private final Register[] callerSaved
private final boolean allAllocatableAreCallerSaved
private final RegisterAttributes[] attributesMap
private final Register[] javaGeneralParameterRegisters
private final Register[] nativeGeneralParameterRegisters
private final Register[] xmmParameterRegisters
private final boolean needsNativeStackHomeSpace
private final CalleeSaveLayout csl
public AMD64HotSpotRegisterConfig(Architecture architecture, HotSpotVMConfig config)
public AMD64HotSpotRegisterConfig(Architecture architecture, HotSpotVMConfig config, Register[] allocatable)
public int getMaximumFrameSize()
getMaximumFrameSize
in interface RegisterConfig
public Register[] getAllocatableRegisters()
getAllocatableRegisters
in interface RegisterConfig
public Register[] filterAllocatableRegisters(PlatformKind kind, Register[] registers)
filterAllocatableRegisters
in interface RegisterConfig
public RegisterAttributes[] getAttributesMap()
getAttributesMap
in interface RegisterConfig
private static Register[] initAllocatable(boolean reserveForHeapBase)
public Register[] getCallerSaveRegisters()
getCallerSaveRegisters
in interface RegisterConfig
public boolean areAllAllocatableRegistersCallerSaved()
areAllAllocatableRegistersCallerSaved
in interface RegisterConfig
public Register getRegisterForRole(int index)
getRegisterForRole
in interface RegisterConfig
public CallingConvention getCallingConvention(CallingConvention.Type type, JavaType returnType, JavaType[] parameterTypes, TargetDescription target, boolean stackOnly)
getCallingConvention
in interface RegisterConfig
public Register[] getCallingConventionRegisters(CallingConvention.Type type, Kind kind)
getCallingConventionRegisters
in interface RegisterConfig
private CallingConvention callingConvention(Register[] generalParameterRegisters, JavaType returnType, JavaType[] parameterTypes, CallingConvention.Type type, TargetDescription target, boolean stackOnly)
public Register getReturnRegister(Kind kind)
getReturnRegister
in interface RegisterConfig
public Register getFrameRegister()
getFrameRegister
in interface RegisterConfig
public CalleeSaveLayout getCalleeSaveLayout()
getCalleeSaveLayout
in interface RegisterConfig