[llvm-commits] [llvm-gcc-4.2] r50200 - /llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s

Dan Gohman gohman at apple.com
Wed Apr 23 17:11:32 PDT 2008


Author: djg
Date: Wed Apr 23 19:11:32 2008
New Revision: 50200

URL: http://llvm.org/viewvc/llvm-project?rev=50200&view=rev
Log:
Fix the darwin snapshot_ret to keep %rsp 16-byte aligned. This is
pretty obscure, but it turns out that LLVM's -regalloc=local
occasionally finds a way to need xmm spills in some of these trivial
ABI testcases, and the code for that requires proper stack alignment.

This fixes a memory trap in gcc.target/x86_64/abi/test_struct_returning.c.

Modified:
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s

Modified: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s?rev=50200&r1=50199&r2=50200&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s Wed Apr 23 19:11:32 2008
@@ -41,6 +41,8 @@
 	.p2align 4,,15
 .globl _snapshot_ret
 _snapshot_ret:
+	pushq	%rbp
+	movq	%rsp, %rbp
 	movq	%rdi, _rdi(%rip)
 	call	*_callthis(%rip)
 	movq	%rax, _rax(%rip)
@@ -51,6 +53,7 @@
 	fstpt	_x87_regs+16(%rip)
 	fldt	_x87_regs+16(%rip)
 	fldt	_x87_regs(%rip)
+	leave
 	ret
 
 	.comm	_callthis,8





More information about the llvm-commits mailing list