Index: test/cctest/test-disasm-x64.cc |
diff --git a/test/cctest/test-disasm-x64.cc b/test/cctest/test-disasm-x64.cc |
index 3a6c45845e7b92fe980ce9834349f3395b66818f..8fd036956f368a0473f5ffeca5d25c5ed20c3d49 100644 |
--- a/test/cctest/test-disasm-x64.cc |
+++ b/test/cctest/test-disasm-x64.cc |
@@ -335,61 +335,53 @@ TEST(DisasmX64) { |
__ fcompp(); |
__ fwait(); |
__ nop(); |
+ |
+ // SSE instruction |
{ |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatures::Scope fscope(SSE2); |
- __ cvttss2si(rdx, Operand(rbx, rcx, times_4, 10000)); |
- __ cvttss2si(rdx, xmm1); |
- __ cvttsd2si(rdx, Operand(rbx, rcx, times_4, 10000)); |
- __ cvttsd2si(rdx, xmm1); |
- __ cvttsd2siq(rdx, xmm1); |
- __ addsd(xmm1, xmm0); |
- __ mulsd(xmm1, xmm0); |
- __ subsd(xmm1, xmm0); |
- __ divsd(xmm1, xmm0); |
- __ movsd(xmm1, Operand(rbx, rcx, times_4, 10000)); |
- __ movsd(Operand(rbx, rcx, times_4, 10000), xmm1); |
- __ ucomisd(xmm0, xmm1); |
- |
- // 128 bit move instructions. |
- __ movdqa(xmm0, Operand(rbx, rcx, times_4, 10000)); |
- __ movdqa(Operand(rbx, rcx, times_4, 10000), xmm0); |
- } |
- } |
+ __ cvttss2si(rdx, Operand(rbx, rcx, times_4, 10000)); |
+ __ cvttss2si(rdx, xmm1); |
+ __ movaps(xmm0, xmm1); |
- // cmov. |
+ __ andps(xmm0, xmm1); |
+ } |
+ // SSE 2 instructions |
{ |
- if (CpuFeatures::IsSupported(CMOV)) { |
- CpuFeatures::Scope use_cmov(CMOV); |
- __ cmovq(overflow, rax, Operand(rax, 0)); |
- __ cmovq(no_overflow, rax, Operand(rax, 1)); |
- __ cmovq(below, rax, Operand(rax, 2)); |
- __ cmovq(above_equal, rax, Operand(rax, 3)); |
- __ cmovq(equal, rax, Operand(rbx, 0)); |
- __ cmovq(not_equal, rax, Operand(rbx, 1)); |
- __ cmovq(below_equal, rax, Operand(rbx, 2)); |
- __ cmovq(above, rax, Operand(rbx, 3)); |
- __ cmovq(sign, rax, Operand(rcx, 0)); |
- __ cmovq(not_sign, rax, Operand(rcx, 1)); |
- __ cmovq(parity_even, rax, Operand(rcx, 2)); |
- __ cmovq(parity_odd, rax, Operand(rcx, 3)); |
- __ cmovq(less, rax, Operand(rdx, 0)); |
- __ cmovq(greater_equal, rax, Operand(rdx, 1)); |
- __ cmovq(less_equal, rax, Operand(rdx, 2)); |
- __ cmovq(greater, rax, Operand(rdx, 3)); |
- } |
+ __ cvttsd2si(rdx, Operand(rbx, rcx, times_4, 10000)); |
+ __ cvttsd2si(rdx, xmm1); |
+ __ cvttsd2siq(rdx, xmm1); |
+ __ movsd(xmm1, Operand(rbx, rcx, times_4, 10000)); |
+ __ movsd(Operand(rbx, rcx, times_4, 10000), xmm1); |
+ // 128 bit move instructions. |
+ __ movdqa(xmm0, Operand(rbx, rcx, times_4, 10000)); |
+ __ movdqa(Operand(rbx, rcx, times_4, 10000), xmm0); |
+ |
+ __ addsd(xmm1, xmm0); |
+ __ mulsd(xmm1, xmm0); |
+ __ subsd(xmm1, xmm0); |
+ __ divsd(xmm1, xmm0); |
+ __ ucomisd(xmm0, xmm1); |
+ |
+ __ andpd(xmm0, xmm1); |
} |
- // andpd, etc. |
+ // cmov. |
{ |
- if (CpuFeatures::IsSupported(SSE2)) { |
- CpuFeatures::Scope fscope(SSE2); |
- __ andpd(xmm0, xmm1); |
- __ andpd(xmm1, xmm2); |
- |
- __ movaps(xmm0, xmm1); |
- __ movaps(xmm1, xmm2); |
- } |
+ __ cmovq(overflow, rax, Operand(rax, 0)); |
+ __ cmovq(no_overflow, rax, Operand(rax, 1)); |
+ __ cmovq(below, rax, Operand(rax, 2)); |
+ __ cmovq(above_equal, rax, Operand(rax, 3)); |
+ __ cmovq(equal, rax, Operand(rbx, 0)); |
+ __ cmovq(not_equal, rax, Operand(rbx, 1)); |
+ __ cmovq(below_equal, rax, Operand(rbx, 2)); |
+ __ cmovq(above, rax, Operand(rbx, 3)); |
+ __ cmovq(sign, rax, Operand(rcx, 0)); |
+ __ cmovq(not_sign, rax, Operand(rcx, 1)); |
+ __ cmovq(parity_even, rax, Operand(rcx, 2)); |
+ __ cmovq(parity_odd, rax, Operand(rcx, 3)); |
+ __ cmovq(less, rax, Operand(rdx, 0)); |
+ __ cmovq(greater_equal, rax, Operand(rdx, 1)); |
+ __ cmovq(less_equal, rax, Operand(rdx, 2)); |
+ __ cmovq(greater, rax, Operand(rdx, 3)); |
} |
{ |