Группа :: Система/Библиотеки
Пакет: libopenimageio
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: openimageio-e2k.patch
Скачать
Скачать
diff --git a/src/include/OpenImageIO/platform.h b/src/include/OpenImageIO/platform.h
index 7ed0548..39f2380 100644
--- a/src/include/OpenImageIO/platform.h
+++ b/src/include/OpenImageIO/platform.h
@@ -53,6 +53,8 @@
#ifdef _MSC_VER
# include <intrin.h>
+#elif defined(__e2k__) && defined(__LCC__)
+# include <e2kbuiltin.h>
#endif
#include <OpenImageIO/oiioversion.h>
@@ -389,6 +391,9 @@
// 'inline'.
#if defined(__CUDACC__)
# define OIIO_FORCEINLINE __inline__
+#elif defined(__EDG__)
+# pragma diag_suppress 2189
+# define OIIO_FORCEINLINE inline __attribute__((always_inline))
#elif defined(__GNUC__) || defined(__clang__) || __has_attribute(always_inline)
# define OIIO_FORCEINLINE inline __attribute__((always_inline))
#elif defined(_MSC_VER) || defined(__INTEL_COMPILER)
@@ -582,6 +587,8 @@ inline void cpuid (int info[4], int infoType, int extra)
: "=a" (info[0]), "=r" (info[1]), "=c" (info[2]), "=d" (info[3])
: "0" (infoType), "2" (extra));
# endif
+#elif defined(__e2k__) && defined(__LCC__)
+ __cpuidex(info, infoType, extra);
#else
info[0] = 0; info[1] = 0; info[2] = 0; info[3] = 0;
#endif
diff --git a/src/include/OpenImageIO/simd.h b/src/include/OpenImageIO/simd.h
index fdada23..83832e8 100644
--- a/src/include/OpenImageIO/simd.h
+++ b/src/include/OpenImageIO/simd.h
@@ -71,7 +71,8 @@
// Cuda -- don't include any of these headers
#elif defined(_WIN32)
# include <intrin.h>
-#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) || defined(__e2k__)
+// e2k backend for Clang doesn't support x86 intrinsics and SIMD
+#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__) || (defined(__e2k__) && defined(__LCC__)))
# include <x86intrin.h>
#elif defined(__GNUC__) && defined(__ARM_NEON__)
# include <arm_neon.h>