
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
23 lines
614 B
LLVM
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
|