| Index: src/compiler/x64/instruction-selector-x64.cc
|
| diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc
|
| index bf6b170e414b1eb568fb727e20ed69550ff512e8..c1f2e0cb201f671a46f748b88f5cc258227e5387 100644
|
| --- a/src/compiler/x64/instruction-selector-x64.cc
|
| +++ b/src/compiler/x64/instruction-selector-x64.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "src/compiler/instruction-selector-impl.h"
|
| #include "src/compiler/node-matchers.h"
|
| +#include "src/compiler/node-properties.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| @@ -938,11 +939,11 @@ void InstructionSelector::VisitCall(Node* node) {
|
| InitializeCallBuffer(node, &buffer, true, true);
|
|
|
| // Push any stack arguments.
|
| - for (NodeVectorRIter input = buffer.pushed_nodes.rbegin();
|
| - input != buffer.pushed_nodes.rend(); input++) {
|
| + for (auto i = buffer.pushed_nodes.rbegin(); i != buffer.pushed_nodes.rend();
|
| + ++i) {
|
| // TODO(titzer): handle pushing double parameters.
|
| - Emit(kX64Push, NULL,
|
| - g.CanBeImmediate(*input) ? g.UseImmediate(*input) : g.Use(*input));
|
| + Emit(kX64Push, nullptr,
|
| + g.CanBeImmediate(*i) ? g.UseImmediate(*i) : g.Use(*i));
|
| }
|
|
|
| // Select the appropriate opcode based on the call type.
|
| @@ -1111,14 +1112,14 @@ void InstructionSelector::VisitBranch(Node* branch, BasicBlock* tbranch,
|
| 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 || IsDefined(result)) {
|
| switch (node->opcode()) {
|
| case IrOpcode::kInt32AddWithOverflow:
|
| @@ -1248,7 +1249,7 @@ void InstructionSelector::VisitWord64Equal(Node* const node) {
|
|
|
|
|
| void InstructionSelector::VisitInt32AddWithOverflow(Node* node) {
|
| - if (Node* ovf = node->FindProjection(1)) {
|
| + if (Node* ovf = NodeProperties::FindProjection(node, 1)) {
|
| FlagsContinuation cont(kOverflow, ovf);
|
| VisitBinop(this, node, kX64Add32, &cont);
|
| }
|
| @@ -1258,7 +1259,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, kX64Sub32, &cont);
|
| }
|
|
|