diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/atomic-load-store-wide.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/atomic-load-store-wide.ll | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/X86/atomic-load-store-wide.ll b/llvm/test/CodeGen/X86/atomic-load-store-wide.ll index d1b280661a3..7be6cb2738c 100644 --- a/llvm/test/CodeGen/X86/atomic-load-store-wide.ll +++ b/llvm/test/CodeGen/X86/atomic-load-store-wide.ll @@ -45,22 +45,21 @@ define i64 @test2(i64* %ptr) { ; ; NOSSE-LABEL: test2: ; NOSSE: # %bb.0: -; NOSSE-NEXT: pushl %ebx +; NOSSE-NEXT: pushl %ebp ; NOSSE-NEXT: .cfi_def_cfa_offset 8 -; NOSSE-NEXT: pushl %esi -; NOSSE-NEXT: .cfi_def_cfa_offset 12 -; NOSSE-NEXT: .cfi_offset %esi, -12 -; NOSSE-NEXT: .cfi_offset %ebx, -8 -; NOSSE-NEXT: movl {{[0-9]+}}(%esp), %esi -; NOSSE-NEXT: xorl %eax, %eax -; NOSSE-NEXT: xorl %edx, %edx -; NOSSE-NEXT: xorl %ecx, %ecx -; NOSSE-NEXT: xorl %ebx, %ebx -; NOSSE-NEXT: lock cmpxchg8b (%esi) -; NOSSE-NEXT: popl %esi -; NOSSE-NEXT: .cfi_def_cfa_offset 8 -; NOSSE-NEXT: popl %ebx -; NOSSE-NEXT: .cfi_def_cfa_offset 4 +; NOSSE-NEXT: .cfi_offset %ebp, -8 +; NOSSE-NEXT: movl %esp, %ebp +; NOSSE-NEXT: .cfi_def_cfa_register %ebp +; NOSSE-NEXT: andl $-8, %esp +; NOSSE-NEXT: subl $8, %esp +; NOSSE-NEXT: movl 8(%ebp), %eax +; NOSSE-NEXT: fildll (%eax) +; NOSSE-NEXT: fistpll (%esp) +; NOSSE-NEXT: movl (%esp), %eax +; NOSSE-NEXT: movl {{[0-9]+}}(%esp), %edx +; NOSSE-NEXT: movl %ebp, %esp +; NOSSE-NEXT: popl %ebp +; NOSSE-NEXT: .cfi_def_cfa %esp, 4 ; NOSSE-NEXT: retl %val = load atomic i64, i64* %ptr seq_cst, align 8 ret i64 %val @@ -102,22 +101,21 @@ define i64 @test4(i64* %ptr) { ; ; NOSSE-LABEL: test4: ; NOSSE: # %bb.0: -; NOSSE-NEXT: pushl %ebx -; NOSSE-NEXT: .cfi_def_cfa_offset 8 -; NOSSE-NEXT: pushl %esi -; NOSSE-NEXT: .cfi_def_cfa_offset 12 -; NOSSE-NEXT: .cfi_offset %esi, -12 -; NOSSE-NEXT: .cfi_offset %ebx, -8 -; NOSSE-NEXT: movl {{[0-9]+}}(%esp), %esi -; NOSSE-NEXT: xorl %eax, %eax -; NOSSE-NEXT: xorl %edx, %edx -; NOSSE-NEXT: xorl %ecx, %ecx -; NOSSE-NEXT: xorl %ebx, %ebx -; NOSSE-NEXT: lock cmpxchg8b (%esi) -; NOSSE-NEXT: popl %esi +; NOSSE-NEXT: pushl %ebp ; NOSSE-NEXT: .cfi_def_cfa_offset 8 -; NOSSE-NEXT: popl %ebx -; NOSSE-NEXT: .cfi_def_cfa_offset 4 +; NOSSE-NEXT: .cfi_offset %ebp, -8 +; NOSSE-NEXT: movl %esp, %ebp +; NOSSE-NEXT: .cfi_def_cfa_register %ebp +; NOSSE-NEXT: andl $-8, %esp +; NOSSE-NEXT: subl $8, %esp +; NOSSE-NEXT: movl 8(%ebp), %eax +; NOSSE-NEXT: fildll (%eax) +; NOSSE-NEXT: fistpll (%esp) +; NOSSE-NEXT: movl (%esp), %eax +; NOSSE-NEXT: movl {{[0-9]+}}(%esp), %edx +; NOSSE-NEXT: movl %ebp, %esp +; NOSSE-NEXT: popl %ebp +; NOSSE-NEXT: .cfi_def_cfa %esp, 4 ; NOSSE-NEXT: retl %val = load atomic volatile i64, i64* %ptr seq_cst, align 8 ret i64 %val |