diff options
author | Stephen Hines <srhines@google.com> | 2015-04-01 18:49:24 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-04-01 18:49:26 +0000 |
commit | 3fa16bd6062e23bcdb82ed4dd965674792e6b761 (patch) | |
tree | 9348fc507292f7e8715d22d64ce5a32131b4f875 /test/CodeGen/X86/win64_eh.ll | |
parent | beed47390a60f6f0c77532b3d3f76bb47ef49423 (diff) | |
parent | ebe69fe11e48d322045d5949c83283927a0d790b (diff) | |
download | external_llvm-3fa16bd6062e23bcdb82ed4dd965674792e6b761.zip external_llvm-3fa16bd6062e23bcdb82ed4dd965674792e6b761.tar.gz external_llvm-3fa16bd6062e23bcdb82ed4dd965674792e6b761.tar.bz2 |
Merge "Update aosp/master LLVM for rebase to r230699."
Diffstat (limited to 'test/CodeGen/X86/win64_eh.ll')
-rw-r--r-- | test/CodeGen/X86/win64_eh.ll | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/test/CodeGen/X86/win64_eh.ll b/test/CodeGen/X86/win64_eh.ll index f1f874e..b67ad58 100644 --- a/test/CodeGen/X86/win64_eh.ll +++ b/test/CodeGen/X86/win64_eh.ll @@ -1,5 +1,6 @@ -; RUN: llc < %s -O0 -mcpu=corei7 -mtriple=x86_64-pc-win32 | FileCheck %s -check-prefix=WIN64 -; RUN: llc < %s -O0 -mcpu=corei7 -mtriple=x86_64-pc-mingw32 | FileCheck %s -check-prefix=WIN64 +; RUN: llc < %s -O0 -mattr=sse2 -mtriple=x86_64-pc-windows-itanium | FileCheck %s -check-prefix=WIN64 -check-prefix=NORM +; RUN: llc < %s -O0 -mattr=sse2 -mtriple=x86_64-pc-mingw32 | FileCheck %s -check-prefix=WIN64 -check-prefix=NORM +; RUN: llc < %s -O0 -mattr=sse2 -mtriple=x86_64-pc-mingw32 -mcpu=atom | FileCheck %s -check-prefix=WIN64 -check-prefix=ATOM ; Check function without prolog define void @foo0() uwtable { @@ -20,7 +21,8 @@ entry: } ; WIN64-LABEL: foo1: ; WIN64: .seh_proc foo1 -; WIN64: subq $4000, %rsp +; NORM: subq $4000, %rsp +; ATOM: leaq -4000(%rsp), %rsp ; WIN64: .seh_stackalloc 4000 ; WIN64: .seh_endprologue ; WIN64: addq $4000, %rsp @@ -35,7 +37,7 @@ entry: } ; WIN64-LABEL: foo2: ; WIN64: .seh_proc foo2 -; WIN64: movabsq $8000, %rax +; WIN64: movl $8000, %eax ; WIN64: callq {{__chkstk|___chkstk_ms}} ; WIN64: subq %rax, %rsp ; WIN64: .seh_stackalloc 8000 @@ -83,7 +85,8 @@ entry: ; WIN64: .seh_proc foo3 ; WIN64: pushq %rsi ; WIN64: .seh_pushreg 6 -; WIN64: subq $24, %rsp +; NORM: subq $24, %rsp +; ATOM: leaq -24(%rsp), %rsp ; WIN64: .seh_stackalloc 24 ; WIN64: .seh_endprologue ; WIN64: addq $24, %rsp @@ -126,7 +129,8 @@ endtryfinally: ; WIN64-LABEL: foo4: ; WIN64: .seh_proc foo4 ; WIN64: .seh_handler _d_eh_personality, @unwind, @except -; WIN64: subq $56, %rsp +; NORM: subq $56, %rsp +; ATOM: leaq -56(%rsp), %rsp ; WIN64: .seh_stackalloc 56 ; WIN64: .seh_endprologue ; WIN64: addq $56, %rsp @@ -146,23 +150,24 @@ entry: ; WIN64: .seh_proc foo5 ; WIN64: pushq %rbp ; WIN64: .seh_pushreg 5 -; WIN64: movq %rsp, %rbp ; WIN64: pushq %rdi ; WIN64: .seh_pushreg 7 ; WIN64: pushq %rbx ; WIN64: .seh_pushreg 3 -; WIN64: andq $-64, %rsp -; WIN64: subq $128, %rsp -; WIN64: .seh_stackalloc 48 -; WIN64: .seh_setframe 5, 64 -; WIN64: movaps %xmm7, -32(%rbp) # 16-byte Spill -; WIN64: movaps %xmm6, -48(%rbp) # 16-byte Spill -; WIN64: .seh_savexmm 6, 16 -; WIN64: .seh_savexmm 7, 32 +; NORM: subq $96, %rsp +; ATOM: leaq -96(%rsp), %rsp +; WIN64: .seh_stackalloc 96 +; WIN64: leaq 96(%rsp), %rbp +; WIN64: .seh_setframe 5, 96 +; WIN64: movaps %xmm7, -16(%rbp) # 16-byte Spill +; WIN64: .seh_savexmm 7, 80 +; WIN64: movaps %xmm6, -32(%rbp) # 16-byte Spill +; WIN64: .seh_savexmm 6, 64 ; WIN64: .seh_endprologue -; WIN64: movaps -48(%rbp), %xmm6 # 16-byte Reload -; WIN64: movaps -32(%rbp), %xmm7 # 16-byte Reload -; WIN64: leaq -16(%rbp), %rsp +; WIN64: andq $-64, %rsp +; WIN64: movaps -32(%rbp), %xmm6 # 16-byte Reload +; WIN64: movaps -16(%rbp), %xmm7 # 16-byte Reload +; WIN64: movq %rbp, %rsp ; WIN64: popq %rbx ; WIN64: popq %rdi ; WIN64: popq %rbp |