| Index: src/interpreter/interpreter.h
|
| diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h
|
| index 42b9bd7f9e8f9b8d5168003633347a0cf7d5af7e..2f84f2ac25a18d7dc3a35c667580e54f4a99fdc2 100644
|
| --- a/src/interpreter/interpreter.h
|
| +++ b/src/interpreter/interpreter.h
|
| @@ -40,7 +40,7 @@ class Interpreter {
|
| static bool MakeBytecode(CompilationInfo* info);
|
|
|
| // Return bytecode handler for |bytecode|.
|
| - Code* GetBytecodeHandler(Bytecode bytecode);
|
| + Code* GetBytecodeHandler(Bytecode bytecode, int operand_scale);
|
|
|
| // GC support.
|
| void IterateDispatchTable(ObjectVisitor* v);
|
| @@ -128,13 +128,22 @@ class Interpreter {
|
| void DoStoreLookupSlot(LanguageMode language_mode,
|
| InterpreterAssembler* assembler);
|
|
|
| + // Generates handler for invalid bytecodes.
|
| + Handle<Code> MakeInvalidBytecodeHandler(Zone* zone);
|
| +
|
| bool IsDispatchTableInitialized();
|
|
|
| - static const int kDispatchTableSize = static_cast<int>(Bytecode::kLast) + 1;
|
| + void set_operand_scale(int operand_scale) { operand_scale_ = operand_scale; }
|
| + int operand_scale() const { return operand_scale_; }
|
| +
|
| + static const int kNumberOfWideVariants = 3;
|
| + static const int kDispatchTableSize = kNumberOfWideVariants * (kMaxUInt8 + 1);
|
|
|
| Isolate* isolate_;
|
| Code* dispatch_table_[kDispatchTableSize];
|
|
|
| + int operand_scale_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(Interpreter);
|
| };
|
|
|
|
|