Index: src/crankshaft/x64/lithium-x64.cc |
diff --git a/src/crankshaft/x64/lithium-x64.cc b/src/crankshaft/x64/lithium-x64.cc |
index 192c3beac9a37202fe3b20189ca3240a308155dd..cf0ebc512d9e32018ebed40e4898110bd3df9e18 100644 |
--- a/src/crankshaft/x64/lithium-x64.cc |
+++ b/src/crankshaft/x64/lithium-x64.cc |
@@ -1090,10 +1090,14 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) { |
return DoMathFround(instr); |
case kMathAbs: |
return DoMathAbs(instr); |
+ case kMathCos: |
+ return DoMathCos(instr); |
case kMathLog: |
return DoMathLog(instr); |
case kMathExp: |
return DoMathExp(instr); |
+ case kMathSin: |
+ return DoMathSin(instr); |
case kMathSqrt: |
return DoMathSqrt(instr); |
case kMathPowHalf: |
@@ -1167,6 +1171,13 @@ LInstruction* LChunkBuilder::DoMathClz32(HUnaryMathOperation* instr) { |
return DefineAsRegister(result); |
} |
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) { |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->value()->representation().IsDouble()); |
+ LOperand* input = UseFixedDouble(instr->value(), xmm0); |
+ return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), xmm0), |
+ instr); |
+} |
LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { |
DCHECK(instr->representation().IsDouble()); |
@@ -1176,6 +1187,13 @@ LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) { |
instr); |
} |
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) { |
+ DCHECK(instr->representation().IsDouble()); |
+ DCHECK(instr->value()->representation().IsDouble()); |
+ LOperand* input = UseFixedDouble(instr->value(), xmm0); |
+ return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), xmm0), |
+ instr); |
+} |
LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) { |
LOperand* input = UseAtStart(instr->value()); |