libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/cvd_src utility.cc


From: Edward Rosten
Subject: [libcvd-members] libcvd/cvd_src utility.cc
Date: Tue, 04 Sep 2007 23:33:08 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        07/09/04 23:33:08

Modified files:
        cvd_src        : utility.cc 

Log message:
        Minor fix for gcc3, from S. Brumby.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/utility.cc?cvsroot=libcvd&r1=1.7&r2=1.8

Patches:
Index: utility.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/utility.cc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- utility.cc  25 Oct 2006 00:47:45 -0000      1.7
+++ utility.cc  4 Sep 2007 23:33:08 -0000       1.8
@@ -246,8 +246,10 @@
 
 #if defined(CVD_HAVE_SSE) && defined(CVD_HAVE_XMMINTRIN)
 
-    template <bool Aligned> inline __m128 load_ps(const void* addr) { return 
_mm_loadu_ps((const float*)addr); }
-    template <> inline __m128 load_ps<true>(const void* addr) { return 
_mm_load_ps((const float*)addr); }
+       //Some versions of gcc do not define _mm_load?_ps as taking a const 
float*
+       //Later versions always use the const.
+    template <bool Aligned> inline __m128 load_ps(const void* addr) { return 
_mm_loadu_ps(static_cast<float*>(const_cast<void*>(addr))); }
+    template <> inline __m128 load_ps<true>(const void* addr) { return 
_mm_load_ps(static_cast<float*>(const_cast<void*>(addr))); }
 
     template <bool Aligned> inline void store_ps(__m128 m, void* addr) { 
return _mm_storeu_ps((float*)addr, m); }
     template <> inline void store_ps<true>(__m128 m, void* addr) { return 
_mm_store_ps((float*)addr, m); }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]