[all-commits] [llvm/llvm-project] 993645: Reapply D70800: Fix AArch64 AAPCS frame record chain

Owen Anderson via All-commits all-commits at lists.llvm.org
Wed Aug 26 12:38:58 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 9936455204fd6ab72715cc9d67385ddc93e072ed
      https://github.com/llvm/llvm-project/commit/9936455204fd6ab72715cc9d67385ddc93e072ed
  Author: Owen Anderson <resistor at mac.com>
  Date:   2020-08-26 (Wed, 26 Aug 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
    A llvm/test/CodeGen/AArch64/framelayout-fp-csr.ll
    A llvm/test/CodeGen/AArch64/framelayout-frame-record.mir

  Log Message:
  -----------
  Reapply D70800: Fix AArch64 AAPCS frame record chain

Original Commit Message:
After the commit r368987 (rG643adb55769e) was landed, the frame record (FP and LR register)
may be placed in the middle of a stack frame if a function has both callee-saved
general-purpose registers and floating point registers. This will break the stack unwinders
that simply walk through the frame records (based on the guarantee from AAPCS64
"The Frame Pointer" section). This commit fixes the problem by adding the frame record offset.

Patch By: logan




More information about the All-commits mailing list