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 d6edb45e7c16b406e3257b0106f889d6b113be6d..add0a3f2b1fc17f47ffc1926844fadaadedb303f 100644 |
--- a/src/compiler/ia32/instruction-selector-ia32.cc |
+++ b/src/compiler/ia32/instruction-selector-ia32.cc |
@@ -455,6 +455,16 @@ void InstructionSelector::VisitInt32Mul(Node* node) { |
} |
+void InstructionSelector::VisitInt32MulHigh(Node* node) { |
+ IA32OperandGenerator g(this); |
+ InstructionOperand* temps[] = {g.TempRegister(eax)}; |
+ size_t temp_count = arraysize(temps); |
+ Emit(kIA32ImulHigh, g.DefineAsFixed(node, edx), |
+ g.UseFixed(node->InputAt(0), eax), g.UseRegister(node->InputAt(1)), |
+ temp_count, temps); |
+} |
+ |
+ |
static inline void VisitDiv(InstructionSelector* selector, Node* node, |
ArchOpcode opcode) { |
IA32OperandGenerator g(selector); |