brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 7e2651d Raw
73 lines · plain
1; RUN: llc -mtriple=x86_64-pc-windows-msvc -verify-machineinstrs < %s | FileCheck %s2 3; We should store -2 into UnwindHelp in a slot immediately after the last XMM4; CSR save.5 6declare void @g()7declare i32 @__CxxFrameHandler3(...)8 9@fp_global = global double 0.010 11define void @f() personality ptr @__CxxFrameHandler3 {12  %v = load double, ptr @fp_global13  call void @g()14  %v1 = fadd double %v, 1.015  store double %v1, ptr @fp_global16  invoke void @g()17      to label %return unwind label %catch.dispatch18 19return:20  ret void21 22catch.dispatch:23  %cs1 = catchswitch within none [label %catch] unwind to caller24 25catch:26  %p = catchpad within %cs1 [ptr null, i32 64, ptr null]27  catchret from %p to label %return28}29 30; CHECK: f: # @f31; CHECK: pushq   %rbp32; CHECK: .seh_pushreg %rbp33; CHECK: subq    $64, %rsp34; CHECK: .seh_stackalloc 6435; CHECK: leaq    64(%rsp), %rbp36; CHECK: .seh_setframe %rbp, 6437; CHECK: movaps  %xmm6, -16(%rbp)        # 16-byte Spill38; CHECK: .seh_savexmm %xmm6, 4839; CHECK: .seh_endprologue40; CHECK: movq    $-2, -24(%rbp)41; CHECK: movsd   fp_global(%rip), %xmm6  # xmm6 = mem[0],zero42; CHECK: callq   g43; CHECK: addsd   __real@3ff0000000000000(%rip), %xmm644; CHECK: movsd   %xmm6, fp_global(%rip)45; CHECK: .Ltmp{{.*}}46; CHECK: callq   g47; CHECK: .Ltmp{{.*}}48; CHECK: .LBB{{.*}} # Block address taken49; CHECK: movaps  -16(%rbp), %xmm650; CHECK: .seh_startepilogue51; CHECK: addq    $64, %rsp52; CHECK: popq    %rbp53; CHECK: .seh_endepilogue54; CHECK: retq55; CHECK: .seh_handlerdata56; CHECK: # %catch57; CHECK: movq    %rdx, 16(%rsp)58; CHECK: pushq   %rbp59; CHECK: .seh_pushreg %rbp60; CHECK: subq    $48, %rsp61; CHECK: .seh_stackalloc 4862; CHECK: leaq    64(%rdx), %rbp63; CHECK: movapd  %xmm6, 32(%rsp)64; CHECK: .seh_savexmm %xmm6, 3265; CHECK: .seh_endprologue66; CHECK: movapd  32(%rsp), %xmm667; CHECK: leaq    .LBB0_1(%rip), %rax68; CHECK: .seh_startepilogue69; CHECK: addq    $48, %rsp70; CHECK: popq    %rbp71; CHECK: .seh_endepilogue72; CHECK: retq # CATCHRET73