[PATCH] D104246: X86: balance the frame prologue and epilogue on Win64

Saleem Abdulrasool via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 14 11:07:05 PDT 2021


compnerd created this revision.
compnerd added reviewers: rnk, t.p.northover.
Herald added subscribers: pengfei, hiraditya.
compnerd requested review of this revision.
Herald added a project: LLVM.

This was broken in ba1509da7b89c850c89f0f98afbab375794cd3c8 <https://reviews.llvm.org/rGba1509da7b89c850c89f0f98afbab375794cd3c8>.  The Win64
frame would not perform the setup of the Swift async context parameter
but would tear down the setup in the epilogue resulting in crashes.
This ensures that we do the full setup when we do the tear down.
Although this is non-conforming to the Win64 calling convention, it
corrects the setup and exposes the actual issue that the change
introduced: incorrect frame setup.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D104246

Files:
  llvm/lib/Target/X86/X86FrameLowering.cpp
  llvm/test/CodeGen/X86/swift-async-win64.ll
  llvm/test/CodeGen/X86/swifttail-async-win64.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104246.351935.patch
Type: text/x-patch
Size: 9215 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210614/1790fde0/attachment.bin>


More information about the llvm-commits mailing list