Title: [156919] trunk/Source/_javascript_Core
- Revision
- 156919
- Author
- [email protected]
- Date
- 2013-10-04 15:45:09 -0700 (Fri, 04 Oct 2013)
Log Message
FTL: Add support for ValueToInt32(bool(x))
https://bugs.webkit.org/show_bug.cgi?id=122346
Patch by Nadav Rotem <[email protected]> on 2013-10-04
Reviewed by Geoffrey Garen.
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (156918 => 156919)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-04 22:45:09 UTC (rev 156919)
@@ -1,3 +1,16 @@
+2013-10-04 Nadav Rotem <[email protected]>
+
+ FTL: Add support for ValueToInt32(bool(x))
+ https://bugs.webkit.org/show_bug.cgi?id=122346
+
+ Reviewed by Geoffrey Garen.
+
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileNode):
+ (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
+
2013-10-04 Oliver Hunt <[email protected]>
Build fix.
Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (156918 => 156919)
--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-04 22:45:09 UTC (rev 156919)
@@ -203,6 +203,10 @@
return CannotCompile;
}
break;
+ case ValueToInt32:
+ if (node->child1().useKind() != BooleanUse)
+ return CannotCompile;
+ break;
default:
// Don't know how to handle anything else.
return CannotCompile;
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (156918 => 156919)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-04 22:41:11 UTC (rev 156918)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-04 22:45:09 UTC (rev 156919)
@@ -437,6 +437,9 @@
case ForceOSRExit:
compileForceOSRExit();
break;
+ case ValueToInt32:
+ compileValueToInt32();
+ break;
default:
RELEASE_ASSERT_NOT_REACHED();
break;
@@ -453,6 +456,12 @@
return true;
}
+
+ void compileValueToInt32()
+ {
+ ASSERT(m_node->child1().useKind() == BooleanUse);
+ setInt32(m_out.zeroExt(lowBoolean(m_node->child1()), m_out.int32));
+ }
void compileUpsilon()
{
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes