| Index: src/mips/lithium-mips.cc
|
| diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc
|
| index 2d2a413e897869a7ef97851785c6a817aed9a003..1c548fcdfac104588a4d39dd31516fa6a5f6dc99 100644
|
| --- a/src/mips/lithium-mips.cc
|
| +++ b/src/mips/lithium-mips.cc
|
| @@ -297,6 +297,11 @@ void LUnaryMathOperation::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +void LMathExp::PrintDataTo(StringStream* stream) {
|
| + value()->PrintTo(stream);
|
| +}
|
| +
|
| +
|
| void LLoadContextSlot::PrintDataTo(StringStream* stream) {
|
| context()->PrintTo(stream);
|
| stream->Add("[%d]", slot_index());
|
| @@ -1040,6 +1045,15 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
|
| LOperand* input = UseFixedDouble(instr->value(), f4);
|
| LUnaryMathOperation* result = new(zone()) LUnaryMathOperation(input, NULL);
|
| return MarkAsCall(DefineFixedDouble(result, f4), instr);
|
| + } else if (op == kMathExp) {
|
| + ASSERT(instr->representation().IsDouble());
|
| + ASSERT(instr->value()->representation().IsDouble());
|
| + LOperand* input = UseTempRegister(instr->value());
|
| + LOperand* temp1 = TempRegister();
|
| + LOperand* temp2 = TempRegister();
|
| + LOperand* double_temp = FixedTemp(f6); // Chosen by fair dice roll.
|
| + LMathExp* result = new(zone()) LMathExp(input, double_temp, temp1, temp2);
|
| + return DefineAsRegister(result);
|
| } else if (op == kMathPowHalf) {
|
| // Input cannot be the same as the result.
|
| // See lithium-codegen-mips.cc::DoMathPowHalf.
|
|
|