1# RUN: llvm-mc -triple x86_64-pc-win32 %s | FileCheck %s 2 3# CHECK: .seh_proc func 4# CHECK: .seh_pushframe @code 5# CHECK: .seh_stackalloc 24 6# CHECK: .seh_savereg 6, 16 7# CHECK: .seh_savexmm 8, 0 8# CHECK: .seh_pushreg 3 9# CHECK: .seh_setframe 3, 0 10# CHECK: .seh_endprologue 11# CHECK: .seh_handler __C_specific_handler, @except 12# CHECK-NOT: .section{{.*}}.xdata 13# CHECK: .seh_handlerdata 14# CHECK: .text 15# CHECK: .seh_startchained 16# CHECK: .seh_endprologue 17# CHECK: .seh_endchained 18# CHECK: .seh_endproc 19 20 .text 21 .globl func 22 .def func; .scl 2; .type 32; .endef 23 .seh_proc func 24func: 25 .seh_pushframe @code 26 subq $24, %rsp 27 .seh_stackalloc 24 28 movq %rsi, 16(%rsp) 29 .seh_savereg %rsi, 16 30 movups %xmm8, (%rsp) 31 .seh_savexmm %xmm8, 0 32 pushq %rbx 33 .seh_pushreg 3 34 mov %rsp, %rbx 35 .seh_setframe 3, 0 36 .seh_endprologue 37 .seh_handler __C_specific_handler, @except 38 .seh_handlerdata 39 .long 0 40 .text 41 .seh_startchained 42 .seh_endprologue 43 .seh_endchained 44 lea (%rbx), %rsp 45 pop %rbx 46 addq $24, %rsp 47 ret 48 .seh_endproc 49