diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-03-31 22:14:04 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-03-31 22:14:04 +0000 |
commit | d8c9577764c8277ce17446595f5af5c857385a41 (patch) | |
tree | 9ef6719bfaafa04b2e3c1fd45bd7a4c6e0f4ed88 /docs/StackMaps.rst | |
parent | 4ffbb65494d1991993c0fb7cc4f999e96a799af8 (diff) | |
download | llvm-d8c9577764c8277ce17446595f5af5c857385a41.tar.gz llvm-d8c9577764c8277ce17446595f5af5c857385a41.tar.bz2 llvm-d8c9577764c8277ce17446595f5af5c857385a41.tar.xz |
[Stackmaps] Update the stackmap format to use 64-bit relocations for the function address and properly align all entries.
This commit updates the stackmap format to version 1 to indicate the
reorganizaion of several fields. This was done in order to align stackmap
entries to their natural alignment and to minimize padding.
Fixes <rdar://problem/16005902>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205254 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/StackMaps.rst')
-rw-r--r-- | docs/StackMaps.rst | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/docs/StackMaps.rst b/docs/StackMaps.rst index 57c37ea2f5..373596df8c 100644 --- a/docs/StackMaps.rst +++ b/docs/StackMaps.rst @@ -313,17 +313,21 @@ format of this section follows: .. code-block:: none - uint32 : Reserved (header) + Header { + uint8 : Stack Map Version (current version is 1) + uint8 : Reserved (expected to be 0) + uint16 : Reserved (expected to be 0) + } uint32 : NumFunctions + uint32 : NumConstants + uint32 : NumRecords StkSizeRecord[NumFunctions] { - uint32 : Function Offset - uint32 : Stack Size + uint64 : Function Address + uint64 : Stack Size } - uint32 : NumConstants Constants[NumConstants] { uint64 : LargeConstant } - uint32 : NumRecords StkMapRecord[NumRecords] { uint64 : PatchPoint ID uint32 : Instruction Offset @@ -335,12 +339,14 @@ format of this section follows: uint16 : Dwarf RegNum int32 : Offset or SmallConstant } + uint16 : Padding uint16 : NumLiveOuts LiveOuts[NumLiveOuts] uint16 : Dwarf RegNum uint8 : Reserved uint8 : Size in Bytes } + uint32 : Padding (only if required to align to 8 byte) } The first byte of each location encodes a type that indicates how to |