WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
the patch
blah.patch (text/plain), 4.27 KB, created by
Filip Pizlo
on 2013-05-10 11:44:47 PDT
(
hide
)
Description:
the patch
Filename:
MIME Type:
Creator:
Filip Pizlo
Created:
2013-05-10 11:44:47 PDT
Size:
4.27 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 149895) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,21 @@ >+2013-05-10 Filip Pizlo <fpizlo@apple.com> >+ >+ fourthTier: FTL should support LogicalNot >+ https://bugs.webkit.org/show_bug.cgi?id=115924 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * ftl/FTLAbbreviations.h: >+ (JSC::FTL::buildNot): >+ * ftl/FTLCapabilities.cpp: >+ (JSC::FTL::canCompile): >+ * ftl/FTLLowerDFGToLLVM.cpp: >+ (JSC::FTL::LowerDFGToLLVM::compileNode): >+ (JSC::FTL::LowerDFGToLLVM::compileLogicalNot): >+ (LowerDFGToLLVM): >+ * ftl/FTLOutput.h: >+ (JSC::FTL::Output::bitNot): >+ > 2013-05-10 Filip Pizlo <fpizlo@apple.com> > > fourthTier: FTL should support CompareGreater, CompareLessEq, and CompareGreaterEq >Index: Source/JavaScriptCore/ftl/FTLAbbreviations.h >=================================================================== >--- Source/JavaScriptCore/ftl/FTLAbbreviations.h (revision 149890) >+++ Source/JavaScriptCore/ftl/FTLAbbreviations.h (working copy) >@@ -195,6 +195,7 @@ static inline LValue buildXor(LBuilder b > static inline LValue buildShl(LBuilder builder, LValue left, LValue right) { return LLVMBuildShl(builder, left, right, ""); } > static inline LValue buildAShr(LBuilder builder, LValue left, LValue right) { return LLVMBuildAShr(builder, left, right, ""); } > static inline LValue buildLShr(LBuilder builder, LValue left, LValue right) { return LLVMBuildLShr(builder, left, right, ""); } >+static inline LValue buildNot(LBuilder builder, LValue value) { return LLVMBuildNot(builder, value, ""); } > static inline LValue buildLoad(LBuilder builder, LValue pointer) { return LLVMBuildLoad(builder, pointer, ""); } > static inline LValue buildStore(LBuilder builder, LValue value, LValue pointer) { return LLVMBuildStore(builder, value, pointer); } > static inline LValue buildZExt(LBuilder builder, LValue value, LType type) { return LLVMBuildZExt(builder, value, type, ""); } >Index: Source/JavaScriptCore/ftl/FTLCapabilities.cpp >=================================================================== >--- Source/JavaScriptCore/ftl/FTLCapabilities.cpp (revision 149892) >+++ Source/JavaScriptCore/ftl/FTLCapabilities.cpp (working copy) >@@ -146,6 +146,7 @@ bool canCompile(Graph& graph) > break; > return false; > case Branch: >+ case LogicalNot: > if (node->child1().useKind() == BooleanUse) > break; > return false; >Index: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp >=================================================================== >--- Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp (revision 149892) >+++ Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp (working copy) >@@ -373,6 +373,9 @@ private: > case CompareGreaterEq: > compileCompareGreaterEq(); > break; >+ case LogicalNot: >+ compileLogicalNot(); >+ break; > case Branch: > compileBranch(); > break; >@@ -1040,6 +1043,20 @@ private: > RELEASE_ASSERT_NOT_REACHED(); > } > >+ void compileLogicalNot() >+ { >+ switch (m_node->child1().useKind()) { >+ case BooleanUse: { >+ m_booleanValues.add(m_node, m_out.bitNot(lowBoolean(m_node->child1()))); >+ break; >+ } >+ >+ default: >+ RELEASE_ASSERT_NOT_REACHED(); >+ break; >+ } >+ } >+ > void compileBranch() > { > switch (m_node->child1().useKind()) { >Index: Source/JavaScriptCore/ftl/FTLOutput.h >=================================================================== >--- Source/JavaScriptCore/ftl/FTLOutput.h (revision 149890) >+++ Source/JavaScriptCore/ftl/FTLOutput.h (working copy) >@@ -138,6 +138,7 @@ public: > LValue shl(LValue left, LValue right) { return buildShl(m_builder, left, right); } > LValue aShr(LValue left, LValue right) { return buildAShr(m_builder, left, right); } > LValue lShr(LValue left, LValue right) { return buildLShr(m_builder, left, right); } >+ LValue bitNot(LValue value) { return buildNot(m_builder, value); } > > LValue addWithOverflow32(LValue left, LValue right) > {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mhahnenberg
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 115924
: 201370