| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 4e5f2785497818ccd179cf2dc47a6d1ceb59c47e..ecb490de5e70707b5db5fff40a940b0f26ccb34c 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -298,6 +298,12 @@ void LUnaryMathOperation::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +void LMathPowHalf::PrintDataTo(StringStream* stream) {
|
| + stream->Add("/pow_half ");
|
| + InputAt(0)->PrintTo(stream);
|
| +}
|
| +
|
| +
|
| void LLoadContextSlot::PrintDataTo(StringStream* stream) {
|
| InputAt(0)->PrintTo(stream);
|
| stream->Add("[%d]", slot_index());
|
| @@ -1184,6 +1190,11 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
|
| } else {
|
| LOperand* input = UseRegisterAtStart(instr->value());
|
| LOperand* context = UseAny(instr->context()); // Deferred use by MathAbs.
|
| + if (op == kMathPowHalf) {
|
| + LOperand* temp = TempRegister();
|
| + LMathPowHalf* result = new(zone()) LMathPowHalf(context, input, temp);
|
| + return DefineSameAsFirst(result);
|
| + }
|
| LUnaryMathOperation* result = new(zone()) LUnaryMathOperation(context,
|
| input);
|
| switch (op) {
|
| @@ -1195,8 +1206,6 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
|
| return AssignEnvironment(DefineAsRegister(result));
|
| case kMathSqrt:
|
| return DefineSameAsFirst(result);
|
| - case kMathPowHalf:
|
| - return DefineSameAsFirst(result);
|
| default:
|
| UNREACHABLE();
|
| return NULL;
|
|
|