public class AArch64FrameMap extends FrameMap
Base Contents
: : -----
caller | incoming overflow argument n | ^
frame : ... : | positive
| incoming overflow argument 0 | | offsets
---------+--------------------------------+-------------------------
| return address | | ^
| prev. frame pointer | | |
+--------------------------------+ | |
| spill slot 0 | | negative | ^
callee : ... : v offsets | |
frame | spill slot n | ----- total frame
+--------------------------------+ frame size
| alignment padding | size |
+--------------------------------+ ----- | |
| outgoing overflow argument n | ^ | |
: ... : | positive | |
| outgoing overflow argument 0 | | offsets v v
%sp--> +--------------------------------+---------------------------
The spill slot area also includes stack allocated memory blocks (ALLOCA blocks). The size of such
a block may be greater than the size of a normal spill slot or the word size.
A runtime can reserve space at the beginning of the overflow argument area. The calling
convention can specify that the first overflow stack argument is not at offset 0, but at a
specified offset. Use CodeCacheProvider.getMinimumOutgoingSize() to make sure that
call-free methods also have this space reserved. Then the VM can use the memory at offset 0
relative to the stack pointer.
FrameMap.ReferenceMapBuilderFactoryhasOutgoingStackArguments, initialSpillSize, outgoingSize, spillSize| Constructor and Description |
|---|
AArch64FrameMap(CodeCacheProvider codeCache,
RegisterConfig registerConfig,
FrameMap.ReferenceMapBuilderFactory referenceMapFactory)
Creates a new frame map for the specified method.
|
| Modifier and Type | Method and Description |
|---|---|
StackSlot |
allocateDeoptimizationRescueSlot() |
int |
currentFrameSize()
Gets the current size of this frame.
|
int |
totalFrameSize()
Gets the total frame size of the compiled frame, including any ABI required storage like the
return address slot or a saved frame pointer. |
accessesCallerFrame, alignFrameSize, allocateSpillSlot, allocateStackMemory, callsMethod, finish, frameNeedsAllocating, frameSize, getRegisterConfig, getTarget, newReferenceMapBuilder, offsetForStackSlot, outgoingSize, reserveOutgoing, returnAddressSize, spillSlotSizepublic AArch64FrameMap(CodeCacheProvider codeCache,
RegisterConfig registerConfig,
FrameMap.ReferenceMapBuilderFactory referenceMapFactory)
public int totalFrameSize()
FrameMapreturn address slot or a saved frame pointer.totalFrameSize in class FrameMappublic int currentFrameSize()
FrameMapFrameMap.frameSize() if FrameMap.finish() were called now.currentFrameSize in class FrameMappublic StackSlot allocateDeoptimizationRescueSlot()