| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index c59d9e0e516ae6acf98c0ba5551894a7b777578f..3f3ee8f03e0f6f0909a9d6b678b6f81bc6add11f 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -3891,9 +3891,9 @@ void LCodeGen::DoPower(LPower* instr) {
|
| // Having marked this as a call, we can use any registers.
|
| // Just make sure that the input/output registers are the expected ones.
|
|
|
| - Register exponent = rdx;
|
| + Register tagged_exponent = MathPowTaggedDescriptor::exponent();
|
| DCHECK(!instr->right()->IsRegister() ||
|
| - ToRegister(instr->right()).is(exponent));
|
| + ToRegister(instr->right()).is(tagged_exponent));
|
| DCHECK(!instr->right()->IsDoubleRegister() ||
|
| ToDoubleRegister(instr->right()).is(xmm1));
|
| DCHECK(ToDoubleRegister(instr->left()).is(xmm2));
|
| @@ -3904,8 +3904,8 @@ void LCodeGen::DoPower(LPower* instr) {
|
| __ CallStub(&stub);
|
| } else if (exponent_type.IsTagged()) {
|
| Label no_deopt;
|
| - __ JumpIfSmi(exponent, &no_deopt, Label::kNear);
|
| - __ CmpObjectType(exponent, HEAP_NUMBER_TYPE, rcx);
|
| + __ JumpIfSmi(tagged_exponent, &no_deopt, Label::kNear);
|
| + __ CmpObjectType(tagged_exponent, HEAP_NUMBER_TYPE, rcx);
|
| DeoptimizeIf(not_equal, instr->environment());
|
| __ bind(&no_deopt);
|
| MathPowStub stub(isolate(), MathPowStub::TAGGED);
|
|
|