forked from OSchip/llvm-project
31 lines
873 B
LLVM
31 lines
873 B
LLVM
; RUN: llc -mtriple arm64-windows %s -o - | FileCheck %s
|
|
|
|
; Function Attrs: noinline nounwind optnone uwtable
|
|
define dso_local i32 @foo() {
|
|
entry:
|
|
; CHECK-LABEL: foo
|
|
; CHECK: .set .Lfoo$frame_escape_0, -4
|
|
|
|
%count = alloca i32, align 4
|
|
call void (...) @llvm.localescape(i32* %count)
|
|
ret i32 0
|
|
}
|
|
|
|
define internal i32 @"?filt$0@0@foo@@"(i8* %exception_pointers, i8* %frame_pointer) {
|
|
entry:
|
|
; CHECK-LABEL: @"?filt$0@0@foo@@"
|
|
; CHECK: movz x8, #:abs_g1_s:.Lfoo$frame_escape_0
|
|
; CHECK: movk x8, #:abs_g0_nc:.Lfoo$frame_escape_0
|
|
|
|
%0 = call i8* @llvm.localrecover(i8* bitcast (i32 ()* @foo to i8*), i8* %frame_pointer, i32 0)
|
|
%count = bitcast i8* %0 to i32*
|
|
%1 = load i32, i32* %count, align 4
|
|
ret i32 %1
|
|
}
|
|
|
|
; Function Attrs: nounwind readnone
|
|
declare i8* @llvm.localrecover(i8*, i8*, i32) #2
|
|
|
|
; Function Attrs: nounwind
|
|
declare void @llvm.localescape(...) #3
|