Index: src/interpreter/interpreter.h |
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h |
index 4dc6241c245f3e710e874c9e094b2f93cb12b207..04c9a8b68487ff52458acf655204dc02f4f182f6 100644 |
--- a/src/interpreter/interpreter.h |
+++ b/src/interpreter/interpreter.h |
@@ -23,7 +23,6 @@ class Isolate; |
class Callable; |
class CompilationInfo; |
class CompilationJob; |
-class SetupIsolateDelegate; |
namespace interpreter { |
@@ -34,6 +33,9 @@ class Interpreter { |
explicit Interpreter(Isolate* isolate); |
virtual ~Interpreter() {} |
+ // Initializes the interpreter dispatch table. |
+ void Initialize(); |
+ |
// Returns the interrupt budget which should be used for the profiler counter. |
static int InterruptBudget(); |
@@ -63,8 +65,14 @@ class Interpreter { |
static const int kCodeSizeMultiplier = 24; |
private: |
- friend class SetupInterpreter; |
- friend class v8::internal::SetupIsolateDelegate; |
+ // In the case of bytecodes that share handler implementations, copy the code |
+ // into the bytecode's dispatcher table entry and return true. |
+ bool ReuseExistingHandler(Bytecode bytecode, OperandScale operand_scale); |
+ |
+ // Generates handler for given |bytecode| and |operand_scale| |
+ // and installs it into the dispatch table. |
+ void InstallBytecodeHandler(Isolate* isolate, Bytecode bytecode, |
+ OperandScale operand_scale); |
uintptr_t GetDispatchCounter(Bytecode from, Bytecode to) const; |
@@ -73,6 +81,7 @@ class Interpreter { |
OperandScale operand_scale); |
bool IsDispatchTableInitialized(); |
+ bool ShouldInitializeDispatchTable(); |
static const int kNumberOfWideVariants = 3; |
static const int kDispatchTableSize = kNumberOfWideVariants * (kMaxUInt8 + 1); |