Don't require GCC 4.2 on x86-64
authorSøren Sandmann Pedersen <sandmann@daimi.au.dk>
Tue, 22 Jul 2008 02:06:02 +0000 (22:06 -0400)
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>
Tue, 22 Jul 2008 02:06:02 +0000 (22:06 -0400)
configure.ac
pixman/pixman-pict.c

index 6dcffb1..13563ed 100644 (file)
@@ -224,7 +224,9 @@ CFLAGS="$CFLAGS -msse2 $SSE_CFLAGS"
 
 AC_COMPILE_IFELSE([
 #if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
-#error "Need GCC >= 4.2 for SSE2 intrinsics"
+#   if !defined(__amd64__) && !defined(__x86_64__)
+#      error "Need GCC >= 4.2 for SSE2 intrinsics on x86"
+#   endif
 #endif
 #include <mmintrin.h>
 #include <xmmintrin.h>
index 806e380..b918219 100644 (file)
@@ -1703,7 +1703,7 @@ pixman_optimize_operator(pixman_op_t op, pixman_image_t *pSrc, pixman_image_t *p
 
 }
 
-#if defined(USE_SSE2) && defined (__GNUC__)
+#if defined(USE_SSE2) && defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__)
 
 /*
  * Work around GCC bug causing crashes in Mozilla with SSE2
@@ -1715,6 +1715,9 @@ pixman_optimize_operator(pixman_op_t op, pixman_image_t *pSrc, pixman_image_t *p
  * The __force_align_arg_pointer__ makes gcc generate a prologue that
  * realigns the stack pointer to 16 bytes.
  *
+ * On x86-64 this is not necessary because the standard ABI already
+ * calls for a 16 byte aligned stack.
+ *
  * See https://bugs.freedesktop.org/show_bug.cgi?id=15693
  */