[email protected] writes:

> diff --git a/configure.ac b/configure.ac
> index 4c62102..3123ad9 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -540,6 +540,54 @@ if test $enable_arm_neon = yes && test $have_arm_neon = 
> no ; then
>     AC_MSG_ERROR([ARM NEON intrinsics not detected])
>  fi
>  
> +dnl 
> ===========================================================================
> +dnl Check for IWMMXT
> +
> +if test "x$IWMMXT_CFLAGS" = "x" ; then
> +   IWMMXT_CFLAGS="-march=iwmmxt -flax-vector-conversions -Winline"
> +fi
> +
> +have_iwmmxt_intrinsics=no
> +AC_MSG_CHECKING(whether to use ARM IWMMXT intrinsics)
> +xserver_save_CFLAGS=$CFLAGS
> +CFLAGS="$IWMMXT_CFLAGS $CFLAGS"
> +AC_COMPILE_IFELSE([
> +#if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 
> 4))
> +error "Need GCC >= 3.4 for IWMMXT intrinsics"
> +#endif

As mentioned, we probably need a check for 4.7 here. The check for 3.4
is only there because that was the first version of GCC to generate MMX
code that wasn't completely broken.

> -#endif /* USE_ARM_SIMD || USE_ARM_NEON */
> +#endif /* USE_ARM_SIMD || USE_ARM_NEON || USE_ARM_IWMMXT */
>  
>  #if defined(USE_MMX) || defined(USE_SSE2)
>  /* The CPU detection code needs to be in a file not compiled with
> @@ -600,6 +613,11 @@ _pixman_choose_implementation (void)
>      if (pixman_have_arm_neon ())
>       imp = _pixman_implementation_create_arm_neon (imp);
>  #endif
> +
> +#ifdef USE_ARM_IWMMXT
> +    if (pixman_have_arm_iwmmxt ())
> +     imp = _pixman_implementation_create_mmx (imp);
> +#endif

It looks like iwmmxt is selected ahead of NEON if both are present
(which seems to be the case for Marvell 628). I might be wrong, but my
suspicion would be that NEON is the better choice in that case.


Soren
_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to