From bda1fb7dd29a74608a753f500c3aea26fb7884f7 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Mon, 18 Nov 2013 22:17:00 +0000 Subject: [PATCH] fix 64bit iOS,see also Issue 739 --- src/LinearMath/btVector3.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/LinearMath/btVector3.cpp b/src/LinearMath/btVector3.cpp index 9389a25ca..80c7055d5 100644 --- a/src/LinearMath/btVector3.cpp +++ b/src/LinearMath/btVector3.cpp @@ -821,6 +821,7 @@ long _mindot_large( const float *vv, const float *vec, unsigned long count, floa #elif defined BT_USE_NEON + #define ARM_NEON_GCC_COMPATIBILITY 1 #include #include @@ -884,7 +885,12 @@ static long _mindot_large_sel( const float *vv, const float *vec, unsigned long -#define vld1q_f32_aligned_postincrement( _ptr ) ({ float32x4_t _r; asm( "vld1.f32 {%0}, [%1, :128]!\n" : "=w" (_r), "+r" (_ptr) ); /*return*/ _r; }) +#if defined __arm__ +# define vld1q_f32_aligned_postincrement( _ptr ) ({ float32x4_t _r; asm( "vld1.f32 {%0}, [%1, :128]!\n" : "=w" (_r), "+r" (_ptr) ); /*return*/ _r; }) +#else +//support 64bit arm +# define vld1q_f32_aligned_postincrement( _ptr) ({ float32x4_t _r = ((float32x4_t*)(_ptr))[0]; (_ptr) = (const float*) ((const char*)(_ptr) + 16L); /*return*/ _r; }) +#endif long _maxdot_large_v0( const float *vv, const float *vec, unsigned long count, float *dotResult )