| Index: src/interpreter/interpreter-assembler.cc
|
| diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
|
| index f5961b7e53a0d83aa2474b564f4cd63dcf8f0d48..75db96a9dc16643d2ee7726b3f25b9fa7c5b8dc6 100644
|
| --- a/src/interpreter/interpreter-assembler.cc
|
| +++ b/src/interpreter/interpreter-assembler.cc
|
| @@ -33,13 +33,11 @@ InterpreterAssembler::InterpreterAssembler(Isolate* isolate, Zone* zone,
|
| operand_scale_(operand_scale),
|
| accumulator_(this, MachineRepresentation::kTagged),
|
| accumulator_use_(AccumulatorUse::kNone),
|
| - context_(this, MachineRepresentation::kTagged),
|
| bytecode_array_(this, MachineRepresentation::kTagged),
|
| disable_stack_check_across_call_(false),
|
| stack_pointer_before_call_(nullptr) {
|
| accumulator_.Bind(
|
| Parameter(InterpreterDispatchDescriptor::kAccumulatorParameter));
|
| - context_.Bind(Parameter(InterpreterDispatchDescriptor::kContextParameter));
|
| bytecode_array_.Bind(
|
| Parameter(InterpreterDispatchDescriptor::kBytecodeArrayParameter));
|
| if (FLAG_trace_ignition) {
|
| @@ -70,11 +68,12 @@ void InterpreterAssembler::SetAccumulator(Node* value) {
|
| accumulator_.Bind(value);
|
| }
|
|
|
| -Node* InterpreterAssembler::GetContext() { return context_.value(); }
|
| +Node* InterpreterAssembler::GetContext() {
|
| + return LoadRegister(Register::current_context());
|
| +}
|
|
|
| void InterpreterAssembler::SetContext(Node* value) {
|
| StoreRegister(value, Register::current_context());
|
| - context_.Bind(value);
|
| }
|
|
|
| Node* InterpreterAssembler::BytecodeOffset() {
|
| @@ -103,7 +102,7 @@ Node* InterpreterAssembler::LoadRegister(int offset) {
|
| }
|
|
|
| Node* InterpreterAssembler::LoadRegister(Register reg) {
|
| - return LoadRegister(IntPtrConstant(-reg.index()));
|
| + return LoadRegister(-reg.index() << kPointerSizeLog2);
|
| }
|
|
|
| Node* InterpreterAssembler::RegisterFrameOffset(Node* index) {
|
| @@ -581,8 +580,8 @@ void InterpreterAssembler::DispatchToBytecodeHandlerEntry(
|
|
|
| InterpreterDispatchDescriptor descriptor(isolate());
|
| Node* args[] = {GetAccumulatorUnchecked(), RegisterFileRawPointer(),
|
| - bytecode_offset, BytecodeArrayTaggedPointer(),
|
| - DispatchTableRawPointer(), GetContext()};
|
| + bytecode_offset, BytecodeArrayTaggedPointer(),
|
| + DispatchTableRawPointer()};
|
| TailCallBytecodeDispatch(descriptor, handler_entry, args);
|
| }
|
|
|
|
|