Changeset 207999 in webkit
- Timestamp:
- Oct 27, 2016 1:00:38 PM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207967 r207999 1 2016-10-27 Yusuke Suzuki <utatane.tea@gmail.com> 2 3 [DOMJIT][CSSJIT] Share code with DOMJIT 4 https://bugs.webkit.org/show_bug.cgi?id=164006 5 6 Reviewed by Mark Lam. 7 8 Move CSSJIT's getDocument function to DOMJIT and share it with DOMJIT. 9 And rename it to "loadDocument", it is closer name to the JSC's convention. 10 11 No behavior change. 12 13 * cssjit/SelectorCompiler.cpp: 14 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded): 15 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching): 16 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName): 17 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsRoot): 18 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot): 19 (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget): 20 (WebCore::SelectorCompiler::getDocument): Deleted. 21 * domjit/DOMJITHelpers.h: 22 (WebCore::DOMJIT::loadDocument): 23 * domjit/JSNodeDOMJIT.cpp: 24 (WebCore::NodeOwnerDocumentDOMJIT::callDOM): 25 1 26 2016-10-27 Youenn Fablet <youenn@apple.com> 2 27 -
trunk/Source/WebCore/cssjit/SelectorCompiler.cpp
r207536 r207999 32 32 #include "CSSSelector.h" 33 33 #include "CSSSelectorList.h" 34 #include "DOMJITHelpers.h" 34 35 #include "Element.h" 35 36 #include "ElementData.h" … … 2312 2313 } 2313 2314 2314 static void getDocument(Assembler& assembler, Assembler::RegisterID element, Assembler::RegisterID output)2315 {2316 assembler.loadPtr(Assembler::Address(element, Node::treeScopeMemoryOffset()), output);2317 assembler.loadPtr(Assembler::Address(output, TreeScope::documentScopeMemoryOffset()), output);2318 }2319 2320 2315 void SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded(Assembler::JumpList& failureCases, const SelectorFragment& fragment) 2321 2316 { … … 2327 2322 static_assert(sizeof(DocumentCompatibilityMode) == 1, "We generate a byte load/test for the compatibility mode."); 2328 2323 LocalRegister documentAddress(m_registerAllocator); 2329 getDocument(m_assembler, elementAddressRegister, documentAddress);2324 DOMJIT::loadDocument(m_assembler, elementAddressRegister, documentAddress); 2330 2325 failureCases.append(m_assembler.branchTest8(Assembler::NonZero, Assembler::Address(documentAddress, Document::compatibilityModeMemoryOffset()), Assembler::TrustedImm32(static_cast<std::underlying_type<DocumentCompatibilityMode>::type>(DocumentCompatibilityMode::QuirksMode)))); 2331 2326 … … 2993 2988 { 2994 2989 LocalRegister document(m_registerAllocator); 2995 getDocument(m_assembler, elementAddressRegister, document);2990 DOMJIT::loadDocument(m_assembler, elementAddressRegister, document); 2996 2991 failureCases.append(testIsHTMLClassOnDocument(Assembler::Zero, m_assembler, document)); 2997 2992 } … … 3423 3418 { 3424 3419 LocalRegister document(m_registerAllocator); 3425 getDocument(m_assembler, elementAddressRegister, document);3420 DOMJIT::loadDocument(m_assembler, elementAddressRegister, document); 3426 3421 caseSensitiveCases.append(testIsHTMLClassOnDocument(Assembler::Zero, m_assembler, document)); 3427 3422 } … … 3781 3776 { 3782 3777 LocalRegister document(m_registerAllocator); 3783 getDocument(m_assembler, elementAddressRegister, document);3778 DOMJIT::loadDocument(m_assembler, elementAddressRegister, document); 3784 3779 failureCases.append(m_assembler.branchPtr(Assembler::NotEqual, Assembler::Address(document, Document::documentElementMemoryOffset()), elementAddressRegister)); 3785 3780 } … … 3795 3790 Assembler::Jump scopeIsNotNull = m_assembler.branchTestPtr(Assembler::NonZero, scope); 3796 3791 3797 getDocument(m_assembler, elementAddressRegister, scope);3792 DOMJIT::loadDocument(m_assembler, elementAddressRegister, scope); 3798 3793 m_assembler.loadPtr(Assembler::Address(scope, Document::documentElementMemoryOffset()), scope); 3799 3794 … … 3805 3800 { 3806 3801 LocalRegister document(m_registerAllocator); 3807 getDocument(m_assembler, elementAddressRegister, document);3802 DOMJIT::loadDocument(m_assembler, elementAddressRegister, document); 3808 3803 failureCases.append(m_assembler.branchPtr(Assembler::NotEqual, Assembler::Address(document, Document::cssTargetMemoryOffset()), elementAddressRegister)); 3809 3804 } -
trunk/Source/WebCore/domjit/DOMJITHelpers.h
r207787 r207999 38 38 using JSC::GPRReg; 39 39 using JSC::JSValueRegs; 40 using JSC::MacroAssembler; 41 42 static_assert(std::is_same<GPRReg, MacroAssembler::RegisterID>::value, "GPRReg is the alias to the MacroAssembler::RegisterID"); 40 43 41 44 inline CCallHelpers::Jump branchIfNotWorldIsNormal(CCallHelpers& jit, GPRReg globalObject) … … 138 141 } 139 142 143 inline void loadDocument(MacroAssembler& jit, GPRReg node, GPRReg output) 144 { 145 jit.loadPtr(CCallHelpers::Address(node, Node::treeScopeMemoryOffset()), output); 146 jit.loadPtr(CCallHelpers::Address(output, TreeScope::documentScopeMemoryOffset()), output); 147 } 148 140 149 } } 141 150 -
trunk/Source/WebCore/domjit/JSNodeDOMJIT.cpp
r207932 r207999 207 207 notDocument.link(&jit); 208 208 jit.loadPtr(CCallHelpers::Address(node, JSNode::offsetOfWrapped()), scratch); 209 jit.loadPtr(CCallHelpers::Address(scratch, Node::treeScopeMemoryOffset()), scratch); 210 jit.loadPtr(CCallHelpers::Address(scratch, TreeScope::documentScopeMemoryOffset()), scratch); 211 209 DOMJIT::loadDocument(jit, scratch, scratch); 212 210 DOMJIT::toWrapper<Document>(jit, params, scratch, globalObject, result, toWrapperSlow<Document>, globalObjectValue); 213 211 done.link(&jit);
Note: See TracChangeset
for help on using the changeset viewer.