| Index: src/interpreter/interpreter-assembler.cc
|
| diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
|
| index 7cc678885261fcf4742bd92bde9e70062b7cee39..440e879c4869fbd7b0e52b9035167e49ffd81168 100644
|
| --- a/src/interpreter/interpreter-assembler.cc
|
| +++ b/src/interpreter/interpreter-assembler.cc
|
| @@ -442,9 +442,6 @@ void InterpreterAssembler::Dispatch() {
|
| }
|
|
|
| void InterpreterAssembler::DispatchTo(Node* new_bytecode_offset) {
|
| - if (FLAG_trace_ignition) {
|
| - TraceBytecode(Runtime::kInterpreterTraceBytecodeExit);
|
| - }
|
| Node* target_bytecode = Load(
|
| MachineType::Uint8(), BytecodeArrayTaggedPointer(), new_bytecode_offset);
|
|
|
| @@ -454,18 +451,23 @@ void InterpreterAssembler::DispatchTo(Node* new_bytecode_offset) {
|
| Load(MachineType::Pointer(), DispatchTableRawPointer(),
|
| Word32Shl(target_bytecode, Int32Constant(kPointerSizeLog2)));
|
|
|
| - InterpreterDispatchDescriptor descriptor(isolate());
|
| - Node* args[] = {GetAccumulator(), RegisterFileRawPointer(),
|
| - new_bytecode_offset, BytecodeArrayTaggedPointer(),
|
| - DispatchTableRawPointer(), GetContext()};
|
| - TailCall(descriptor, target_code_object, args, 0);
|
| + DispatchToBytecodeHandler(target_code_object, new_bytecode_offset);
|
| }
|
|
|
| -void InterpreterAssembler::InterpreterReturn() {
|
| +void InterpreterAssembler::DispatchToBytecodeHandler(Node* handler,
|
| + Node* bytecode_offset) {
|
| if (FLAG_trace_ignition) {
|
| TraceBytecode(Runtime::kInterpreterTraceBytecodeExit);
|
| }
|
|
|
| + InterpreterDispatchDescriptor descriptor(isolate());
|
| + Node* args[] = {GetAccumulator(), RegisterFileRawPointer(),
|
| + bytecode_offset, BytecodeArrayTaggedPointer(),
|
| + DispatchTableRawPointer(), GetContext()};
|
| + TailCall(descriptor, handler, args, 0);
|
| +}
|
| +
|
| +void InterpreterAssembler::InterpreterReturn() {
|
| // TODO(rmcilroy): Investigate whether it is worth supporting self
|
| // optimization of primitive functions like FullCodegen.
|
|
|
| @@ -476,13 +478,9 @@ void InterpreterAssembler::InterpreterReturn() {
|
| BytecodeOffset());
|
| UpdateInterruptBudget(profiling_weight);
|
|
|
| - InterpreterDispatchDescriptor descriptor(isolate());
|
| Node* exit_trampoline_code_object =
|
| HeapConstant(isolate()->builtins()->InterpreterExitTrampoline());
|
| - Node* args[] = {GetAccumulator(), RegisterFileRawPointer(),
|
| - BytecodeOffset(), BytecodeArrayTaggedPointer(),
|
| - DispatchTableRawPointer(), GetContext()};
|
| - TailCall(descriptor, exit_trampoline_code_object, args, 0);
|
| + DispatchToBytecodeHandler(exit_trampoline_code_object);
|
| }
|
|
|
| void InterpreterAssembler::StackCheck() {
|
|
|