X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/a253471d7f8e4d91bf6ebabab00155c3b387d3d0..93a3786624b2768d89bfa27e46598dc64e2fb70a:/jit/JITDriver.h?ds=inline diff --git a/jit/JITDriver.h b/jit/JITDriver.h index 66cf519..a2221fa 100644 --- a/jit/JITDriver.h +++ b/jit/JITDriver.h @@ -38,12 +38,14 @@ namespace JSC { template -inline bool jitCompileIfAppropriate(JSGlobalData& globalData, OwnPtr& codeBlock, JITCode& jitCode, JITCode::JITType jitType, JITCompilationEffort effort) +inline bool jitCompileIfAppropriate(ExecState* exec, OwnPtr& codeBlock, JITCode& jitCode, JITCode::JITType jitType, unsigned bytecodeIndex, JITCompilationEffort effort) { + VM& vm = exec->vm(); + if (jitType == codeBlock->getJITType()) return true; - if (!globalData.canUseJIT()) + if (!vm.canUseJIT()) return true; codeBlock->unlinkIncomingCalls(); @@ -52,7 +54,7 @@ inline bool jitCompileIfAppropriate(JSGlobalData& globalData, OwnPtralternative()) codeBlock->alternative()->unlinkIncomingCalls(); @@ -62,7 +64,7 @@ inline bool jitCompileIfAppropriate(JSGlobalData& globalData, OwnPtr& codeBlock, JITCode& jitCode, MacroAssemblerCodePtr& jitCodeWithArityCheck, SharedSymbolTable*& symbolTable, JITCode::JITType jitType, JITCompilationEffort effort) +inline bool jitCompileFunctionIfAppropriate(ExecState* exec, OwnPtr& codeBlock, JITCode& jitCode, MacroAssemblerCodePtr& jitCodeWithArityCheck, JITCode::JITType jitType, unsigned bytecodeIndex, JITCompilationEffort effort) { + VM& vm = exec->vm(); + if (jitType == codeBlock->getJITType()) return true; - if (!globalData.canUseJIT()) + if (!vm.canUseJIT()) return true; codeBlock->unlinkIncomingCalls(); @@ -88,19 +92,18 @@ inline bool jitCompileFunctionIfAppropriate(JSGlobalData& globalData, OwnPtralternative()) codeBlock->alternative()->unlinkIncomingCalls(); } else { if (codeBlock->alternative()) { codeBlock = static_pointer_cast(codeBlock->releaseAlternative()); - symbolTable = codeBlock->sharedSymbolTable(); jitCode = oldJITCode; jitCodeWithArityCheck = oldJITCodeWithArityCheck; return false; } - jitCode = JIT::compile(&globalData, codeBlock.get(), effort, &jitCodeWithArityCheck); + jitCode = JIT::compile(&vm, codeBlock.get(), effort, &jitCodeWithArityCheck); if (!jitCode) { jitCode = oldJITCode; jitCodeWithArityCheck = oldJITCodeWithArityCheck;