From: Søren Sandmann Pedersen Date: Sat, 18 Jul 2009 21:59:43 +0000 (-0400) Subject: Align the stack in _pixman_implementation_create_sse2() X-Git-Tag: 1.0_branch~849 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=54cad29dc55fc0a670bf87abacd5f45e1289db54;p=profile%2Fivi%2Fpixman.git 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. --- 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) {