From 54cad29dc55fc0a670bf87abacd5f45e1289db54 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Sat, 18 Jul 2009 17:59:43 -0400 Subject: [PATCH] Align the stack in _pixman_implementation_create_sse2() When compiled without optimization, GCC will place various temporaries on the stack. Since Firefox sometimes causes the stack to be aligned to four bytes, this causes movdqa to generate faults. --- pixman/pixman-sse2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c index cb3daf2..6ee333f 100644 --- a/pixman/pixman-sse2.c +++ b/pixman/pixman-sse2.c @@ -629,8 +629,7 @@ core_combine_over_u_sse2 (uint32_t* pd, cache_prefetch ((__m128i*)pm); /* Align dst on a 16-byte boundary */ - while (w && - ((unsigned long)pd & 15)) + while (w && ((unsigned long)pd & 15)) { d = *pd; s = combine1 (ps, pm); @@ -5625,6 +5624,9 @@ sse2_fill (pixman_implementation_t *imp, return TRUE; } +#if defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) +__attribute__((__force_align_arg_pointer__)) +#endif pixman_implementation_t * _pixman_implementation_create_sse2 (void) { -- 2.7.4