summaryrefslogtreecommitdiff
path: root/x11/pixman/patches/patch-ah
diff options
context:
space:
mode:
Diffstat (limited to 'x11/pixman/patches/patch-ah')
-rw-r--r--x11/pixman/patches/patch-ah32
1 files changed, 32 insertions, 0 deletions
diff --git a/x11/pixman/patches/patch-ah b/x11/pixman/patches/patch-ah
new file mode 100644
index 00000000000..04974c67d18
--- /dev/null
+++ b/x11/pixman/patches/patch-ah
@@ -0,0 +1,32 @@
+$NetBSD: patch-ah,v 1.1 2008/10/15 00:56:45 bjs Exp $
+
+
+1c5de7b05831b3d66821707276b71974a232f5c7
+
+Move _mm_empty() to correct place
+
+The "fbComposeSetupSSE2()" function is guarding most of its code
+depending on the capabilities of the CPU, but unfortunately the call
+to "_mm_empty()" is not part of this code path but executed
+unconditionally. This results in a "illegal instruction" crash on
+non-MMX / non-SSE capable CPUs caused by the the "emms" instruction
+(embedded in "_mm_empty()").
+
+Fix bug 17729.
+
+--- pixman/pixman-sse2.c.orig 2008-09-17 09:50:49.000000000 -0400
++++ pixman/pixman-sse2.c
+@@ -2357,11 +2357,11 @@ fbComposeSetupSSE2(void)
+ pixman_composeFunctions.combineC[PIXMAN_OP_ADD] = sse2CombineAddC;
+
+ pixman_composeFunctions.combineMaskU = sse2CombineMaskU;
++
++ _mm_empty();
+ }
+
+ initialized = TRUE;
+-
+- _mm_empty();
+ }
+
+