140de0e013a456971697491b428fb903570e8766eCharles Davis# RUN: llvm-mc -triple x86_64-pc-win32 %s | FileCheck %s 240de0e013a456971697491b428fb903570e8766eCharles Davis 340de0e013a456971697491b428fb903570e8766eCharles Davis# CHECK: .seh_proc func 447268164f3d660f6357cc3a59d510efe3bc9152fCharles Davis# CHECK: .seh_pushframe @code 5309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis# CHECK: .seh_stackalloc 24 6575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis# CHECK: .seh_savereg 6, 16 7575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis# CHECK: .seh_savexmm 8, 0 8410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis# CHECK: .seh_pushreg 3 9410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis# CHECK: .seh_setframe 3, 0 1040de0e013a456971697491b428fb903570e8766eCharles Davis# CHECK: .seh_endprologue 11309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis# CHECK: .seh_handler __C_specific_handler, @except 12410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis# CHECK-NOT: .section{{.*}}.xdata 13410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis# CHECK: .seh_handlerdata 14410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis# CHECK: .text 153ac7b034d65bb1b78795931287f634d4efd7e151Charles Davis# CHECK: .seh_startchained 163ac7b034d65bb1b78795931287f634d4efd7e151Charles Davis# CHECK: .seh_endprologue 173ac7b034d65bb1b78795931287f634d4efd7e151Charles Davis# CHECK: .seh_endchained 1840de0e013a456971697491b428fb903570e8766eCharles Davis# CHECK: .seh_endproc 1940de0e013a456971697491b428fb903570e8766eCharles Davis 2040de0e013a456971697491b428fb903570e8766eCharles Davis .text 2140de0e013a456971697491b428fb903570e8766eCharles Davis .globl func 2240de0e013a456971697491b428fb903570e8766eCharles Davis .def func; .scl 2; .type 32; .endef 2340de0e013a456971697491b428fb903570e8766eCharles Davis .seh_proc func 2440de0e013a456971697491b428fb903570e8766eCharles Davisfunc: 2547268164f3d660f6357cc3a59d510efe3bc9152fCharles Davis .seh_pushframe @code 26309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis subq $24, %rsp 27309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis .seh_stackalloc 24 28575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis movq %rsi, 16(%rsp) 29575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis .seh_savereg %rsi, 16 30575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis movups %xmm8, (%rsp) 31575630ccb8a267405146a0c14fba7a5b74e1e4c3Charles Davis .seh_savexmm %xmm8, 0 32410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis pushq %rbx 33410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis .seh_pushreg 3 34410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis mov %rsp, %rbx 35410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis .seh_setframe 3, 0 3640de0e013a456971697491b428fb903570e8766eCharles Davis .seh_endprologue 37309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis .seh_handler __C_specific_handler, @except 38410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis .seh_handlerdata 39410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis .long 0 40410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis .text 41ca93138e11f404a19553049a569f1fa6ad491b67Charles Davis .seh_startchained 42ca93138e11f404a19553049a569f1fa6ad491b67Charles Davis .seh_endprologue 43ca93138e11f404a19553049a569f1fa6ad491b67Charles Davis .seh_endchained 44410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis lea (%rbx), %rsp 45410ef2b263e92d3de1b2acff7437059400daed7dCharles Davis pop %rbx 46309213279e5d95826d97b2ab2178db5ddea0ed80Charles Davis addq $24, %rsp 4740de0e013a456971697491b428fb903570e8766eCharles Davis ret 4840de0e013a456971697491b428fb903570e8766eCharles Davis .seh_endproc 49