@@ -60,8 +60,10 @@ | |||||
#ifdef WINDOWS_ABI | #ifdef WINDOWS_ABI | ||||
movq 40(%rsp), X | movq 40(%rsp), X | ||||
movq 48(%rsp), INCX | movq 48(%rsp), INCX | ||||
movq 64(%rsp), %r9 | |||||
movaps %xmm3, %xmm0 | movaps %xmm3, %xmm0 | ||||
#else | |||||
movq 24(%rsp), %r9 | |||||
#endif | #endif | ||||
SAVEREGISTERS | SAVEREGISTERS | ||||
@@ -73,6 +75,10 @@ | |||||
lea (, INCX, SIZE), INCX | lea (, INCX, SIZE), INCX | ||||
comisd %xmm0, %xmm1 | comisd %xmm0, %xmm1 | ||||
jne .L100 | jne .L100 | ||||
jp .L100 | |||||
cmpq $1, %r9 | |||||
je .L100 | |||||
/* Alpha == ZERO */ | /* Alpha == ZERO */ | ||||
cmpq $SIZE, INCX | cmpq $SIZE, INCX | ||||
@@ -74,7 +74,7 @@ | |||||
pxor %xmm15, %xmm15 | pxor %xmm15, %xmm15 | ||||
comisd %xmm0, %xmm15 | comisd %xmm0, %xmm15 | ||||
jne .L30 # Alpha_r != ZERO | jne .L30 # Alpha_r != ZERO | ||||
jp .L30 | |||||
comisd %xmm1, %xmm15 | comisd %xmm1, %xmm15 | ||||
jne .L30 # Alpha_i != ZERO | jne .L30 # Alpha_i != ZERO | ||||