diff --git a/Changelog.txt b/Changelog.txt index 2b5dc3a94..cd1b4c3ef 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,7 +1,7 @@ OpenBLAS ChangeLog ==================================================================== Version 0.1 alpha2(in development) - +0;136;0c common: * Fixed blasint undefined bug in file. Other software could include this header successfully(Refs issue #13 on github) @@ -22,7 +22,8 @@ x86/x86_64: * Fixed #28 a wrong result of dsdot on x86_64. MIPS64: - * + * Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64. + ==================================================================== Version 0.1 alpha1 20-Mar-2011 diff --git a/interface/dsdot.c b/interface/dsdot.c index 66f7917d5..94237e0c4 100644 --- a/interface/dsdot.c +++ b/interface/dsdot.c @@ -49,6 +49,7 @@ double NAME(blasint *N, float *x, blasint *INCX, float *y, blasint *INCY){ BLASLONG n = *N; BLASLONG incx = *INCX; BLASLONG incy = *INCY; + double ret = 0.0; PRINT_DEBUG_NAME; @@ -61,19 +62,21 @@ double NAME(blasint *N, float *x, blasint *INCX, float *y, blasint *INCY){ if (incx < 0) x -= (n - 1) * incx; if (incy < 0) y -= (n - 1) * incy; - return DSDOT_K(n, x, incx, y, incy); + ret=DSDOT_K(n, x, incx, y, incy); FUNCTION_PROFILE_END(1, n, n); IDEBUG_END; - return 0; + return ret; } #else double CNAME(blasint n, float *x, blasint incx, float *y, blasint incy){ + + double ret = 0.0; PRINT_DEBUG_CNAME; @@ -86,13 +89,13 @@ double CNAME(blasint n, float *x, blasint incx, float *y, blasint incy){ if (incx < 0) x -= (n - 1) * incx; if (incy < 0) y -= (n - 1) * incy; - return DSDOT_K(n, x, incx, y, incy); + ret=DSDOT_K(n, x, incx, y, incy); FUNCTION_PROFILE_END(1, n, n); IDEBUG_END; - return 0; + return ret; } diff --git a/kernel/mips64/dot.S b/kernel/mips64/dot.S index b1f599172..6220b6ac9 100644 --- a/kernel/mips64/dot.S +++ b/kernel/mips64/dot.S @@ -300,7 +300,11 @@ .align 3 .L999: - j $31 ADD s1, s1, s2 - +#ifdef DSDOT + cvt.d.s s1, s1 +#endif + j $31 + NOP + EPILOGUE