| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 0175ca7249a9fe7c4b1a8a5a12b947895aa1869a..65a300edcd2fea15d20b081f81ec6d146a3e97ef 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -299,6 +299,11 @@ void LUnaryMathOperation::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +void LMathExp::PrintDataTo(StringStream* stream) {
|
| + value()->PrintTo(stream);
|
| +}
|
| +
|
| +
|
| void LMathPowHalf::PrintDataTo(StringStream* stream) {
|
| stream->Add("/pow_half ");
|
| value()->PrintTo(stream);
|
| @@ -1087,6 +1092,14 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
|
| LUnaryMathOperation* result = new(zone()) LUnaryMathOperation(context,
|
| input);
|
| return DefineSameAsFirst(result);
|
| + } else if (op == kMathExp) {
|
| + ASSERT(instr->representation().IsDouble());
|
| + ASSERT(instr->value()->representation().IsDouble());
|
| + LOperand* value = UseTempRegister(instr->value());
|
| + LOperand* temp1 = TempRegister();
|
| + LOperand* temp2 = TempRegister();
|
| + LMathExp* result = new(zone()) LMathExp(value, temp1, temp2);
|
| + return DefineAsRegister(result);
|
| } else if (op == kMathSin || op == kMathCos || op == kMathTan) {
|
| LOperand* context = UseFixed(instr->context(), esi);
|
| LOperand* input = UseFixedDouble(instr->value(), xmm1);
|
|
|