aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/ScriptInterpreter/Python/python.test
diff options
context:
space:
mode:
authorFraser Cormack <fraser@codeplay.com>2022-05-19 10:58:17 +0100
committerFraser Cormack <fraser@codeplay.com>2022-05-20 12:59:12 +0100
commita351070710f51cc41b181130080ac9da514989d7 (patch)
tree757f84024d14ec469f469f128486e676c27507e5 /lldb/test/Shell/ScriptInterpreter/Python/python.test
parent52f2d057235f08cad3c3788eddcd2bf9567aa29d (diff)
downloadllvm-a351070710f51cc41b181130080ac9da514989d7.zip
llvm-a351070710f51cc41b181130080ac9da514989d7.tar.gz
llvm-a351070710f51cc41b181130080ac9da514989d7.tar.bz2
[RISCV] Add a test showing overlapping stack offsets with RVV
This test (and its forthcoming fix) was split off from D125787. It shows that the logic we use to determine when we need to add extra RVV padding is insufficient. In this example, we may have a situation involving dynamic stack alignment -- but no variable-sized objects -- where we have no FP but must still use SP to index objects. In this case we also need the extra RVV padding, otherwise objects may overlap. Specifically, the test shows that the RVV vector object may clobber the lowest callee-save. |------------------------------| -- <-- Incoming SP | 4-byte callee-save (ra) | |------------------------------| -- <-- SP + VLENB*2 + 60 | 4-byte callee-save (s0) | |------------------------------| -- <-- SP + VLENB*2 + 56 -- | 4-byte callee-save (s9) | | |------------------------------| -- <-- SP + VLENB*2 + 52 | RVV object(!!) | VLENB*2 RVV object | | |------------------------------| -- <-- SP + 56 -- | 4-byte local object | |------------------------------| -- <-- SP + 32 | Dead area | |------------------------------| -- <-- InSP - 2*VLENB - 64 | Possibly-zero realignment | |------------------------------| -- <-- SP (realigned to 32) This diagram should help show that when SP==InSP -- e.g., when the incoming SP is 32-byte aligned, subtracting 2*VLENB+64 may keep it that way -- the RVV object clobbers the spill of s9. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D125962
Diffstat (limited to 'lldb/test/Shell/ScriptInterpreter/Python/python.test')
0 files changed, 0 insertions, 0 deletions