From 1cc8c7b29286c9b6e26ed7475afcb2d31df84e4b Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 13 Sep 2006 01:07:27 +0000 Subject: [PATCH] asm-support-darwin.s: New. 2006-09-12 Eric Christopher * gcc.target/x86_64/abi/asm-support-darwin.s: New. * gcc.target/x86_64/abi/abi-x86_64.exp: Use. From-SVN: r116916 --- gcc/testsuite/ChangeLog | 5 ++ .../gcc.target/x86_64/abi/abi-x86_64.exp | 12 ++- .../x86_64/abi/asm-support-darwin.s | 75 +++++++++++++++++++ 3 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6169fddc6f1..9930647a684 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-09-12 Eric Christopher + + * gcc.target/x86_64/abi/asm-support-darwin.s: New. + * gcc.target/x86_64/abi/abi-x86_64.exp: Use. + 2006-09-13 Joseph S. Myers PR c/28768 diff --git a/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp b/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp index 759bc94a3db..abf90218bf4 100644 --- a/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp +++ b/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp @@ -30,8 +30,14 @@ set additional_flags "-W -Wall" foreach src [lsort [find $srcdir/$subdir test_*.c]] { if {[runtest_file_p $runtests $src]} { - c-torture-execute [list $src \ - $srcdir/$subdir/asm-support.s] \ - $additional_flags + 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 + } } } diff --git a/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s b/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s new file mode 100644 index 00000000000..a02c96c15f9 --- /dev/null +++ b/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s @@ -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