Index: src/compiler/ia32/instruction-selector-ia32.cc |
diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc |
index 1dd9c165b3a0576f7585fc23205f905ee64e197a..c242fb431c6f343d99875aea584b7372ffa482c9 100644 |
--- a/src/compiler/ia32/instruction-selector-ia32.cc |
+++ b/src/compiler/ia32/instruction-selector-ia32.cc |
@@ -646,22 +646,43 @@ void InstructionSelector::VisitInt32Mul(Node* node) { |
} |
-void InstructionSelector::VisitInt32MulHigh(Node* node) { |
- IA32OperandGenerator g(this); |
- Emit(kIA32ImulHigh, g.DefineAsFixed(node, edx), |
- g.UseFixed(node->InputAt(0), eax), |
- g.UseUniqueRegister(node->InputAt(1))); |
+namespace { |
+ |
+void VisitMulHigh(InstructionSelector* selector, Node* node, |
+ ArchOpcode opcode) { |
+ IA32OperandGenerator g(selector); |
+ selector->Emit(opcode, g.DefineAsFixed(node, edx), |
+ g.UseFixed(node->InputAt(0), eax), |
+ g.UseUniqueRegister(node->InputAt(1))); |
} |
-static inline void VisitDiv(InstructionSelector* selector, Node* node, |
- ArchOpcode opcode) { |
+void VisitDiv(InstructionSelector* selector, Node* node, ArchOpcode opcode) { |
IA32OperandGenerator g(selector); |
InstructionOperand* temps[] = {g.TempRegister(edx)}; |
- size_t temp_count = arraysize(temps); |
selector->Emit(opcode, g.DefineAsFixed(node, eax), |
g.UseFixed(node->InputAt(0), eax), |
- g.UseUnique(node->InputAt(1)), temp_count, temps); |
+ g.UseUnique(node->InputAt(1)), arraysize(temps), temps); |
+} |
+ |
+ |
+void VisitMod(InstructionSelector* selector, Node* node, ArchOpcode opcode) { |
+ IA32OperandGenerator g(selector); |
+ selector->Emit(opcode, g.DefineAsFixed(node, edx), |
+ g.UseFixed(node->InputAt(0), eax), |
+ g.UseUnique(node->InputAt(1))); |
+} |
+ |
+} // namespace |
+ |
+ |
+void InstructionSelector::VisitInt32MulHigh(Node* node) { |
+ VisitMulHigh(this, node, kIA32ImulHigh); |
+} |
+ |
+ |
+void InstructionSelector::VisitUint32MulHigh(Node* node) { |
+ VisitMulHigh(this, node, kIA32UmulHigh); |
} |
@@ -675,15 +696,6 @@ void InstructionSelector::VisitUint32Div(Node* node) { |
} |
-static inline void VisitMod(InstructionSelector* selector, Node* node, |
- ArchOpcode opcode) { |
- IA32OperandGenerator g(selector); |
- selector->Emit(opcode, g.DefineAsFixed(node, edx), |
- g.UseFixed(node->InputAt(0), eax), |
- g.UseUnique(node->InputAt(1))); |
-} |
- |
- |
void InstructionSelector::VisitInt32Mod(Node* node) { |
VisitMod(this, node, kIA32Idiv); |
} |