| Index: test/cctest/test-disasm-ia32.cc
|
| ===================================================================
|
| --- test/cctest/test-disasm-ia32.cc (revision 4146)
|
| +++ test/cctest/test-disasm-ia32.cc (working copy)
|
| @@ -361,45 +361,47 @@
|
| __ fwait();
|
| __ nop();
|
| {
|
| - CHECK(CpuFeatures::IsSupported(SSE2));
|
| - CpuFeatures::Scope fscope(SSE2);
|
| - __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000));
|
| - __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000));
|
| - __ addsd(xmm1, xmm0);
|
| - __ mulsd(xmm1, xmm0);
|
| - __ subsd(xmm1, xmm0);
|
| - __ divsd(xmm1, xmm0);
|
| - __ movdbl(xmm1, Operand(ebx, ecx, times_4, 10000));
|
| - __ movdbl(Operand(ebx, ecx, times_4, 10000), xmm1);
|
| - __ comisd(xmm0, xmm1);
|
| + if (CpuFeatures::IsSupported(SSE2)) {
|
| + CpuFeatures::Scope fscope(SSE2);
|
| + __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000));
|
| + __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000));
|
| + __ addsd(xmm1, xmm0);
|
| + __ mulsd(xmm1, xmm0);
|
| + __ subsd(xmm1, xmm0);
|
| + __ divsd(xmm1, xmm0);
|
| + __ movdbl(xmm1, Operand(ebx, ecx, times_4, 10000));
|
| + __ movdbl(Operand(ebx, ecx, times_4, 10000), xmm1);
|
| + __ comisd(xmm0, xmm1);
|
|
|
| - // 128 bit move instructions.
|
| - __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000));
|
| - __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0);
|
| - __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000));
|
| - __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0);
|
| + // 128 bit move instructions.
|
| + __ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000));
|
| + __ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0);
|
| + __ movdqu(xmm0, Operand(ebx, ecx, times_4, 10000));
|
| + __ movdqu(Operand(ebx, ecx, times_4, 10000), xmm0);
|
| + }
|
| }
|
|
|
| // cmov.
|
| {
|
| - CHECK(CpuFeatures::IsSupported(CMOV));
|
| - CpuFeatures::Scope use_cmov(CMOV);
|
| - __ cmov(overflow, eax, Operand(eax, 0));
|
| - __ cmov(no_overflow, eax, Operand(eax, 1));
|
| - __ cmov(below, eax, Operand(eax, 2));
|
| - __ cmov(above_equal, eax, Operand(eax, 3));
|
| - __ cmov(equal, eax, Operand(ebx, 0));
|
| - __ cmov(not_equal, eax, Operand(ebx, 1));
|
| - __ cmov(below_equal, eax, Operand(ebx, 2));
|
| - __ cmov(above, eax, Operand(ebx, 3));
|
| - __ cmov(sign, eax, Operand(ecx, 0));
|
| - __ cmov(not_sign, eax, Operand(ecx, 1));
|
| - __ cmov(parity_even, eax, Operand(ecx, 2));
|
| - __ cmov(parity_odd, eax, Operand(ecx, 3));
|
| - __ cmov(less, eax, Operand(edx, 0));
|
| - __ cmov(greater_equal, eax, Operand(edx, 1));
|
| - __ cmov(less_equal, eax, Operand(edx, 2));
|
| - __ cmov(greater, eax, Operand(edx, 3));
|
| + if (CpuFeatures::IsSupported(CMOV)) {
|
| + CpuFeatures::Scope use_cmov(CMOV);
|
| + __ cmov(overflow, eax, Operand(eax, 0));
|
| + __ cmov(no_overflow, eax, Operand(eax, 1));
|
| + __ cmov(below, eax, Operand(eax, 2));
|
| + __ cmov(above_equal, eax, Operand(eax, 3));
|
| + __ cmov(equal, eax, Operand(ebx, 0));
|
| + __ cmov(not_equal, eax, Operand(ebx, 1));
|
| + __ cmov(below_equal, eax, Operand(ebx, 2));
|
| + __ cmov(above, eax, Operand(ebx, 3));
|
| + __ cmov(sign, eax, Operand(ecx, 0));
|
| + __ cmov(not_sign, eax, Operand(ecx, 1));
|
| + __ cmov(parity_even, eax, Operand(ecx, 2));
|
| + __ cmov(parity_odd, eax, Operand(ecx, 3));
|
| + __ cmov(less, eax, Operand(edx, 0));
|
| + __ cmov(greater_equal, eax, Operand(edx, 1));
|
| + __ cmov(less_equal, eax, Operand(edx, 2));
|
| + __ cmov(greater, eax, Operand(edx, 3));
|
| + }
|
| }
|
|
|
| __ ret(0);
|
|
|