mcst-linux-kernel/patches-2024.06.26/pixman-0.42.2/0003-compiling-problem-sse-...

77 lines
2.1 KiB
Diff

--- a/pixman/pixman-mmx.c 2020-04-20 00:52:22.000000000 +0300
+++ b/pixman/pixman-mmx.c 2021-04-09 15:32:27.033137658 +0300
@@ -60,7 +60,7 @@
#endif
#ifdef USE_X86_MMX
-# if (defined(__SUNPRO_C) || defined(_MSC_VER) || defined(_WIN64))
+# if (defined(__SUNPRO_C) || defined(_MSC_VER) || defined(_WIN64)) || defined (__e2k__)
# include <xmmintrin.h>
# else
/* We have to compile with -msse to use xmmintrin.h, but that causes SSE
@@ -2081,7 +2081,7 @@
uint32_t byte_width;
uint8_t *byte_line;
-#if defined __GNUC__ && defined USE_X86_MMX
+#if defined __GNUC__ && defined USE_X86_MMX && !defined(__e2k__)
__m64 v1, v2, v3, v4, v5, v6, v7;
#endif
@@ -2115,7 +2115,7 @@
fill = ((uint64_t)filler << 32) | filler;
vfill = to_m64 (fill);
-#if defined __GNUC__ && defined USE_X86_MMX
+#if defined __GNUC__ && defined USE_X86_MMX && !defined(__e2k__)
__asm__ (
"movq %7, %0\n"
"movq %7, %1\n"
@@ -2161,7 +2161,7 @@
while (w >= 64)
{
-#if defined __GNUC__ && defined USE_X86_MMX
+#if defined __GNUC__ && defined USE_X86_MMX && !defined(__e2k__)
__asm__ (
"movq %1, (%0)\n"
"movq %2, 8(%0)\n"
@@ -3333,7 +3333,7 @@
while (w >= 64)
{
-#if (defined (__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))) && defined USE_X86_MMX
+#if (defined (__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))) && defined USE_X86_MMX && !defined(__e2k__)
__asm__ (
"movq (%1), %%mm0\n"
"movq 8(%1), %%mm1\n"
--- a/pixman/pixman-x86.c 2020-04-20 00:52:22.000000000 +0300
+++ b/pixman/pixman-x86.c 2021-04-09 12:34:36.118583275 +0300
@@ -43,7 +43,25 @@
X86_SSSE3 = (1 << 5)
} cpu_features_t;
-#ifdef HAVE_GETISAX
+
+#ifdef __e2k__
+
+static cpu_features_t
+detect_cpu_features (void)
+{
+ cpu_features_t features = 0;
+
+ features |= X86_CMOV;
+ features |= X86_MMX;
+ features |= X86_MMX_EXTENSIONS;
+ features |= X86_SSE;
+ features |= X86_SSE2;
+ features |= X86_SSSE3;
+
+ return features;
+}
+
+#elif defined(HAVE_GETISAX)
#include <sys/auxv.h>