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); |