Move _mm_empty() to correct place
authorDavid Müller <dave.mueller@gmx.ch>
Tue, 23 Sep 2008 11:45:51 +0000 (07:45 -0400)
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>
Tue, 23 Sep 2008 11:45:51 +0000 (07:45 -0400)
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

index 0f36436..6890f5f 100644 (file)
@@ -2357,11 +2357,11 @@ fbComposeSetupSSE2(void)
         pixman_composeFunctions.combineC[PIXMAN_OP_ADD] = sse2CombineAddC;
 
         pixman_composeFunctions.combineMaskU = sse2CombineMaskU;
+
+       _mm_empty();
     }
 
     initialized = TRUE;
-
-    _mm_empty();
 }