diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc index f869fec4fe..b7eaa12c8b 100644 --- a/src/ia32/codegen-ia32.cc +++ b/src/ia32/codegen-ia32.cc @@ -5368,13 +5368,12 @@ void CodeGenerator::GeneratePow(ZoneList* args) { __ cmp(FieldOperand(y.reg(), HeapObject::kMapOffset), Factory::heap_number_map()); __ j(not_equal, &go_runtime); + // Y must be a double. + __ movdbl(xmm1, FieldOperand(y.reg(), HeapNumber::kValueOffset)); // Test if y is nan. __ ucomisd(xmm1, xmm1); __ j(parity_even, &go_runtime); - // Y must be a double. - __ movdbl(xmm1, FieldOperand(y.reg(), HeapNumber::kValueOffset)); - Label x_not_smi; Label handle_special_cases; __ test(x.reg(), Immediate(kSmiTagMask));