Title: [211257] branches/safari-603-branch/Source/_javascript_Core
Revision
211257
Author
matthew_han...@apple.com
Date
2017-01-27 00:01:15 -0800 (Fri, 27 Jan 2017)

Log Message

Merge r211167. rdar://problem/30192652

Modified Paths

Diff

Modified: branches/safari-603-branch/Source/_javascript_Core/ChangeLog (211256 => 211257)


--- branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-01-27 07:14:47 UTC (rev 211256)
+++ branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-01-27 08:01:15 UTC (rev 211257)
@@ -1,5 +1,23 @@
 2017-01-26  Matthew Hanson  <matthew_han...@apple.com>
 
+        Merge r211167. rdar://problem/30192652
+
+    2017-01-25  Filip Pizlo  <fpi...@apple.com>
+
+            ARM/ARM64 stress/atomics-store-return.js fails
+            <rdar://problem/30192652>
+
+            Reviewed by Michael Saboff.
+
+            The problem was relying on double->int casts for anything. We need to use toInt32().
+
+            * runtime/AtomicsObject.cpp:
+            (JSC::atomicsFuncCompareExchange):
+            (JSC::atomicsFuncExchange):
+            (JSC::atomicsFuncStore):
+
+2017-01-26  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r211180. rdar://problem/30156092
 
     2017-01-25  Matthew Hanson  <matthew_han...@apple.com>

Modified: branches/safari-603-branch/Source/_javascript_Core/runtime/AtomicsObject.cpp (211256 => 211257)


--- branches/safari-603-branch/Source/_javascript_Core/runtime/AtomicsObject.cpp	2017-01-27 07:14:47 UTC (rev 211256)
+++ branches/safari-603-branch/Source/_javascript_Core/runtime/AtomicsObject.cpp	2017-01-27 08:01:15 UTC (rev 211257)
@@ -209,8 +209,8 @@
     return atomicOperationWithArgs<2>(
         exec, [&] (auto* ptr, const double* args) {
             typedef typename std::remove_pointer<decltype(ptr)>::type T;
-            T expected = static_cast<T>(args[0]);
-            T newValue = static_cast<T>(args[1]);
+            T expected = static_cast<T>(toInt32(args[0]));
+            T newValue = static_cast<T>(toInt32(args[1]));
             return jsNumber(WTF::atomicCompareExchangeStrong(ptr, expected, newValue));
         });
 }
@@ -220,7 +220,7 @@
     return atomicOperationWithArgs<1>(
         exec, [&] (auto* ptr, const double* args) {
             typedef typename std::remove_pointer<decltype(ptr)>::type T;
-            return jsNumber(WTF::atomicExchange(ptr, static_cast<T>(args[0])));
+            return jsNumber(WTF::atomicExchange(ptr, static_cast<T>(toInt32(args[0]))));
         });
 }
 
@@ -268,7 +268,7 @@
         exec, [&] (auto* ptr, const double* args) {
             typedef typename std::remove_pointer<decltype(ptr)>::type T;
             double valueAsInt = args[0];
-            T valueAsT = static_cast<T>(valueAsInt);
+            T valueAsT = static_cast<T>(toInt32(valueAsInt));
             WTF::atomicStore(ptr, valueAsT);
             return jsNumber(valueAsInt);
         });
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to