Chromium Code Reviews| Index: src/compiler/instruction-selector.cc |
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
| index eac5571e9c4b8ae1424aab36d9690efb941a5db0..39db29890b19c9643d429182447557e3f84c2070 100644 |
| --- a/src/compiler/instruction-selector.cc |
| +++ b/src/compiler/instruction-selector.cc |
| @@ -1082,9 +1082,19 @@ void InstructionSelector::VisitGuard(Node* node) { |
| void InstructionSelector::VisitParameter(Node* node) { |
| OperandGenerator g(this); |
| int index = ParameterIndexOf(node->op()); |
| - Emit(kArchNop, |
| - g.DefineAsLocation(node, linkage()->GetParameterLocation(index), |
| - linkage()->GetParameterType(index))); |
| + InstructionOperand op = |
| + g.DefineAsLocation(node, linkage()->GetParameterLocation(index), |
| + linkage()->GetParameterType(index)); |
| + |
| + if (linkage()->ParameterHasSecondaryLocation(index)) { |
| + InstructionOperand prespilled = g.DefineAsLocation( |
|
Jarin
2015/11/12 12:08:33
I am mildly surprised that it is possible to defin
Mircea Trofin
2015/11/12 18:01:35
Will do - if we keep this design.
|
| + node, linkage()->GetParameterSecondaryLocation(index), |
| + linkage()->GetParameterType(index)); |
| + InstructionOperand outputs[2] = {op, prespilled}; |
| + Emit(kArchNop, 2, outputs, 0, nullptr); |
| + } else { |
| + Emit(kArchNop, op); |
| + } |
| } |