Index: src/compiler/int64-lowering.cc |
diff --git a/src/compiler/int64-lowering.cc b/src/compiler/int64-lowering.cc |
index ff61aa765d244abbc2c34ad569c609cb1e8739f0..ae5672df32f0eb38cc9b58ba9e86216345d7f03e 100644 |
--- a/src/compiler/int64-lowering.cc |
+++ b/src/compiler/int64-lowering.cc |
@@ -237,7 +237,7 @@ void Int64Lowering::LowerNode(Node* node) { |
NodeProperties::ChangeOp(node, store_op); |
ReplaceNode(node, node, high_node); |
} else { |
- DefaultLowering(node); |
+ DefaultLowering(node, true); |
} |
break; |
} |
@@ -826,7 +826,7 @@ void Int64Lowering::LowerComparison(Node* node, const Operator* high_word_op, |
ReplaceNode(node, replacement, nullptr); |
} |
-bool Int64Lowering::DefaultLowering(Node* node) { |
+bool Int64Lowering::DefaultLowering(Node* node, bool low_word_only) { |
bool something_changed = false; |
for (int i = NodeProperties::PastValueIndex(node) - 1; i >= 0; i--) { |
Node* input = node->InputAt(i); |
@@ -834,7 +834,7 @@ bool Int64Lowering::DefaultLowering(Node* node) { |
something_changed = true; |
node->ReplaceInput(i, GetReplacementLow(input)); |
} |
- if (HasReplacementHigh(input)) { |
+ if (!low_word_only && HasReplacementHigh(input)) { |
something_changed = true; |
node->InsertInput(zone(), i + 1, GetReplacementHigh(input)); |
} |