From 724ae159cedfe8e080c8b18ed21b1769c83cc2c0 Mon Sep 17 00:00:00 2001 From: Zhang Xianyi Date: Fri, 8 Mar 2013 22:28:34 +0800 Subject: [PATCH] Fixed the Windows x86_64 ABI bug in s/daxpy kernels. --- kernel/x86_64/axpy_sse.S | 6 +++++- kernel/x86_64/axpy_sse2.S | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/kernel/x86_64/axpy_sse.S b/kernel/x86_64/axpy_sse.S index 9a7512575..2a9e928ed 100644 --- a/kernel/x86_64/axpy_sse.S +++ b/kernel/x86_64/axpy_sse.S @@ -69,7 +69,7 @@ #endif movaps %xmm0, ALPHA #else - movaps %xmm3, ALPHA + movq 40(%rsp), X movq 48(%rsp), INCX @@ -79,6 +79,10 @@ SAVEREGISTERS +#ifdef WINDOWS_ABI + movaps %xmm3, ALPHA +#endif + shufps $0, ALPHA, ALPHA leaq (, INCX, SIZE), INCX diff --git a/kernel/x86_64/axpy_sse2.S b/kernel/x86_64/axpy_sse2.S index dea8d0382..45c7b0380 100644 --- a/kernel/x86_64/axpy_sse2.S +++ b/kernel/x86_64/axpy_sse2.S @@ -69,7 +69,6 @@ #endif movaps %xmm0, ALPHA #else - movaps %xmm3, ALPHA movq 40(%rsp), X movq 48(%rsp), INCX @@ -79,6 +78,10 @@ SAVEREGISTERS +#ifdef WINDOWS_ABI + movaps %xmm3, ALPHA +#endif + unpcklpd ALPHA, ALPHA leaq (, INCX, SIZE), INCX