# HG changeset patch # User Joop Boonen # Parent 5f38d3aa0414fe0ac7ff1f0b47da44069e7ccdda Add configure option to allow disabling of neon. diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in @@ -1726,41 +1726,47 @@ if test -n "$all_flags"; then ASFLAGS="$ASFLAGS $all_flags" if test -n "$thumb_flag"; then LDFLAGS="$LDFLAGS $thumb_flag" fi fi AC_SUBST(MOZ_THUMB2) -if test "$CPU_ARCH" = "arm"; then - AC_MSG_CHECKING(for ARM SIMD support in compiler) - # We try to link so that this also fails when - # building with LTO. - AC_TRY_LINK([], +MOZ_ARG_DISABLE_BOOL(neon, +[ --disable-neon Disable neon extensions], + NS_DISABLE_NEON=1, + NS_DISABLE_NEON= ) +if test "$NS_DISABLE_NEON" != "1"; then + if test "$CPU_ARCH" = "arm"; then + AC_MSG_CHECKING(for ARM SIMD support in compiler) + # We try to link so that this also fails when + # building with LTO. + AC_TRY_LINK([], [asm("uqadd8 r1, r1, r2");], result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then + AC_MSG_RESULT("$result") + if test "$result" = "yes"; then AC_DEFINE(HAVE_ARM_SIMD) HAVE_ARM_SIMD=1 - fi - - AC_MSG_CHECKING(for ARM NEON support in compiler) - # We try to link so that this also fails when - # building with LTO. - AC_TRY_LINK([], + fi + + AC_MSG_CHECKING(for ARM NEON support in compiler) + # We try to link so that this also fails when + # building with LTO. + AC_TRY_LINK([], [asm(".fpu neon\n vadd.i8 d0, d0, d0");], result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then + AC_MSG_RESULT("$result") + if test "$result" = "yes"; then AC_DEFINE(HAVE_ARM_NEON) HAVE_ARM_NEON=1 - fi -fi # CPU_ARCH = arm + fi + fi # CPU_ARCH = arm +fi AC_SUBST(HAVE_ARM_SIMD) AC_SUBST(HAVE_ARM_NEON) dnl ================================================================= dnl Set up and test static assertion macros used to avoid AC_TRY_RUN, dnl which is bad when cross compiling. dnl ================================================================= diff --git a/js/src/configure.in b/js/src/configure.in --- a/js/src/configure.in +++ b/js/src/configure.in @@ -1664,41 +1664,47 @@ if test -n "$all_flags"; then ASFLAGS="$ASFLAGS $all_flags" if test -n "$thumb_flag"; then LDFLAGS="$LDFLAGS $thumb_flag" fi fi AC_SUBST(MOZ_THUMB2) -if test "$CPU_ARCH" = "arm"; then - AC_MSG_CHECKING(for ARM SIMD support in compiler) - # We try to link so that this also fails when - # building with LTO. - AC_TRY_LINK([], +MOZ_ARG_DISABLE_BOOL(neon, +[ --disable-neon Disable neon extensions], + NS_DISABLE_NEON=1, + NS_DISABLE_NEON= ) +if test "$NS_DISABLE_NEON" != "1"; then + if test "$CPU_ARCH" = "arm"; then + AC_MSG_CHECKING(for ARM SIMD support in compiler) + # We try to link so that this also fails when + # building with LTO. + AC_TRY_LINK([], [asm("uqadd8 r1, r1, r2");], result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then + AC_MSG_RESULT("$result") + if test "$result" = "yes"; then AC_DEFINE(HAVE_ARM_SIMD) HAVE_ARM_SIMD=1 - fi - - AC_MSG_CHECKING(for ARM NEON support in compiler) - # We try to link so that this also fails when - # building with LTO. - AC_TRY_LINK([], + fi + + AC_MSG_CHECKING(for ARM NEON support in compiler) + # We try to link so that this also fails when + # building with LTO. + AC_TRY_LINK([], [asm(".fpu neon\n vadd.i8 d0, d0, d0");], result="yes", result="no") - AC_MSG_RESULT("$result") - if test "$result" = "yes"; then + AC_MSG_RESULT("$result") + if test "$result" = "yes"; then AC_DEFINE(HAVE_ARM_NEON) HAVE_ARM_NEON=1 - fi -fi # CPU_ARCH = arm + fi + fi # CPU_ARCH = arm +fi AC_SUBST(HAVE_ARM_SIMD) AC_SUBST(HAVE_ARM_NEON) dnl ================================================================= dnl Set up and test static assertion macros used to avoid AC_TRY_RUN, dnl which is bad when cross compiling. dnl =================================================================