[all-commits] [llvm/llvm-project] 493529: Re-land: [ARM] Fix frame chains with M-profile PAC...

Oliver Stannard via All-commits all-commits at lists.llvm.org
Thu Oct 24 08:44:46 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 493529fbcee07b1ea17c3abfdea85cfa226a04a4
      https://github.com/llvm/llvm-project/commit/493529fbcee07b1ea17c3abfdea85cfa226a04a4
  Author: Oliver Stannard <oliver.stannard at arm.com>
  Date:   2024-10-24 (Thu, 24 Oct 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
    M llvm/lib/Target/ARM/ARMCallingConv.td
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMSubtarget.cpp
    M llvm/lib/Target/ARM/ARMSubtarget.h
    A llvm/test/CodeGen/Thumb2/pacbti-m-frame-chain.ll

  Log Message:
  -----------
  Re-land: [ARM] Fix frame chains with M-profile PACBTI (#110285)

When using AAPCS-compliant frame chains with PACBTI return address
signing, there ware a number of bugs in the generation of the frame
pointer and function prologues. The most obvious was that we sometimes
would modify r11 before pushing it to the stack, so it wasn't preserved
as required by the PCS. We also sometimes did not push R11 and LR
adjacent to one another on the stack, or used R11 as a frame pointer
without pointing it at the saved value of R11, both of which are
required to have an AAPCS compliant frame chain.

The original work of this patch was done by James Westwood, reviewed as
 #82801 and #81249, with some tidy-ups done by Mark Murray and myself.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list