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