Chromium Code Reviews| 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_; } |
|
rmcilroy
2016/03/10 16:45:38
I'd rather not have these as object fields since t
oth
2016/03/11 16:26:12
Done.
|
| + |
| + 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); |
| }; |