From 991366a48f0edb471e0fa892bbc054e2c5393b7d Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Tue, 20 Jan 2015 19:10:52 -1000 Subject: [PATCH 1/2] Fixed self-referencial bug in btVector3's setInterpolate3 --- src/LinearMath/btVector3.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/LinearMath/btVector3.h b/src/LinearMath/btVector3.h index 112b70dd6..839b19c14 100644 --- a/src/LinearMath/btVector3.h +++ b/src/LinearMath/btVector3.h @@ -501,10 +501,10 @@ public: __m128 tmp3 = _mm_add_ps(r0,r1); mVec128 = tmp3; #elif defined(BT_USE_NEON) - mVec128 = vsubq_f32(v1.mVec128, v0.mVec128); - mVec128 = vmulq_n_f32(mVec128, rt); - mVec128 = vaddq_f32(mVec128, v0.mVec128); -#else + float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128); + vl = vmulq_n_f32(vl, rt); + mVec128 = vaddq_f32(vl, v0.mVec128); +#else btScalar s = btScalar(1.0) - rt; m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0]; m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1]; From 9e8e22bee52a6679c40964f403c8e97943059f14 Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Tue, 20 Jan 2015 20:11:56 -1000 Subject: [PATCH 2/2] Same fix for B3 codebase --- src/Bullet3Common/b3Vector3.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Bullet3Common/b3Vector3.h b/src/Bullet3Common/b3Vector3.h index ed45ffaa9..9bd10a5cc 100644 --- a/src/Bullet3Common/b3Vector3.h +++ b/src/Bullet3Common/b3Vector3.h @@ -467,10 +467,10 @@ public: __m128 tmp3 = _mm_add_ps(r0,r1); mVec128 = tmp3; #elif defined(B3_USE_NEON) - mVec128 = vsubq_f32(v1.mVec128, v0.mVec128); - mVec128 = vmulq_n_f32(mVec128, rt); - mVec128 = vaddq_f32(mVec128, v0.mVec128); -#else + float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128); + vl = vmulq_n_f32(vl, rt); + mVec128 = vaddq_f32(vl, v0.mVec128); +#else b3Scalar s = b3Scalar(1.0) - rt; m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0]; m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];