Title: [157482] trunk/Source/_javascript_Core
- Revision
- 157482
- Author
- [email protected]
- Date
- 2013-10-15 20:59:12 -0700 (Tue, 15 Oct 2013)
Log Message
FTL: add support for Int52ToValue and fix putByVal of int52s.
https://bugs.webkit.org/show_bug.cgi?id=122873
Patch by Nadav Rotem <[email protected]> on 2013-10-15
Reviewed by Filip Pizlo.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileInt52ToValue):
(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (157481 => 157482)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-16 03:59:12 UTC (rev 157482)
@@ -1,3 +1,17 @@
+2013-10-15 Nadav Rotem <[email protected]>
+
+ FTL: add support for Int52ToValue and fix putByVal of int52s.
+ https://bugs.webkit.org/show_bug.cgi?id=122873
+
+ Reviewed by Filip Pizlo.
+
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileNode):
+ (JSC::FTL::LowerDFGToLLVM::compileInt52ToValue):
+ (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
+
2013-10-15 Filip Pizlo <[email protected]>
Get rid of the UNINTERRUPTED_SEQUENCE thing
Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (157481 => 157482)
--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-16 03:59:12 UTC (rev 157482)
@@ -95,6 +95,7 @@
case GetClosureVar:
case PutClosureVar:
case GetById:
+ case Int52ToValue:
// These are OK.
break;
case GetIndexedPropertyStorage:
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (157481 => 157482)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-16 03:10:46 UTC (rev 157481)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-16 03:59:12 UTC (rev 157482)
@@ -449,6 +449,9 @@
case ValueToInt32:
compileValueToInt32();
break;
+ case Int52ToValue:
+ compileInt52ToValue();
+ break;
default:
RELEASE_ASSERT_NOT_REACHED();
break;
@@ -471,7 +474,12 @@
ASSERT(m_node->child1().useKind() == BooleanUse);
setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
}
-
+
+ void compileInt52ToValue()
+ {
+ setJSValue(lowJSValue(m_node->child1()));
+ }
+
void compileUpsilon()
{
LValue destination = m_phis.get(m_node->phi());
@@ -1530,8 +1538,13 @@
if (isInt(type)) {
LValue intValue;
switch (child3.useKind()) {
+ case MachineIntUse:
case Int32Use: {
- intValue = lowInt32(child3);
+ if (child3.useKind() == Int32Use)
+ intValue = lowInt32(child3);
+ else
+ intValue = m_out.castToInt32(lowInt52(child3));
+
if (isClamped(type)) {
ASSERT(elementSize(type) == 1);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes