[babl] only enable sse-fixups when not on 64bit



commit c5b3e247f18bcb37b188d370b25c1f40bcb8f991
Author: Ãyvind KolÃs <pippin gimp org>
Date:   Wed May 2 23:48:54 2012 +0200

    only enable sse-fixups when not on 64bit

 babl/babl-cpuaccel.c    |    4 ++++
 babl/babl-cpuaccel.h    |    3 ++-
 extensions/sse-fixups.c |    3 ++-
 tests/float-to-8bit.c   |    5 +++++
 4 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/babl/babl-cpuaccel.c b/babl/babl-cpuaccel.c
index ee12fd6..287c41e 100644
--- a/babl/babl-cpuaccel.c
+++ b/babl/babl-cpuaccel.c
@@ -490,6 +490,10 @@ cpu_accel (void)
 
   accel = arch_accel ();
 
+#if defined(ARCH_X86_64)
+  accel |= BABL_CPU_ACCEL_X86;
+#endif
+
   return (BablCpuAccelFlags) accel;
 
 #else /* !HAVE_ACCEL */
diff --git a/babl/babl-cpuaccel.h b/babl/babl-cpuaccel.h
index c95af91..e701e2a 100644
--- a/babl/babl-cpuaccel.h
+++ b/babl/babl-cpuaccel.h
@@ -32,7 +32,8 @@ typedef enum
   BABL_CPU_ACCEL_X86_SSE3    = 0x02000000,
 
   /* powerpc accelerations */
-  BABL_CPU_ACCEL_PPC_ALTIVEC = 0x04000000
+  BABL_CPU_ACCEL_PPC_ALTIVEC = 0x04000000,
+  BABL_CPU_ACCEL_X86_64      = 0x00100000
 } BablCpuAccelFlags;
 
 
diff --git a/extensions/sse-fixups.c b/extensions/sse-fixups.c
index b44bb5e..fdcc06f 100644
--- a/extensions/sse-fixups.c
+++ b/extensions/sse-fixups.c
@@ -228,7 +228,8 @@ init (void)
     NULL);
 
   if ((babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_MMX) &&
-      (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE))
+      (babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_SSE) &&
+      !(babl_cpu_accel_get_support () & BABL_CPU_ACCEL_X86_64))
     {
       o (rgbaF_linear, rgb8_linear);
       o (rgbaF_linear, rgba8_linear);
diff --git a/tests/float-to-8bit.c b/tests/float-to-8bit.c
index f415e96..17300a3 100644
--- a/tests/float-to-8bit.c
+++ b/tests/float-to-8bit.c
@@ -31,7 +31,11 @@ main (int    argc,
 {
   int OK = 1;
   babl_init ();
+  int i = 0;
 
+  
+  for (i = 0; i < 400000; i++)
+  {
   {
     float in[][4]   = {{ 0.21582, -0.55, -0.14, 1.0 }, {0.2, 0.3, 0.5, 0.6}, {0.0, 1.0, 2.0, 3.0}};
     unsigned char out[][4]  = {{ 55, 0, 0, 255 }, {51,77,128,153}, {0,255,255,255}};
@@ -91,6 +95,7 @@ main (int    argc,
         babl_format("R'G'B'A u8"),
         in, out);
   }
+  }
 
   babl_exit ();
   return !OK;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]