summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>2010-02-18 14:30:01 +0900
committerSøren Sandmann Pedersen <sandmann@redhat.com>2010-02-18 13:09:08 -0500
commit61f4ed9c7a3ff6afbbb42d3f3b8dc3b9331bdcbd (patch)
treed7e6779d7d40445aa6ed7ec73909c6fd4bcf827f
parentd7e281e0a1f7b1aecd245070736e03d2953b0911 (diff)
Compile by USE_SSE2 only without USE_MMX
Although we added MMX emulation for Microsoft Visual C++ compiler for x64, USE_SSE2 still requires USE_MMX. So we remove dependency of USE_MMX for Windows x64. Signed-off-by: Makoto Kato <m_kato@ga2.so-net.ne.jp>
-rw-r--r--pixman/pixman-cpu.c2
-rw-r--r--pixman/pixman-sse2.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/pixman/pixman-cpu.c b/pixman/pixman-cpu.c
index d727ddb..e96b140 100644
--- a/pixman/pixman-cpu.c
+++ b/pixman/pixman-cpu.c
@@ -309,7 +309,7 @@ pixman_have_arm_neon (void)
#endif /* USE_ARM_SIMD || USE_ARM_NEON */
-#ifdef USE_MMX
+#if defined(USE_MMX) || defined(USE_SSE2)
/* The CPU detection code needs to be in a file not compiled with
* "-mmmx -msse", as gcc would generate CMOV instructions otherwise
* that would lead to SIGILL instructions on old CPUs that don't have
diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
index 2bade74..f69de0b 100644
--- a/pixman/pixman-sse2.c
+++ b/pixman/pixman-sse2.c
@@ -5955,8 +5955,12 @@ __attribute__((__force_align_arg_pointer__))
pixman_implementation_t *
_pixman_implementation_create_sse2 (void)
{
- pixman_implementation_t *mmx = _pixman_implementation_create_mmx ();
- pixman_implementation_t *imp = _pixman_implementation_create (mmx);
+#ifdef USE_MMX
+ pixman_implementation_t *fallback = _pixman_implementation_create_mmx ();
+#else
+ pixman_implementation_t *fallback = _pixman_implementation_create_fast_path ();
+#endif
+ pixman_implementation_t *imp = _pixman_implementation_create (fallback);
/* SSE2 constants */
mask_565_r = create_mask_2x32_128 (0x00f80000, 0x00f80000);