| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 |
| ; RUN: llc -mtriple=x86_64-pc-windows-msvc -mcpu=corei7 < %s | FileCheck %s |
| |
| ; Non-volatile registers are used to pass the first few parameters. |
| declare void @boring() |
| declare preserve_nonecc void @continuation(ptr, ptr, ptr, ptr, ptr, ptr) |
| define preserve_nonecc void @entry(ptr %r12, ptr %r13, ptr %r14, ptr %r15, ptr %rdi, ptr %rsi) { |
| ; CHECK-LABEL: entry: |
| ; CHECK: # %bb.0: |
| ; CHECK-NEXT: subq $40, %rsp |
| ; CHECK-NEXT: .seh_stackalloc 40 |
| ; CHECK-NEXT: .seh_endprologue |
| ; CHECK-NEXT: callq boring |
| ; CHECK-NEXT: nop |
| ; CHECK-NEXT: .seh_startepilogue |
| ; CHECK-NEXT: addq $40, %rsp |
| ; CHECK-NEXT: .seh_endepilogue |
| ; CHECK-NEXT: jmp continuation # TAILCALL |
| ; CHECK-NEXT: .seh_endproc |
| call void @boring() |
| musttail call preserve_nonecc void @continuation(ptr %r12, ptr %r13, ptr %r14, ptr %r15, ptr %rdi, ptr %rsi) |
| ret void |
| } |