[Pixman] [PATCH] Use a compile-time constant for the "K" constraint in the MMX detection.

Matt Turner mattst88 at gmail.com
Sun Jul 1 14:10:33 PDT 2012


On Sun, Jul 1, 2012 at 5:03 PM, Søren Sandman <sandmann at cs.au.dk> wrote:
> From: Søren Sandmann Pedersen <ssp at redhat.com>
>
> When compiling with -O0, gcc doesn't understand that in
>
>      signed char x = 0;
>
>      ...
>
>      asm ("...",
>           : "K" (x));
>
> x is constant. Fix this by using an immediate constant instead of a
> variable.
> ---
>  configure.ac |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 2b9d1ba..36f423e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -351,12 +351,11 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
>  int main () {
>      __m64 v = _mm_cvtsi32_si64 (1);
>      __m64 w;
> -    signed char x = 0;
>
>      /* Some versions of clang will choke on K */
>      asm ("pshufw %2, %1, %0\n\t"
>          : "=y" (w)
> -        : "y" (v), "K" (x)
> +        : "y" (v), "K" (5)
>      );
>
>      return _mm_cvtsi64_si32 (v);
> --
> 1.7.10.4

Seems like the smart thing to me.


More information about the Pixman mailing list