Bug 632162 - specify hardware vfp flags for armv7. r=blassey, a=blocking-fennec
authorVladimir Vukicevic <vladimir@pobox.com>
Mon, 07 Feb 2011 22:13:23 -0800
changeset 62128 6cfd4d2e8932478a2996516ae1451d7d6dbd56d8
parent 62127 26d3a5196a5e8f99f11db92c2e9887972d01dfd8
child 62129 18ba9b350dec4a80a2238e803734e5c0e19db339
push id18608
push userdougt@mozilla.com
push dateTue, 08 Feb 2011 06:12:27 +0000
treeherdermozilla-central@6cfd4d2e8932 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersblassey, blocking-fennec
bugs632162
milestone2.0b12pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 632162 - specify hardware vfp flags for armv7. r=blassey, a=blocking-fennec
configure.in
js/src/configure.in
--- a/configure.in
+++ b/configure.in
@@ -292,18 +292,18 @@ if test "$target" = "arm-android-eabi" ;
     CXX="$android_toolchain"/bin/arm-eabi-g++
     CPP="$android_toolchain"/bin/arm-eabi-cpp
     LD="$android_toolchain"/bin/arm-eabi-ld
     AR="$android_toolchain"/bin/arm-eabi-ar
     RANLIB="$android_toolchain"/bin/arm-eabi-ranlib
     STRIP="$android_toolchain"/bin/arm-eabi-strip
 
     CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
-    CFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions $CFLAGS"
-    CXXFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions $CXXFLAGS"
+    CFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CFLAGS"
+    CXXFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CXXFLAGS"
 
     dnl Add -llog by default, since we use it all over the place.
     dnl Add --allow-shlib-undefined, because libGLESv2 links to an
     dnl undefined symbol (present on the hardware, just not in the
     dnl NDK.)
     LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS"
 
     dnl prevent cross compile section from using these flags as host flags
@@ -7215,50 +7215,50 @@ if test -n "$MOZ_THUMB2"; then
   case "$target_cpu" in
     arm*)
       if test "$MOZ_ARM_ARCH" != "armv7"; then
         AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
       fi
       if test "$GNU_CC"; then
         AC_DEFINE(MOZ_THUMB2)
         AC_DEFINE(MOZ_ARM_ARCH)
-        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
-        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
-        ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
+        CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
       else
         AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
       fi
     ;;
     *)
       AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
     ;;
   esac
 elif test "$MOZ_ARM_ARCH" = "armv7"; then
   case "$target_cpu" in
     arm*)
       if test "$GNU_CC"; then
         AC_DEFINE(MOZ_ARM_ARCH)
-        CFLAGS="$CFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
-        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
-        ASFLAGS="$ASFLAGS -march=armv7-a -marm"
+        CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
       else
         AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
       fi
     ;;
     *)
       AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
     ;;
   esac
 else
   case "$target_cpu" in
     arm*)
       if test "$GNU_CC"; then
-        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
-        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
-        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
+        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
       fi
       ;;
   esac
 fi
 
 AC_SUBST(MOZ_THUMB2)
 AC_SUBST(MOZ_ARM_ARCH)
 
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -283,18 +283,18 @@ if test "$target" = "arm-android-eabi" ;
     CXX="$android_toolchain"/bin/arm-eabi-g++
     CPP="$android_toolchain"/bin/arm-eabi-cpp
     LD="$android_toolchain"/bin/arm-eabi-ld
     AR="$android_toolchain"/bin/arm-eabi-ar
     RANLIB="$android_toolchain"/bin/arm-eabi-ranlib
     STRIP="$android_toolchain"/bin/arm-eabi-strip
 
     CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
-    CFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CFLAGS"
-    CXXFLAGS="-mandroid -I$android_platform/usr/include -msoft-float -fno-short-enums -fno-exceptions -march=armv5te -mthumb-interwork $CXXFLAGS"
+    CFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CFLAGS"
+    CXXFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CXXFLAGS"
 
     dnl Add -llog by default, since we use it all over the place.
     dnl Add --allow-shlib-undefined, because libGLESv2 links to an
     dnl undefined symbol (present on the hardware, just not in the
     dnl NDK.)
     LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform -llog -Wl,--allow-shlib-undefined $LDFLAGS"
 
     dnl prevent cross compile section from using these flags as host flags
@@ -4676,50 +4676,50 @@ if test -n "$MOZ_THUMB2"; then
   case "$target_cpu" in
     arm*)
       if test "$MOZ_ARM_ARCH" != "armv7"; then
         AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
       fi
       if test "$GNU_CC"; then
         AC_DEFINE(MOZ_THUMB2)
         AC_DEFINE(MOZ_ARM_ARCH)
-        CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
-        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
-        ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
+        CFLAGS="$CFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        ASFLAGS="$ASFLAGS -march=armv7-a -mthumb -mfloat-abi=softfp -mfpu=vfpv3-d16"
       else
         AC_MSG_ERROR([--enable-thumb2 is not supported for non-GNU toolchains])
       fi
     ;;
     *)
       AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
     ;;
   esac
 elif test "$MOZ_ARM_ARCH" = "armv7"; then
   case "$target_cpu" in
     arm*)
       if test "$GNU_CC"; then
         AC_DEFINE(MOZ_ARM_ARCH)
-        CFLAGS="$CFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
-        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
-        ASFLAGS="$ASFLAGS -march=armv7-a -marm"
+        CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
+        ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp -mfpu=vfpv3-d16"
       else
         AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
       fi
     ;;
     *)
       AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
     ;;
   esac
 else
   case "$target_cpu" in
     arm*)
       if test "$GNU_CC"; then
-        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
-        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
-        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
+        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
       fi
       ;;
   esac
 fi
 
 AC_SUBST(MOZ_THUMB2)
 AC_SUBST(MOZ_ARM_ARCH)