Disable usage of fused multiply-add instructions for JSC with compiler flag
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 May 2018 11:58:50 +0000 (11:58 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 3 May 2018 11:58:50 +0000 (11:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=184909

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.

Adds -ffp-contract as compiler flag for building JSC. This ensures that functions
like parseInt() do not return slightly different results depending on whether the
compiler was able to use fused multiply-add instructions or not.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231301 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/ChangeLog

index b78c037..9a85501 100644 (file)
@@ -1179,6 +1179,12 @@ endif ()
 WEBKIT_FRAMEWORK_DECLARE(JavaScriptCore)
 WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
 
+if (COMPILER_IS_GCC_OR_CLANG)
+    # Avoid using fused multiply-add instructions since this could give different results
+    # for e.g. parseInt depending on the platform and compilation flags.
+    WEBKIT_ADD_TARGET_CXX_FLAGS(JavaScriptCore -ffp-contract=off)
+endif ()
+
 WEBKIT_MAKE_FORWARDING_HEADERS(JavaScriptCore
     FILES ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS}
     FLATTENED
index 20a76ab..2470668 100644 (file)
@@ -1,3 +1,16 @@
+2018-05-03  Dominik Infuehr  <dinfuehr@igalia.com>
+
+        Disable usage of fused multiply-add instructions for JSC with compiler flag
+        https://bugs.webkit.org/show_bug.cgi?id=184909
+
+        Reviewed by Yusuke Suzuki.
+
+        Adds -ffp-contract as compiler flag for building JSC. This ensures that functions
+        like parseInt() do not return slightly different results depending on whether the
+        compiler was able to use fused multiply-add instructions or not.
+
+        * CMakeLists.txt:
+
 2018-05-02  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         Unreviewed, fix build failure in ARM, ARMv7 and MIPS