[all-commits] [llvm/llvm-project] 17bdc0: X86: balance the frame prologue and epilogue on Win64

Saleem Abdulrasool via All-commits all-commits at lists.llvm.org
Tue Jun 15 20:15:34 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 17bdc0ff6f2e71ae5d93ce52b2291f915055ccb6
      https://github.com/llvm/llvm-project/commit/17bdc0ff6f2e71ae5d93ce52b2291f915055ccb6
  Author: Saleem Abdulrasool <compnerd at compnerd.org>
  Date:   2021-06-15 (Tue, 15 Jun 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    A llvm/test/CodeGen/X86/swift-async-win64.ll
    A llvm/test/CodeGen/X86/swifttail-async-win64.ll

  Log Message:
  -----------
  X86: balance the frame prologue and epilogue on Win64

This was broken in ba1509da7b89c850c89f0f98afbab375794cd3c8.  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.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D104246




More information about the All-commits mailing list