Title: [157429] trunk/Source/_javascript_Core
- Revision
- 157429
- Author
- [email protected]
- Date
- 2013-10-14 16:30:37 -0700 (Mon, 14 Oct 2013)
Log Message
Add FTL support for LogicalNot(string)
https://bugs.webkit.org/show_bug.cgi?id=122765
Patch by Nadav Rotem <[email protected]> on 2013-10-14
Reviewed by Filip Pizlo.
This patch is tested by:
regress/script-tests/emscripten-cube2hash.js.ftl-eager
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileLogicalNot):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (157428 => 157429)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-14 23:26:45 UTC (rev 157428)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-14 23:30:37 UTC (rev 157429)
@@ -1,3 +1,18 @@
+2013-10-14 Nadav Rotem <[email protected]>
+
+ Add FTL support for LogicalNot(string)
+ https://bugs.webkit.org/show_bug.cgi?id=122765
+
+ Reviewed by Filip Pizlo.
+
+ This patch is tested by:
+ regress/script-tests/emscripten-cube2hash.js.ftl-eager
+
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileLogicalNot):
+
2013-10-14 Julien Brianceau <[email protected]>
[sh4] Fixes after r157404 and r157411.
Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (157428 => 157429)
--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-14 23:26:45 UTC (rev 157428)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2013-10-14 23:30:37 UTC (rev 157429)
@@ -189,6 +189,7 @@
case BooleanUse:
case Int32Use:
case NumberUse:
+ case StringUse:
case ObjectOrOtherUse:
break;
default:
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (157428 => 157429)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-14 23:26:45 UTC (rev 157428)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2013-10-14 23:30:37 UTC (rev 157429)
@@ -2109,6 +2109,11 @@
equalNullOrUndefined(
edge, CellCaseSpeculatesObject, SpeculateNullOrUndefined,
ManualOperandSpeculation));
+ case StringUse: {
+ LValue stringValue = lowString(m_node->child1());
+ LValue length = m_out.load32(stringValue, m_heaps.JSString_length);
+ return m_out.notEqual(length, m_out.int32Zero);
+ }
default:
RELEASE_ASSERT_NOT_REACHED();
return 0;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes