Index: src/compiler/int64-lowering.cc |
diff --git a/src/compiler/int64-lowering.cc b/src/compiler/int64-lowering.cc |
index 1b0ead5049c689dd61f20402548ca22d3065b387..b83ab2634521c5625047b12cd76f55defa49e8ee 100644 |
--- a/src/compiler/int64-lowering.cc |
+++ b/src/compiler/int64-lowering.cc |
@@ -293,6 +293,24 @@ void Int64Lowering::LowerNode(Node* node) { |
// kExprI64ShrU: |
// kExprI64ShrS: |
// kExprI64Eq: |
+ case IrOpcode::kWord64Equal: { |
+ DCHECK(node->InputCount() == 2); |
+ Node* left = node->InputAt(0); |
+ Node* right = node->InputAt(1); |
+ |
+ Node* replacement = graph()->NewNode( |
titzer
2016/02/23 15:49:30
Can you add a
TODO(wasm): Use explicit compariso
|
+ machine()->Word32Equal(), |
+ graph()->NewNode( |
+ machine()->Word32Or(), |
+ graph()->NewNode(machine()->Word32Xor(), GetReplacementLow(left), |
+ GetReplacementLow(right)), |
+ graph()->NewNode(machine()->Word32Xor(), GetReplacementHigh(left), |
+ GetReplacementHigh(right))), |
+ graph()->NewNode(common()->Int32Constant(0))); |
+ |
+ ReplaceNode(node, replacement, nullptr); |
+ break; |
+ } |
// kExprI64Ne: |
// kExprI64LtS: |
// kExprI64LeS: |