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