| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 688a557ee8710819abb682b569a939f45819b4cc..4f3eed3b7b8c6b584228530d067659b6b058c1d9 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -2833,7 +2833,7 @@ void LCodeGen::DoPower(LPower* instr) {
|
| __ bind(&non_smi);
|
| __ CmpObjectType(right_reg, HEAP_NUMBER_TYPE , kScratchRegister);
|
| DeoptimizeIf(not_equal, instr->environment());
|
| - __ movsd(xmm1, FieldOperand(right_reg, HeapNumber::kValueOffset));
|
| + __ LoadDbl(xmm1, FieldOperand(right_reg, HeapNumber::kValueOffset));
|
|
|
| __ bind(&call);
|
| __ PrepareCallCFunction(2);
|
| @@ -3436,7 +3436,7 @@ void LCodeGen::EmitNumberUntagD(Register input_reg,
|
|
|
| // Heap number to XMM conversion.
|
| __ bind(&heap_number);
|
| - __ movsd(result_reg, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDbl(result_reg, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| __ jmp(&done);
|
|
|
| // Smi to XMM conversion
|
| @@ -3476,7 +3476,7 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
|
|
| __ bind(&heap_number);
|
|
|
| - __ movsd(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDbl(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| __ cvttsd2siq(input_reg, xmm0);
|
| __ Set(kScratchRegister, V8_UINT64_C(0x8000000000000000));
|
| __ cmpq(input_reg, kScratchRegister);
|
| @@ -3486,7 +3486,7 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) {
|
| DeoptimizeIf(not_equal, instr->environment());
|
|
|
| XMMRegister xmm_temp = ToDoubleRegister(instr->TempAt(0));
|
| - __ movsd(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| + __ LoadDbl(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| __ cvttsd2si(input_reg, xmm0);
|
| __ cvtlsi2sd(xmm_temp, input_reg);
|
| __ ucomisd(xmm0, xmm_temp);
|
|
|