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