| Index: src/compiler/instruction-selector.cc
|
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
|
| index e74230334e05dfc242a6fe66b5d7a0f136654978..91af86bb20a7e2156fbb8eb922fbbd1014f1d650 100644
|
| --- a/src/compiler/instruction-selector.cc
|
| +++ b/src/compiler/instruction-selector.cc
|
| @@ -574,17 +574,17 @@ void InstructionSelector::InitializeCallBuffer(Node* call, CallBuffer* buffer,
|
| bool output_is_live = buffer->output_nodes[i] != nullptr ||
|
| i < outputs_needed_by_framestate;
|
| if (output_is_live) {
|
| - MachineType type =
|
| - buffer->descriptor->GetReturnType(static_cast<int>(i));
|
| + MachineRepresentation rep =
|
| + buffer->descriptor->GetReturnType(static_cast<int>(i))
|
| + .representation();
|
| LinkageLocation location =
|
| buffer->descriptor->GetReturnLocation(static_cast<int>(i));
|
|
|
| Node* output = buffer->output_nodes[i];
|
| - InstructionOperand op =
|
| - output == nullptr
|
| - ? g.TempLocation(location, type.representation())
|
| - : g.DefineAsLocation(output, location, type.representation());
|
| - MarkAsRepresentation(type.representation(), op);
|
| + InstructionOperand op = output == nullptr
|
| + ? g.TempLocation(location)
|
| + : g.DefineAsLocation(output, location);
|
| + MarkAsRepresentation(rep, op);
|
|
|
| buffer->outputs.push_back(op);
|
| }
|
| @@ -611,8 +611,7 @@ void InstructionSelector::InitializeCallBuffer(Node* call, CallBuffer* buffer,
|
| break;
|
| case CallDescriptor::kCallJSFunction:
|
| buffer->instruction_args.push_back(
|
| - g.UseLocation(callee, buffer->descriptor->GetInputLocation(0),
|
| - buffer->descriptor->GetInputType(0).representation()));
|
| + g.UseLocation(callee, buffer->descriptor->GetInputLocation(0)));
|
| break;
|
| }
|
| DCHECK_EQ(1u, buffer->instruction_args.size());
|
| @@ -679,9 +678,7 @@ void InstructionSelector::InitializeCallBuffer(Node* call, CallBuffer* buffer,
|
| location = LinkageLocation::ConvertToTailCallerLocation(
|
| location, stack_param_delta);
|
| }
|
| - InstructionOperand op =
|
| - g.UseLocation(*iter, location,
|
| - buffer->descriptor->GetInputType(index).representation());
|
| + InstructionOperand op = g.UseLocation(*iter, location);
|
| if (UnallocatedOperand::cast(op).HasFixedSlotPolicy() && !call_tail) {
|
| int stack_index = -UnallocatedOperand::cast(op).fixed_slot_index() - 1;
|
| if (static_cast<size_t>(stack_index) >= buffer->pushed_nodes.size()) {
|
| @@ -1606,9 +1603,7 @@ void InstructionSelector::VisitParameter(Node* node) {
|
| ? g.DefineAsDualLocation(
|
| node, linkage()->GetParameterLocation(index),
|
| linkage()->GetParameterSecondaryLocation(index))
|
| - : g.DefineAsLocation(
|
| - node, linkage()->GetParameterLocation(index),
|
| - linkage()->GetParameterType(index).representation());
|
| + : g.DefineAsLocation(node, linkage()->GetParameterLocation(index));
|
|
|
| Emit(kArchNop, op);
|
| }
|
| @@ -1619,17 +1614,15 @@ void InstructionSelector::VisitIfException(Node* node) {
|
| Node* call = node->InputAt(1);
|
| DCHECK_EQ(IrOpcode::kCall, call->opcode());
|
| const CallDescriptor* descriptor = CallDescriptorOf(call->op());
|
| - Emit(kArchNop,
|
| - g.DefineAsLocation(node, descriptor->GetReturnLocation(0),
|
| - descriptor->GetReturnType(0).representation()));
|
| + Emit(kArchNop, g.DefineAsLocation(node, descriptor->GetReturnLocation(0)));
|
| }
|
|
|
|
|
| void InstructionSelector::VisitOsrValue(Node* node) {
|
| OperandGenerator g(this);
|
| int index = OpParameter<int>(node);
|
| - Emit(kArchNop, g.DefineAsLocation(node, linkage()->GetOsrValueLocation(index),
|
| - MachineRepresentation::kTagged));
|
| + Emit(kArchNop,
|
| + g.DefineAsLocation(node, linkage()->GetOsrValueLocation(index)));
|
| }
|
|
|
|
|
| @@ -1737,7 +1730,7 @@ void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
|
| case CallDescriptor::kCallAddress:
|
| opcode =
|
| kArchCallCFunction |
|
| - MiscField::encode(static_cast<int>(descriptor->CParameterCount()));
|
| + MiscField::encode(static_cast<int>(descriptor->ParameterCount()));
|
| break;
|
| case CallDescriptor::kCallCodeObject:
|
| opcode = kArchCallCodeObject | MiscField::encode(flags);
|
| @@ -1883,8 +1876,7 @@ void InstructionSelector::VisitReturn(Node* ret) {
|
| auto value_locations = zone()->NewArray<InstructionOperand>(ret_count);
|
| for (int i = 0; i < ret_count; ++i) {
|
| value_locations[i] =
|
| - g.UseLocation(ret->InputAt(i), linkage()->GetReturnLocation(i),
|
| - linkage()->GetReturnType(i).representation());
|
| + g.UseLocation(ret->InputAt(i), linkage()->GetReturnLocation(i));
|
| }
|
| Emit(kArchRet, 0, nullptr, ret_count, value_locations);
|
| }
|
|
|