[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
