1.1 --- a/configure.in Thu Oct 31 14:00:28 2019 +0300
1.2 +++ b/configure.in Thu Oct 31 14:00:28 2019 +0300
1.3 @@ -929,6 +929,44 @@
1.4 fi
1.5 }
1.6
1.7 +dnl Check for ARM NEON instruction support using gas syntax
1.8 +CheckNEON()
1.9 +{
1.10 + AC_ARG_ENABLE(arm-neon,
1.11 +AC_HELP_STRING([--enable-arm-neon], [use NEON assembly blitters on ARM [[default=yes]]]),
1.12 + enable_arm_neon=$enableval, enable_arm_neon=yes)
1.13 + if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_neon = xyes; then
1.14 + save_CFLAGS="$CFLAGS"
1.15 + have_arm_neon=no
1.16 + CFLAGS="-x assembler-with-cpp $CFLAGS"
1.17 +
1.18 + AC_MSG_CHECKING(for ARM NEON)
1.19 + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
1.20 + .text
1.21 + .fpu neon
1.22 + .arch armv7a
1.23 + .object_arch armv4
1.24 + .eabi_attribute 10, 0
1.25 + .arm
1.26 + .altmacro
1.27 + #ifndef __ARM_EABI__
1.28 + #error EABI is required (to be sure that calling conventions are compatible)
1.29 + #endif
1.30 + pld [r0]
1.31 + vmovn.u16 d0, q0
1.32 + ]])], have_arm_neon=yes)
1.33 + AC_MSG_RESULT($have_arm_neon)
1.34 +
1.35 + CFLAGS="$save_CFLAGS"
1.36 +
1.37 + if test x$have_arm_neon = xyes; then
1.38 + AC_DEFINE(SDL_ARM_NEON_BLITTERS)
1.39 +dnl SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.c"
1.40 + SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.S"
1.41 + fi
1.42 + fi
1.43 +}
1.44 +
1.45 dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
1.46 dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
1.47 CheckVisibilityHidden()
1.48 @@ -2473,6 +2511,7 @@
1.49 CheckNASM
1.50 CheckAltivec
1.51 CheckARM
1.52 + CheckNEON
1.53 CheckOSS
1.54 CheckDMEDIA
1.55 CheckMME