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); |
}; |