Index: src/compiler/x64/instruction-selector-x64.cc |
diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc |
index 6a3d9c03fee05e0ae566811bcd0e5605b0628df5..d102e847181f3c8deec72497659bc9d5adf407bd 100644 |
--- a/src/compiler/x64/instruction-selector-x64.cc |
+++ b/src/compiler/x64/instruction-selector-x64.cc |
@@ -546,6 +546,16 @@ void InstructionSelector::VisitInt64Mul(Node* node) { |
} |
+void InstructionSelector::VisitInt32MulHigh(Node* node) { |
+ X64OperandGenerator g(this); |
+ InstructionOperand* temps[] = {g.TempRegister(rax)}; |
+ size_t temp_count = arraysize(temps); |
+ Emit(kX64ImulHigh32, g.DefineAsFixed(node, rdx), |
+ g.UseFixed(node->InputAt(0), rax), g.UseRegister(node->InputAt(1)), |
+ temp_count, temps); |
+} |
+ |
+ |
static void VisitDiv(InstructionSelector* selector, Node* node, |
ArchOpcode opcode) { |
X64OperandGenerator g(selector); |