| Index: src/ia32/codegen-ia32.cc
|
| diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
|
| index b28161dd69a35d6d2808bdc2a75d32a77bec5e3f..da88146634d07f8180cdc890becdc071b6e63cd5 100644
|
| --- a/src/ia32/codegen-ia32.cc
|
| +++ b/src/ia32/codegen-ia32.cc
|
| @@ -117,7 +117,7 @@ UnaryMathFunction CreateExpFunction() {
|
| CpuFeatureScope use_sse2(&masm, SSE2);
|
| XMMRegister input = xmm1;
|
| XMMRegister result = xmm2;
|
| - __ movdbl(input, Operand(esp, 1 * kPointerSize));
|
| + __ movsd(input, Operand(esp, 1 * kPointerSize));
|
| __ push(eax);
|
| __ push(ebx);
|
|
|
| @@ -125,7 +125,7 @@ UnaryMathFunction CreateExpFunction() {
|
|
|
| __ pop(ebx);
|
| __ pop(eax);
|
| - __ movdbl(Operand(esp, 1 * kPointerSize), result);
|
| + __ movsd(Operand(esp, 1 * kPointerSize), result);
|
| __ fld_d(Operand(esp, 1 * kPointerSize));
|
| __ Ret();
|
| }
|
| @@ -155,9 +155,9 @@ UnaryMathFunction CreateSqrtFunction() {
|
| // Move double input into registers.
|
| {
|
| CpuFeatureScope use_sse2(&masm, SSE2);
|
| - __ movdbl(xmm0, Operand(esp, 1 * kPointerSize));
|
| + __ movsd(xmm0, Operand(esp, 1 * kPointerSize));
|
| __ sqrtsd(xmm0, xmm0);
|
| - __ movdbl(Operand(esp, 1 * kPointerSize), xmm0);
|
| + __ movsd(Operand(esp, 1 * kPointerSize), xmm0);
|
| // Load result into floating point register as return value.
|
| __ fld_d(Operand(esp, 1 * kPointerSize));
|
| __ Ret();
|
| @@ -462,10 +462,10 @@ OS::MemMoveFunction CreateMemMoveFunction() {
|
| Label medium_handlers, f9_16, f17_32, f33_48, f49_63;
|
|
|
| __ bind(&f9_16);
|
| - __ movdbl(xmm0, Operand(src, 0));
|
| - __ movdbl(xmm1, Operand(src, count, times_1, -8));
|
| - __ movdbl(Operand(dst, 0), xmm0);
|
| - __ movdbl(Operand(dst, count, times_1, -8), xmm1);
|
| + __ movsd(xmm0, Operand(src, 0));
|
| + __ movsd(xmm1, Operand(src, count, times_1, -8));
|
| + __ movsd(Operand(dst, 0), xmm0);
|
| + __ movsd(Operand(dst, count, times_1, -8), xmm1);
|
| MemMoveEmitPopAndReturn(&masm);
|
|
|
| __ bind(&f17_32);
|
| @@ -741,7 +741,7 @@ void ElementsTransitionGenerator::GenerateSmiToDouble(
|
| XMMRegister the_hole_nan = xmm1;
|
| if (CpuFeatures::IsSupported(SSE2)) {
|
| CpuFeatureScope use_sse2(masm, SSE2);
|
| - __ movdbl(the_hole_nan,
|
| + __ movsd(the_hole_nan,
|
| Operand::StaticVariable(canonical_the_hole_nan_reference));
|
| }
|
| __ jmp(&entry);
|
| @@ -767,7 +767,7 @@ void ElementsTransitionGenerator::GenerateSmiToDouble(
|
| if (CpuFeatures::IsSupported(SSE2)) {
|
| CpuFeatureScope fscope(masm, SSE2);
|
| __ Cvtsi2sd(xmm0, ebx);
|
| - __ movdbl(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
|
| + __ movsd(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
|
| xmm0);
|
| } else {
|
| __ push(ebx);
|
| @@ -787,7 +787,7 @@ void ElementsTransitionGenerator::GenerateSmiToDouble(
|
|
|
| if (CpuFeatures::IsSupported(SSE2)) {
|
| CpuFeatureScope use_sse2(masm, SSE2);
|
| - __ movdbl(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
|
| + __ movsd(FieldOperand(eax, edi, times_4, FixedDoubleArray::kHeaderSize),
|
| the_hole_nan);
|
| } else {
|
| __ fld_d(Operand::StaticVariable(canonical_the_hole_nan_reference));
|
| @@ -896,9 +896,9 @@ void ElementsTransitionGenerator::GenerateDoubleToObject(
|
| // edx: new heap number
|
| if (CpuFeatures::IsSupported(SSE2)) {
|
| CpuFeatureScope fscope(masm, SSE2);
|
| - __ movdbl(xmm0,
|
| + __ movsd(xmm0,
|
| FieldOperand(edi, ebx, times_4, FixedDoubleArray::kHeaderSize));
|
| - __ movdbl(FieldOperand(edx, HeapNumber::kValueOffset), xmm0);
|
| + __ movsd(FieldOperand(edx, HeapNumber::kValueOffset), xmm0);
|
| } else {
|
| __ mov(esi, FieldOperand(edi, ebx, times_4, FixedDoubleArray::kHeaderSize));
|
| __ mov(FieldOperand(edx, HeapNumber::kValueOffset), esi);
|
| @@ -1078,20 +1078,20 @@ void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
|
|
|
| Label done;
|
|
|
| - __ movdbl(double_scratch, ExpConstant(0));
|
| + __ movsd(double_scratch, ExpConstant(0));
|
| __ xorpd(result, result);
|
| __ ucomisd(double_scratch, input);
|
| __ j(above_equal, &done);
|
| __ ucomisd(input, ExpConstant(1));
|
| - __ movdbl(result, ExpConstant(2));
|
| + __ movsd(result, ExpConstant(2));
|
| __ j(above_equal, &done);
|
| - __ movdbl(double_scratch, ExpConstant(3));
|
| - __ movdbl(result, ExpConstant(4));
|
| + __ movsd(double_scratch, ExpConstant(3));
|
| + __ movsd(result, ExpConstant(4));
|
| __ mulsd(double_scratch, input);
|
| __ addsd(double_scratch, result);
|
| __ movd(temp2, double_scratch);
|
| __ subsd(double_scratch, result);
|
| - __ movdbl(result, ExpConstant(6));
|
| + __ movsd(result, ExpConstant(6));
|
| __ mulsd(double_scratch, ExpConstant(5));
|
| __ subsd(double_scratch, input);
|
| __ subsd(result, double_scratch);
|
| @@ -1108,7 +1108,7 @@ void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
|
| __ shl(temp1, 20);
|
| __ movd(input, temp1);
|
| __ pshufd(input, input, static_cast<uint8_t>(0xe1)); // Order: 11 10 00 01
|
| - __ movdbl(double_scratch, Operand::StaticArray(
|
| + __ movsd(double_scratch, Operand::StaticArray(
|
| temp2, times_8, ExternalReference::math_exp_log_table()));
|
| __ por(input, double_scratch);
|
| __ mulsd(result, input);
|
|
|