diff options
Diffstat (limited to 'deps/v8/src/interpreter/interpreter.h')
-rw-r--r-- | deps/v8/src/interpreter/interpreter.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/deps/v8/src/interpreter/interpreter.h b/deps/v8/src/interpreter/interpreter.h index e02e9142b3..ea50faa02d 100644 --- a/deps/v8/src/interpreter/interpreter.h +++ b/deps/v8/src/interpreter/interpreter.h @@ -40,12 +40,14 @@ class Interpreter { static bool MakeBytecode(CompilationInfo* info); // Return bytecode handler for |bytecode|. - Code* GetBytecodeHandler(Bytecode bytecode); + Code* GetBytecodeHandler(Bytecode bytecode, OperandScale operand_scale); // GC support. void IterateDispatchTable(ObjectVisitor* v); - void TraceCodegen(Handle<Code> code, const char* name); + // Disassembler support (only useful with ENABLE_DISASSEMBLER defined). + void TraceCodegen(Handle<Code> code); + const char* LookupNameOfBytecodeHandler(Code* code); Address dispatch_table_address() { return reinterpret_cast<Address>(&dispatch_table_[0]); @@ -58,6 +60,9 @@ class Interpreter { BYTECODE_LIST(DECLARE_BYTECODE_HANDLER_GENERATOR) #undef DECLARE_BYTECODE_HANDLER_GENERATOR + // Generates code to perform the binary operations via |callable|. + void DoBinaryOp(Callable callable, InterpreterAssembler* assembler); + // Generates code to perform the binary operations via |function_id|. void DoBinaryOp(Runtime::FunctionId function_id, InterpreterAssembler* assembler); @@ -103,9 +108,12 @@ class Interpreter { // Generates code to perform a JS runtime call. void DoCallJSRuntimeCommon(InterpreterAssembler* assembler); - // Generates code to perform a constructor call.. + // Generates code to perform a constructor call. void DoCallConstruct(InterpreterAssembler* assembler); + // Generates code to perform a type conversion. + void DoTypeConversionOp(Callable callable, InterpreterAssembler* assembler); + // Generates code ro create a literal via |function_id|. void DoCreateLiteral(Runtime::FunctionId function_id, InterpreterAssembler* assembler); @@ -122,9 +130,14 @@ class Interpreter { void DoStoreLookupSlot(LanguageMode language_mode, InterpreterAssembler* assembler); + // Get dispatch table index of bytecode. + static size_t GetDispatchTableIndex(Bytecode bytecode, + OperandScale operand_scale); + 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]; |