Index: src/compiler/simplified-lowering.cc |
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc |
index 9e0b45016686df1558db3c08a0fae267f82cd733..a757248a99e16c96191f257966f5f49849832326 100644 |
--- a/src/compiler/simplified-lowering.cc |
+++ b/src/compiler/simplified-lowering.cc |
@@ -273,13 +273,19 @@ class RepresentationSelector { |
SetOutput(node, kMachAnyTagged); |
} |
+ // Helper for binops of the R x L -> O variety. |
+ void VisitBinop(Node* node, MachineTypeUnion left_use, |
+ MachineTypeUnion right_use, MachineTypeUnion output) { |
+ DCHECK_EQ(2, node->InputCount()); |
+ ProcessInput(node, 0, left_use); |
+ ProcessInput(node, 1, right_use); |
+ SetOutput(node, output); |
+ } |
+ |
// Helper for binops of the I x I -> O variety. |
void VisitBinop(Node* node, MachineTypeUnion input_use, |
MachineTypeUnion output) { |
- DCHECK_EQ(2, node->InputCount()); |
- ProcessInput(node, 0, input_use); |
- ProcessInput(node, 1, input_use); |
- SetOutput(node, output); |
+ VisitBinop(node, input_use, input_use, output); |
} |
// Helper for unops of the I -> O variety. |
@@ -1033,6 +1039,12 @@ class RepresentationSelector { |
case IrOpcode::kFloat64LessThan: |
case IrOpcode::kFloat64LessThanOrEqual: |
return VisitFloat64Cmp(node); |
+ case IrOpcode::kFloat64ExtractLowWord32: |
+ case IrOpcode::kFloat64ExtractHighWord32: |
+ return VisitUnop(node, kMachFloat64, kMachInt32); |
+ case IrOpcode::kFloat64InsertLowWord32: |
+ case IrOpcode::kFloat64InsertHighWord32: |
+ return VisitBinop(node, kMachFloat64, kMachInt32, kMachFloat64); |
case IrOpcode::kLoadStackPointer: |
return VisitLeaf(node, kMachPtr); |
case IrOpcode::kStateValues: |