astro/boinc-setiathome: fix build on i386.
Submitted by: dim Reported by: pkg-fallout
This commit is contained in:
parent
ac7e96668b
commit
7305930a6d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=459545
3 changed files with 81 additions and 1 deletions
|
@ -15,7 +15,6 @@ LICENSE= GPLv2
|
|||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
BROKEN_powerpc64= does not compile: analyzeFuncs_altivec.cpp: CoreServices/CoreServices.h: No such file or directory
|
||||
BROKEN_FreeBSD_10_i386= does not compile: vector/x86_ops.h:149:9: error: unknown type name '__m128i'; did you mean '__m128'?
|
||||
BUILD_DEPENDS= ${LOCALBASE}/include/fftw3.h:math/fftw3
|
||||
RUN_DEPENDS= boinc_client:net/boinc-client
|
||||
LIB_DEPENDS= libfftw3f.so:math/fftw3-float
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
--- client/vector/x86_float4.h.orig 2018-01-14 23:02:12 UTC
|
||||
+++ client/vector/x86_float4.h
|
||||
@@ -58,8 +58,8 @@ extern const_float4 INDGEN[2];
|
||||
|
||||
ALIGNED(static const int sign_bits[4],16)={INT_MIN, INT_MIN, INT_MIN, INT_MIN};
|
||||
ALIGNED(static const int other_bits[4],16)={INT_MAX, INT_MAX, INT_MAX, INT_MAX};
|
||||
-#define SIGN_BITS (*(__m128i *)sign_bits)
|
||||
-#define OTHER_BITS (*(__m128i *)other_bits)
|
||||
+#define SIGN_BITS (*(__m128 *)sign_bits)
|
||||
+#define OTHER_BITS (*(__m128 *)other_bits)
|
||||
|
||||
|
||||
|
||||
@@ -104,19 +104,19 @@ struct float4 {
|
||||
#endif
|
||||
return rv;
|
||||
};
|
||||
- inline float4 operator |(const __m128i &b) const {
|
||||
+ inline float4 operator |(const __m128 &b) const {
|
||||
register float4 rv;
|
||||
#ifdef USE_INTRINSICS
|
||||
- rv.m=_mm_or_ps(*(__m128 *)&b,m);
|
||||
+ rv.m=_mm_or_ps(b,m);
|
||||
#elif defined(__GNUC__)
|
||||
__asm__ ( "orps %2,%0" : "=x" (rv.m) : "0" (b), "xm" (m));
|
||||
#endif
|
||||
return rv;
|
||||
};
|
||||
- inline float4 operator &(const __m128i &b) const {
|
||||
+ inline float4 operator &(const __m128 &b) const {
|
||||
register float4 rv;
|
||||
#ifdef USE_INTRINSICS
|
||||
- rv.m=_mm_and_ps(*(__m128 *)&b,m);
|
||||
+ rv.m=_mm_and_ps(b,m);
|
||||
#elif defined(__GNUC__)
|
||||
__asm__ ( "andps %2,%0" : "=x" (rv.m) : "0" (b), "xm" (m));
|
||||
#endif
|
||||
@@ -159,7 +159,9 @@ struct float4 {
|
||||
return *this;
|
||||
}
|
||||
inline operator __m128() {return m;};
|
||||
+#ifdef __SSE2__
|
||||
inline operator __m128i() {return *(__m128i *)&m; };
|
||||
+#endif
|
||||
inline float4 abs() const {
|
||||
// clear the sign bits
|
||||
return *this & OTHER_BITS;
|
||||
@@ -258,7 +260,9 @@ struct const_float4 : public float4 {
|
||||
inline const_float4(const float4 &b) { m=b.m; };
|
||||
inline operator float4() const { return *this; };
|
||||
inline operator __m128() {return m;};
|
||||
+#ifdef __SSE2__
|
||||
inline operator __m128i() {return *(__m128i *)&m; };
|
||||
+#endif
|
||||
};
|
||||
|
||||
#endif
|
24
astro/boinc-setiathome/files/patch-client_vector_x86__ops.h
Normal file
24
astro/boinc-setiathome/files/patch-client_vector_x86__ops.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
--- client/vector/x86_ops.h.orig 2018-01-14 23:02:12 UTC
|
||||
+++ client/vector/x86_ops.h
|
||||
@@ -137,8 +137,10 @@
|
||||
// SSE2 specific functions/macros here.
|
||||
#if defined(_MSC_VER) || defined(__clang__)
|
||||
typedef __m128d x86_m128d;
|
||||
+typedef __m128i x86_m128i;
|
||||
#else
|
||||
typedef double x86_m128d __attribute__ ((mode(V2DF))) __attribute__((aligned(16)));
|
||||
+typedef int x86_m128i __attribute__ ((mode(V4SI))) __attribute__((aligned(16)));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -146,10 +148,8 @@ typedef double x86_m128d __attribute__ ((mode(V2DF)))
|
||||
// SSE specific functions/macros here.
|
||||
#if defined(_MSC_VER) || defined(__clang__)
|
||||
typedef __m128 x86_m128;
|
||||
-typedef __m128i x86_m128i;
|
||||
#else
|
||||
typedef float x86_m128 __attribute__ ((mode(V4SF))) __attribute__((aligned(16)));
|
||||
-typedef int x86_m128i __attribute__ ((mode(V4SI))) __attribute__((aligned(16)));
|
||||
#endif
|
||||
|
||||
static inline void prefetcht0(const void *v) {
|
Loading…
Reference in a new issue