brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · e6a42c3 Raw
51 lines · plain
1; RUN: llc -mtriple=arm64ec-pc-windows-msvc < %s | FileCheck %s2 3define void @simple(ptr %g) {4; CHECK-LABEL:  "#simple":5; CHECK:        str     x30, [sp, #-16]!6; CHECK-NEXT:   .seh_save_reg_x x30, 167; CHECK-NEXT:   .seh_endprologue8; CHECK-NEXT:   adrp    x8, __os_arm64x_check_icall9; CHECK-NEXT:   adrp    x10, $iexit_thunk$cdecl$v$v10; CHECK-NEXT:   add     x10, x10, :lo12:$iexit_thunk$cdecl$v$v11; CHECK-NEXT:   ldr     x8, [x8, :lo12:__os_arm64x_check_icall]12; CHECK-NEXT:   mov     x11, x013; CHECK-NEXT:   blr     x814; CHECK-NEXT:   blr     x1115; CHECK-NEXT:   .seh_startepilogue16; CHECK-NEXT:   ldr     x30, [sp], #1617; CHECK-NEXT:   .seh_save_reg_x x30, 1618; CHECK-NEXT:   .seh_endepilogue19; CHECK-NEXT:   ret20 21entry:22  call void %g()23  ret void24}25 26; Make sure the check for the security cookie doesn't use x9.27define void @stackguard(ptr %g) sspreq {28; CHECK-LABEL:  "#stackguard":29; CHECK:          adrp    x8, __os_arm64x_check_icall30; CHECK-NEXT:     ldr     x8, [x8, :lo12:__os_arm64x_check_icall]31; CHECK-NEXT:     blr     x832; CHECK-NEXT:     adrp    x8, __security_cookie33; CHECK-NEXT:     ldr     x10, [sp, #8]34; CHECK-NEXT:     ldr     x8, [x8, :lo12:__security_cookie]35; CHECK-NEXT:     cmp     x8, x1036; CHECK-NEXT:     b.ne    .LBB1_237; CHECK-NEXT: // %bb.1:38; CHECK-NEXT:     fmov    d0, #1.0000000039; CHECK-NEXT:     .seh_startepilogue40; CHECK-NEXT:     ldr     x30, [sp, #16]41; CHECK-NEXT:     .seh_save_reg   x30, 1642; CHECK-NEXT:     add     sp, sp, #3243; CHECK-NEXT:     .seh_stackalloc 3244; CHECK-NEXT:     .seh_endepilogue45; CHECK-NEXT:     br      x1146 47entry:48  %call = tail call double %g(double noundef 1.000000e+00)49  ret void50}51