summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2017-07-25 05:20:01 +0000
committerMartin Storsjo <martin@martin.st>2017-07-25 05:20:01 +0000
commit8cb3667541a94c4fa11b06e19020f753414c1d03 (patch)
tree2b284d127873358eb5726138bd274877e0f045e8 /lldb/packages/Python/lldbsuite/test/python_api/process
parent7ddaf3cf8898e9653e9341fd178d3662f50ae4f4 (diff)
downloadbcm5719-llvm-8cb3667541a94c4fa11b06e19020f753414c1d03.tar.gz
bcm5719-llvm-8cb3667541a94c4fa11b06e19020f753414c1d03.zip
[AArch64] Reserve a 16 byte aligned amount of fixed stack for win64 varargs
Create a dummy 8 byte fixed object for the unused slot below the first stored vararg. Alternative ideas tested but skipped: One could try to align the whole fixed object to 16, but I haven't found how to add an offset to the stack frame used in LowerWin64_VASTART. If only the size of the fixed stack object size is padded but not the offset, via MFI.CreateFixedObject(alignTo(GPRSaveSize, 16), -(int)GPRSaveSize, false), PrologEpilogInserter crashes due to "Attempted to reset backwards range!". This fixes misconceptions about where registers are spilled, since AArch64FrameLowering.cpp assumes the offset from fixed objects is aligned to 16 bytes (and the Win64 case there already manually aligns the offset to 16 bytes). This fixes cases where local stack allocations could overwrite callee saved registers on the stack. Differential Revision: https://reviews.llvm.org/D35720 llvm-svn: 308950
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud