| Index: src/compiler/mips64/instruction-selector-mips64.cc
 | 
| diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc
 | 
| index a92d31169c47e50eafed9e1e5d1e763476cb2e3d..c01d7403a5d2afd1a75ef173e11c1455d65ce811 100644
 | 
| --- a/src/compiler/mips64/instruction-selector-mips64.cc
 | 
| +++ b/src/compiler/mips64/instruction-selector-mips64.cc
 | 
| @@ -5,6 +5,7 @@
 | 
|  #include "src/base/bits.h"
 | 
|  #include "src/compiler/instruction-selector-impl.h"
 | 
|  #include "src/compiler/node-matchers.h"
 | 
| +#include "src/compiler/node-properties.h"
 | 
|  
 | 
|  namespace v8 {
 | 
|  namespace internal {
 | 
| @@ -648,10 +649,10 @@ void InstructionSelector::VisitCall(Node* node) {
 | 
|      Emit(kMips64StackClaim | MiscField::encode(push_count), NULL);
 | 
|    }
 | 
|    int slot = buffer.pushed_nodes.size() - 1;
 | 
| -  for (NodeVectorRIter input = buffer.pushed_nodes.rbegin();
 | 
| -       input != buffer.pushed_nodes.rend(); input++) {
 | 
| -    Emit(kMips64StoreToStackSlot | MiscField::encode(slot), NULL,
 | 
| -         g.UseRegister(*input));
 | 
| +  for (auto i = buffer.pushed_nodes.rbegin(); i != buffer.pushed_nodes.rend();
 | 
| +       ++i) {
 | 
| +    Emit(kMips64StoreToStackSlot | MiscField::encode(slot), nullptr,
 | 
| +         g.UseRegister(*i));
 | 
|      slot--;
 | 
|    }
 | 
|  
 | 
| @@ -920,14 +921,14 @@ void VisitWordCompareZero(InstructionSelector* selector, Node* user,
 | 
|        case IrOpcode::kProjection:
 | 
|          // Check if this is the overflow output projection of an
 | 
|          // <Operation>WithOverflow node.
 | 
| -        if (OpParameter<size_t>(value) == 1u) {
 | 
| +        if (ProjectionIndexOf(value->op()) == 1u) {
 | 
|            // We cannot combine the <Operation>WithOverflow with this branch
 | 
|            // unless the 0th projection (the use of the actual value of the
 | 
|            // <Operation> is either NULL, which means there's no use of the
 | 
|            // actual value, or was already defined, which means it is scheduled
 | 
|            // *AFTER* this branch).
 | 
| -          Node* node = value->InputAt(0);
 | 
| -          Node* result = node->FindProjection(0);
 | 
| +          Node* const node = value->InputAt(0);
 | 
| +          Node* const result = NodeProperties::FindProjection(node, 0);
 | 
|            if (result == NULL || selector->IsDefined(result)) {
 | 
|              switch (node->opcode()) {
 | 
|                case IrOpcode::kInt32AddWithOverflow:
 | 
| @@ -1000,7 +1001,7 @@ void InstructionSelector::VisitUint32LessThanOrEqual(Node* node) {
 | 
|  
 | 
|  
 | 
|  void InstructionSelector::VisitInt32AddWithOverflow(Node* node) {
 | 
| -  if (Node* ovf = node->FindProjection(1)) {
 | 
| +  if (Node* ovf = NodeProperties::FindProjection(node, 1)) {
 | 
|      FlagsContinuation cont(kOverflow, ovf);
 | 
|      return VisitBinop(this, node, kMips64Dadd, &cont);
 | 
|    }
 | 
| @@ -1010,7 +1011,7 @@ void InstructionSelector::VisitInt32AddWithOverflow(Node* node) {
 | 
|  
 | 
|  
 | 
|  void InstructionSelector::VisitInt32SubWithOverflow(Node* node) {
 | 
| -  if (Node* ovf = node->FindProjection(1)) {
 | 
| +  if (Node* ovf = NodeProperties::FindProjection(node, 1)) {
 | 
|      FlagsContinuation cont(kOverflow, ovf);
 | 
|      return VisitBinop(this, node, kMips64Dsub, &cont);
 | 
|    }
 | 
| 
 |