[all-commits] [llvm/llvm-project] 50e0ac: [AArch64] Fix aligning the stack after calling __c...
Martin Storsjö via All-commits
all-commits at lists.llvm.org
Wed Oct 12 23:54:28 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 50e0aced4521260af842dba73f1d8c50d36314ea
https://github.com/llvm/llvm-project/commit/50e0aced4521260af842dba73f1d8c50d36314ea
Author: Martin Storsjö <martin at martin.st>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
A llvm/test/CodeGen/AArch64/win-align-chkstk.ll
Log Message:
-----------
[AArch64] Fix aligning the stack after calling __chkstk
Whenever a call to __chkstk was made, the frame lowering previously
omitted the aligning (as NumBytes was reset to zero before doing
alignment).
This fixes https://github.com/llvm/llvm-project/issues/56182.
Differential Revision: https://reviews.llvm.org/D135687
Commit: 19e2b403b4a9d92b95400dd6e3ecb198884de64a
https://github.com/llvm/llvm-project/commit/19e2b403b4a9d92b95400dd6e3ecb198884de64a
Author: Martin Storsjö <martin at martin.st>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Log Message:
-----------
[AArch64] Remove dead code for inserting SEH opcodes for realignment. NFC.
If the stack is realigned, we've emitted a frame pointer and
already terminated the SEH prologue, making this dead code since
a07787c9a50c046e45921dd665f5a53a752bbc31.
The immediate to this SEH opcode was entirely bogus - we don't
know how many bytes the AND operation adjusts the SP, and by
doing "NumBytes & andMaskEncoded" (where andMaskEncoded was the
immediate bitpattern for the AND instruction), the immediate to the
opcode was total gibberish.
This hasn't had any practical effect, since the original stack
pointer always was restored from the frame pointer afterwards anyway.
Differential Revision: https://reviews.llvm.org/D135815
Commit: 24303e3ad2b5bf4eb4a5ef4979f1c4f1d1ae9fa6
https://github.com/llvm/llvm-project/commit/24303e3ad2b5bf4eb4a5ef4979f1c4f1d1ae9fa6
Author: Martin Storsjö <martin at martin.st>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
Log Message:
-----------
[AArch64] Use encodeLogicalImmediate for forming the immediate to an AND. NFC.
Differential Revision: https://reviews.llvm.org/D135817
Commit: cbd8464595220b5ea76c70ac9965d84970c4b712
https://github.com/llvm/llvm-project/commit/cbd8464595220b5ea76c70ac9965d84970c4b712
Author: Martin Storsjö <martin at martin.st>
Date: 2022-10-13 (Thu, 13 Oct 2022)
Changed paths:
M llvm/lib/MC/MCWin64EH.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
M llvm/test/CodeGen/AArch64/wineh5.mir
Log Message:
-----------
[MC] [Win64EH] Check that ARM64 prologs and epilogs have the right matching number of instructions
This matches what was done for the ARM implementation (where getting
the instruction sizes right is even more tricky, and hence needed
tighter testing).
This will allow catching any future cases where prologs and epilogs
don't match the instructions within them.
Differential Revision: https://reviews.llvm.org/D131394
Compare: https://github.com/llvm/llvm-project/compare/b062ee7dc451...cbd846459522
More information about the All-commits
mailing list