| Index: src/compiler/ia32/code-generator-ia32.cc
|
| diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc
|
| index 6df22f6d5f44d52fad748e958a584be537e27c16..9ffc1c51b9edddfc1aebc7f017a9079ad25e84db 100644
|
| --- a/src/compiler/ia32/code-generator-ia32.cc
|
| +++ b/src/compiler/ia32/code-generator-ia32.cc
|
| @@ -682,6 +682,21 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
|
| case kIeee754Float64Log10:
|
| ASSEMBLE_IEEE754_UNOP(log10);
|
| break;
|
| + case kIeee754Float64Pow: {
|
| + // TODO(bmeurer): Improve integration of the stub.
|
| + if (!i.InputDoubleRegister(1).is(xmm2)) {
|
| + __ movaps(xmm2, i.InputDoubleRegister(0));
|
| + __ movaps(xmm1, i.InputDoubleRegister(1));
|
| + } else {
|
| + __ movaps(xmm0, i.InputDoubleRegister(0));
|
| + __ movaps(xmm1, xmm2);
|
| + __ movaps(xmm2, xmm0);
|
| + }
|
| + MathPowStub stub(isolate(), MathPowStub::DOUBLE);
|
| + __ CallStub(&stub);
|
| + __ movaps(i.OutputDoubleRegister(), xmm3);
|
| + break;
|
| + }
|
| case kIeee754Float64Sin:
|
| ASSEMBLE_IEEE754_UNOP(sin);
|
| break;
|
|
|