Index: src/interpreter/interpreter.h |
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h |
index 42b9bd7f9e8f9b8d5168003633347a0cf7d5af7e..b77a4ff8c5847474674535fa5ef60697f9ce8c2e 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,9 +128,13 @@ class Interpreter { |
void DoStoreLookupSlot(LanguageMode language_mode, |
InterpreterAssembler* assembler); |
+ // Get dispatch table index of bytecode. |
+ size_t GetDispatchTableIndex(Bytecode bytecode, uint32_t operand_size_log2); |
+ |
bool IsDispatchTableInitialized(); |
- static const int kDispatchTableSize = static_cast<int>(Bytecode::kLast) + 1; |
+ static const int kNumberOfWideVariants = 3; |
+ static const int kDispatchTableSize = kNumberOfWideVariants * (kMaxUInt8 + 1); |
Isolate* isolate_; |
Code* dispatch_table_[kDispatchTableSize]; |