llvm-project/llvm/test/CodeGen/AArch64/wineh-align-stack.ll
Martin Storsjö a07787c9a5 [AArch64] Exclude instructions after setting the FP from SEH prologues
After setting up the FP, the rest of the prologue doesn't need to
be replayed for unwinding the stack frame.

This allows reverting the functional parts of
2f7fbf837625267193351cc334e506a3a9161958 (but fixing inconsistent
duplicate setting of HasWinCFI).

Differential Revision: https://reviews.llvm.org/D135686
2022-10-12 12:36:21 +03:00

23 lines
614 B
LLVM

; RUN: llc < %s -mtriple=aarch64-windows | FileCheck %s
define dso_local void @func() {
entry:
%buf = alloca [64 x i8], align 32
%arraydecay = getelementptr inbounds [64 x i8], ptr %buf, i64 0, i64 0
call void @other(ptr noundef %arraydecay)
ret void
}
declare dso_local void @other(ptr noundef)
; CHECK-LABEL: func:
; CHECK-NEXT: .seh_proc func
; CHECK-NEXT: // %bb.0:
; CHECK-NEXT: stp x29, x30, [sp, #-16]!
; CHECK-NEXT: .seh_save_fplr_x 16
; CHECK-NEXT: mov x29, sp
; CHECK-NEXT: .seh_set_fp
; CHECK-NEXT: .seh_endprologue
; CHECK-NEXT: sub x9, sp, #80
; CHECK-NEXT: and sp, x9, #0xffffffffffffffe0