This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] clean up x86_64 abi tests for darwin


So, these were failing since the support .s file wasn't written in an assembly that the darwin assembler understood. A short translation later and here we are.

Tested on x86_64-darwin. No regressions, all abi tests now pass.

OK?

-eric

2006-09-12 Eric Christopher <echristo@apple.com>

        * gcc.target/x86_64/abi/asm-support-darwin.s: New.
        * gcc.target/x86_64/abi/abi-x86_64.exp: Use.

Index: gcc.target/x86_64/abi/abi-x86_64.exp
===================================================================
--- gcc.target/x86_64/abi/abi-x86_64.exp	(revision 116908)
+++ gcc.target/x86_64/abi/abi-x86_64.exp	(working copy)
@@ -30,8 +30,14 @@ set additional_flags "-W -Wall"
 
 foreach src [lsort [find $srcdir/$subdir test_*.c]] {
     if {[runtest_file_p $runtests $src]} {
+	if { ([istarget *-*-darwin*]) } then {
+	    c-torture-execute [list $src \
+				    $srcdir/$subdir/asm-support-darwin.s] \
+				    $additional_flags
+	} else {
 	c-torture-execute [list $src \
 			        $srcdir/$subdir/asm-support.s] \
 				$additional_flags
     }
 }
+}
Index: gcc.target/x86_64/abi/asm-support-darwin.s
===================================================================
--- gcc.target/x86_64/abi/asm-support-darwin.s	(revision 0)
+++ gcc.target/x86_64/abi/asm-support-darwin.s	(revision 0)
@@ -0,0 +1,75 @@
+	.file	"snapshot.S"
+	.text
+	.p2align 4,,15
+.globl _snapshot
+_snapshot:
+.LFB3:
+	movq	%rax, _rax(%rip)
+	movq	%rbx, _rbx(%rip)
+	movq	%rcx, _rcx(%rip)
+	movq	%rdx, _rdx(%rip)
+	movq	%rdi, _rdi(%rip)
+	movq	%rsi, _rsi(%rip)
+	movq	%rbp, _rbp(%rip)
+	movq	%rsp, _rsp(%rip)
+	movq	%r8, _r8(%rip)
+	movq	%r9, _r9(%rip)
+	movq	%r10, _r10(%rip)
+	movq	%r11, _r11(%rip)
+	movq	%r12, _r12(%rip)
+	movq	%r13, _r13(%rip)
+	movq	%r14, _r14(%rip)
+	movq	%r15, _r15(%rip)
+	movdqu	%xmm0, _xmm_regs+0(%rip)
+	movdqu	%xmm1, _xmm_regs+16(%rip)
+	movdqu	%xmm2, _xmm_regs+16*2(%rip)
+	movdqu	%xmm3, _xmm_regs+16*3(%rip)
+	movdqu	%xmm4, _xmm_regs+16*4(%rip)
+	movdqu	%xmm5, _xmm_regs+16*5(%rip)
+	movdqu	%xmm6, _xmm_regs+16*6(%rip)
+	movdqu	%xmm7, _xmm_regs+16*7(%rip)
+	movdqu	%xmm8, _xmm_regs+16*8(%rip)
+	movdqu	%xmm9, _xmm_regs+16*9(%rip)
+	movdqu	%xmm10, _xmm_regs+16*10(%rip)
+	movdqu	%xmm11, _xmm_regs+16*11(%rip)
+	movdqu	%xmm12, _xmm_regs+16*12(%rip)
+	movdqu	%xmm13, _xmm_regs+16*13(%rip)
+	movdqu	%xmm14, _xmm_regs+16*14(%rip)
+	movdqu	%xmm15, _xmm_regs+16*15(%rip)
+	jmp	*_callthis(%rip)
+.LFE3:
+	.p2align 4,,15
+.globl _snapshot_ret
+_snapshot_ret:
+	movq	%rdi, _rdi(%rip)
+	call	*_callthis(%rip)
+	movq	%rax, _rax(%rip)
+	movq	%rdx, _rdx(%rip)
+	movdqu	%xmm0, _xmm_regs+0(%rip)
+	movdqu	%xmm1, _xmm_regs+16(%rip)
+	fstpt	_x87_regs(%rip)
+	fstpt	_x87_regs+16(%rip)
+	fldt	_x87_regs+16(%rip)
+	fldt	_x87_regs(%rip)
+	ret
+
+	.comm	_callthis,8
+	.comm	_rax,8
+	.comm	_rbx,8
+	.comm	_rcx,8
+	.comm	_rdx,8
+	.comm	_rsi,8
+	.comm	_rdi,8
+	.comm	_rsp,8
+	.comm	_rbp,8
+	.comm	_r8,8
+	.comm	_r9,8
+	.comm	_r10,8
+	.comm	_r11,8
+	.comm	_r12,8
+	.comm	_r13,8
+	.comm	_r14,8
+	.comm	_r15,8
+	.comm	_xmm_regs,256
+	.comm	_x87_regs,128
+	.comm   _volatile_var,8

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]