diff --git a/kernel/arm/ddot_vfp.S b/kernel/arm/ddot_vfp.S index 71b3c1ce8..f28acbae3 100644 --- a/kernel/arm/ddot_vfp.S +++ b/kernel/arm/ddot_vfp.S @@ -31,6 +31,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * CTEST : OK * TEST : OK * +* 2016/01/23 Saar +* Bugfix for Refs #750 and #740 **************************************************************************************/ #define ASSEMBLER @@ -152,8 +154,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. mov Y, OLD_Y ldr INC_Y, OLD_INC_Y - vsub.f64 d0 , d0 , d0 - vsub.f64 d1 , d1 , d1 + movs r4, #0 // clear floating point register + vmov s0, r4 + vmov s1, r4 + vcvt.f64.f32 d0, s0 + vcvt.f64.f32 d1, s1 + cmp N, #0 ble ddot_kernel_L999 diff --git a/kernel/arm/sdot_vfp.S b/kernel/arm/sdot_vfp.S index a6fcf2ae6..aa6748c9f 100644 --- a/kernel/arm/sdot_vfp.S +++ b/kernel/arm/sdot_vfp.S @@ -31,6 +31,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * CTEST : OK (no test for dsdot) * TEST : OK (no test for dsdot) * +* 2016/01/23 Saar +* Bugfix for Refs #750 and #740 **************************************************************************************/ #define ASSEMBLER @@ -240,16 +242,12 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. mov Y, OLD_Y ldr INC_Y, OLD_INC_Y + movs r4, #0 // clear floating point register + vmov s0, r4 + vmov s1, r4 #if defined(DSDOT) - - vsub.f64 d0 , d0 , d0 - vsub.f64 d1 , d1 , d1 - -#else - - vsub.f32 s0 , s0 , s0 - vsub.f32 s1 , s1 , s1 - + vcvt.f64.f32 d0, s0 + vcvt.f64.f32 d1, s1 #endif cmp N, #0