brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 8eb50ed Raw
104 lines · plain
1# RUN: llvm-mc -triple x86_64-pc-win32 %s | FileCheck %s2 3#   Round trip via intel syntax printing and back.4# RUN: llvm-mc -triple x86_64-pc-win32 %s -output-asm-variant=1 | \5# RUN:     llvm-mc -triple x86_64-pc-win32 -x86-asm-syntax=intel | FileCheck %s6 7    .text8    .globl func9    .def func; .scl 2; .type 32; .endef10    .seh_proc func11# CHECK: .seh_proc func12func:13    .seh_pushframe @code14# CHECK: .seh_pushframe @code15    subq $24, %rsp16    .seh_stackalloc 2417# CHECK: .seh_stackalloc 2418    movq %rsi, 16(%rsp)19    .seh_savereg %rsi, 1620# CHECK: .seh_savereg %rsi, 1621    .seh_savereg 6, 1622# CHECK: .seh_savereg %rsi, 1623    movups %xmm8, (%rsp)24    .seh_savexmm %xmm8, 025# CHECK: .seh_savexmm %xmm8, 026    .seh_savexmm 8, 027# CHECK: .seh_savexmm %xmm8, 028    pushq %rbx29    .seh_pushreg %rbx30# CHECK: .seh_pushreg %rbx31    .seh_pushreg 332# CHECK: .seh_pushreg %rbx33    mov %rsp, %rbx34    .seh_setframe 3, 035# CHECK: .seh_setframe %rbx, 036    .seh_endprologue37# CHECK: .seh_endprologue38    .seh_handler __C_specific_handler, @except39# CHECK: .seh_handler __C_specific_handler, @except40    .seh_handlerdata41# CHECK-NOT: .section{{.*}}.xdata42# CHECK: .seh_handlerdata43    .long 044    .text45    .seh_startchained46    .seh_endprologue47    .seh_endchained48# CHECK: .text49# CHECK: .seh_startchained50# CHECK: .seh_endprologue51# CHECK: .seh_endchained52    .seh_startepilogue53# CHECK: .seh_startepilogue54    lea (%rbx), %rsp55    pop %rbx56    addq $24, %rsp57    .seh_endepilogue58# CHECK: .seh_endepilogue59    ret60    .seh_endproc61# CHECK: .seh_endproc62 63# Re-run more or less the same test, but with intel syntax. Previously LLVM64# required percent prefixing in the .seh_* directives that take registers.65 66    .intel_syntax noprefix67    .text68    .globl func_intel69    .def func_intel; .scl 2; .type 32; .endef70    .seh_proc func_intel71# CHECK: .seh_proc func_intel72func_intel:73    sub RSP, 2474    .seh_stackalloc 2475# CHECK: .seh_stackalloc 2476    mov [16+RSP], RSI77    .seh_savereg rsi, 1678# CHECK: .seh_savereg %rsi, 1679    .seh_savereg 6, 1680# CHECK: .seh_savereg %rsi, 1681    movups [RSP], XMM882    .seh_savexmm XMM8, 083# CHECK: .seh_savexmm %xmm8, 084    .seh_savexmm 8, 085# CHECK: .seh_savexmm %xmm8, 086    push rbx87    .seh_pushreg rbx88# CHECK: .seh_pushreg %rbx89    .seh_pushreg 390# CHECK: .seh_pushreg %rbx91    mov rbx, rsp92    .seh_setframe rbx, 093# CHECK: .seh_setframe %rbx, 094    .seh_endprologue95# CHECK: .seh_endprologue96    .seh_handler __C_specific_handler, @except97# CHECK: .seh_handler __C_specific_handler, @except98    .seh_handlerdata99# CHECK-NOT: .section{{.*}}.xdata100# CHECK: .seh_handlerdata101    .long 0102    .text103    .seh_endproc104