Changeset 278030 in webkit for trunk/Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp
- Timestamp:
- May 25, 2021, 11:16:47 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp
r261895 r278030 56 56 bool JITFinalizer::finalize() 57 57 { 58 MacroAssemblerCodeRef<JSEntryPtrTag> codeRef = FINALIZE_DFG_CODE(*m_linkBuffer, JSEntryPtrTag, "DFG JIT code for %s", toCString(CodeBlockWithJITType(m_plan.codeBlock(), JITType::DFGJIT)).data()); 59 m_jitCode->initializeCodeRefForDFG(codeRef, codeRef.code()); 58 VM& vm = *m_plan.vm(); 60 59 61 m_plan.codeBlock()->setJITCode(m_jitCode.copyRef());60 WTF::crossModifyingCodeFence(); 62 61 63 finalizeCommon(); 64 65 return true; 66 } 62 m_linkBuffer->runMainThreadFinalizationTasks(); 67 63 68 bool JITFinalizer::finalizeFunction() 69 { 70 RELEASE_ASSERT(!m_withArityCheck.isEmptyValue()); 71 m_jitCode->initializeCodeRefForDFG( 72 FINALIZE_DFG_CODE(*m_linkBuffer, JSEntryPtrTag, "DFG JIT code for %s", toCString(CodeBlockWithJITType(m_plan.codeBlock(), JITType::DFGJIT)).data()), 73 m_withArityCheck); 74 m_plan.codeBlock()->setJITCode(m_jitCode.copyRef()); 64 CodeBlock* codeBlock = m_plan.codeBlock(); 75 65 76 finalizeCommon(); 77 78 return true; 79 } 80 81 void JITFinalizer::finalizeCommon() 82 { 83 CodeBlock* codeBlock = m_plan.codeBlock(); 66 codeBlock->setJITCode(m_jitCode.copyRef()); 84 67 85 68 #if ENABLE(FTL_JIT) … … 88 71 89 72 if (UNLIKELY(m_plan.compilation())) 90 m_plan.vm()->m_perBytecodeProfiler->addCompilation(codeBlock, *m_plan.compilation());73 vm.m_perBytecodeProfiler->addCompilation(codeBlock, *m_plan.compilation()); 91 74 92 75 if (!m_plan.willTryToTierUp()) … … 95 78 // The codeBlock is now responsible for keeping many things alive (e.g. frozen values) 96 79 // that were previously kept alive by the plan. 97 m_plan.vm()->heap.writeBarrier(codeBlock); 80 vm.heap.writeBarrier(codeBlock); 81 82 return true; 98 83 } 99 84
Note:
See TracChangeset
for help on using the changeset viewer.