| Index: src/interpreter/interpreter.cc
|
| diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
|
| index 5084300dfee60294b3af19832d026410b5834c6f..2543a2503e3a66def7cadd13b665a410486d31d4 100644
|
| --- a/src/interpreter/interpreter.cc
|
| +++ b/src/interpreter/interpreter.cc
|
| @@ -33,6 +33,12 @@ void Interpreter::Initialize() {
|
| Zone zone(isolate_->allocator());
|
| HandleScope scope(isolate_);
|
|
|
| + if (FLAG_trace_ignition_dispatches) {
|
| + handlers_dispatch_counters_.Reset(new uintptr_t[kCountersTableRowSize]);
|
| + memset(handlers_dispatch_counters_.get(), 0,
|
| + sizeof(uintptr_t) * kCountersTableRowSize);
|
| + }
|
| +
|
| // Generate bytecode handlers for all bytecodes and scales.
|
| for (OperandScale operand_scale = OperandScale::kSingle;
|
| operand_scale <= OperandScale::kMaxValid;
|
| @@ -148,9 +154,11 @@ bool Interpreter::MakeBytecode(CompilationInfo* info) {
|
| }
|
|
|
| bool Interpreter::IsDispatchTableInitialized() {
|
| - if (FLAG_trace_ignition || FLAG_trace_ignition_codegen) {
|
| - // Regenerate table to add bytecode tracing operations
|
| - // or to print the assembly code generated by TurboFan.
|
| + if (FLAG_trace_ignition || FLAG_trace_ignition_codegen ||
|
| + FLAG_trace_ignition_dispatches) {
|
| + // Regenerate table to add bytecode tracing operations,
|
| + // print the assembly code generated by TurboFan,
|
| + // or instrument handlers with dispatch counters.
|
| return false;
|
| }
|
| return dispatch_table_[0] != nullptr;
|
|
|