diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGJITCode.h')
| -rw-r--r-- | Source/JavaScriptCore/dfg/DFGJITCode.h | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGJITCode.h b/Source/JavaScriptCore/dfg/DFGJITCode.h index 0e771e046..243e353a3 100644 --- a/Source/JavaScriptCore/dfg/DFGJITCode.h +++ b/Source/JavaScriptCore/dfg/DFGJITCode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013-2015 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -26,10 +26,9 @@ #ifndef DFGJITCode_h #define DFGJITCode_h -#include <wtf/Platform.h> - #if ENABLE(DFG_JIT) +#include "CodeBlock.h" #include "CompilationResult.h" #include "DFGCommonData.h" #include "DFGMinifiedGraph.h" @@ -40,7 +39,11 @@ #include "JITCode.h" #include <wtf/SegmentedVector.h> -namespace JSC { namespace DFG { +namespace JSC { + +class TrackedReferences; + +namespace DFG { class JITCompiler; @@ -109,7 +112,20 @@ public: void setOptimizationThresholdBasedOnCompilationResult(CodeBlock*, CompilationResult); #endif // ENABLE(FTL_JIT) + void validateReferences(const TrackedReferences&) override; + void shrinkToFit(); + + RegisterSet liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex) override; +#if ENABLE(FTL_JIT) + CodeBlock* osrEntryBlock() { return m_osrEntryBlock.get(); } + void setOSREntryBlock(VM& vm, const JSCell* owner, CodeBlock* osrEntryBlock) { m_osrEntryBlock.set(vm, owner, osrEntryBlock); } + void clearOSREntryBlock() { m_osrEntryBlock.clear(); } +#endif + + static ptrdiff_t commonDataOffset() { return OBJECT_OFFSETOF(JITCode, common); } + + Optional<CodeOrigin> findPC(CodeBlock*, void* pc) override; private: friend class JITCompiler; // Allow JITCompiler to call setCodeRef(). @@ -122,8 +138,12 @@ public: DFG::VariableEventStream variableEventStream; DFG::MinifiedGraph minifiedDFG; #if ENABLE(FTL_JIT) - ExecutionCounter tierUpCounter; - RefPtr<CodeBlock> osrEntryBlock; + uint8_t nestedTriggerIsSet { 0 }; + uint8_t neverExecutedEntry { 1 }; + UpperTierExecutionCounter tierUpCounter; + WriteBarrier<CodeBlock> m_osrEntryBlock; + unsigned osrEntryRetry; + bool abandonOSREntry; #endif // ENABLE(FTL_JIT) }; |
