Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 24b991e831a4102c9dffd412c4390658d6a3c26a..83299817d44f2bb443c89ce5ea8bd5171840a066 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1330,6 +1330,26 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) { |
} |
+LInstruction* LChunkBuilder::DoMathMinMax(HMathMinMax* instr) { |
+ LOperand* left = NULL; |
+ LOperand* right = NULL; |
+ if (instr->representation().IsInteger32()) { |
+ ASSERT(instr->left()->representation().IsInteger32()); |
+ ASSERT(instr->right()->representation().IsInteger32()); |
+ left = UseRegisterAtStart(instr->LeastConstantOperand()); |
+ right = UseOrConstantAtStart(instr->MostConstantOperand()); |
+ } else { |
+ ASSERT(instr->representation().IsDouble()); |
+ ASSERT(instr->left()->representation().IsDouble()); |
+ ASSERT(instr->right()->representation().IsDouble()); |
+ left = UseRegisterAtStart(instr->left()); |
+ right = UseRegisterAtStart(instr->right()); |
+ } |
+ LMathMinMax* minmax = new(zone()) LMathMinMax(left, right); |
+ return DefineSameAsFirst(minmax); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoPower(HPower* instr) { |
ASSERT(instr->representation().IsDouble()); |
// We call a C function for double power. It can't trigger a GC. |