Index: test/cctest/test-disasm-ia32.cc |
diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc |
index 7f9a6332ac1d6cd6722a94c1ac78c97de6a3c585..2b4c82f2b12953df87b28e5235bebe2639965353 100644 |
--- a/test/cctest/test-disasm-ia32.cc |
+++ b/test/cctest/test-disasm-ia32.cc |
@@ -349,6 +349,34 @@ TEST(DisasmIa320) { |
__ fcompp(); |
__ fwait(); |
__ nop(); |
+ |
+ // SSE instruction |
+ { |
+ if (CpuFeatures::IsSupported(SSE2)) { |
+ CpuFeatureScope fscope(&assm, SSE2); |
+ // Move operation |
+ __ movaps(xmm0, xmm1); |
+ __ shufps(xmm0, xmm0, 0x0); |
+ |
+ // logic operation |
+ __ andps(xmm0, xmm1); |
+ __ andps(xmm0, Operand(ebx, ecx, times_4, 10000)); |
+ __ orps(xmm0, xmm1); |
+ __ orps(xmm0, Operand(ebx, ecx, times_4, 10000)); |
+ __ xorps(xmm0, xmm1); |
+ __ xorps(xmm0, Operand(ebx, ecx, times_4, 10000)); |
+ |
+ // Arithmetic operation |
+ __ addps(xmm1, xmm0); |
+ __ addps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
+ __ subps(xmm1, xmm0); |
+ __ subps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
+ __ mulps(xmm1, xmm0); |
+ __ mulps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
+ __ divps(xmm1, xmm0); |
+ __ divps(xmm1, Operand(ebx, ecx, times_4, 10000)); |
+ } |
+ } |
{ |
if (CpuFeatures::IsSupported(SSE2)) { |
CpuFeatureScope fscope(&assm, SSE2); |
@@ -356,7 +384,6 @@ TEST(DisasmIa320) { |
__ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
__ movsd(xmm1, Operand(ebx, ecx, times_4, 10000)); |
__ movsd(Operand(ebx, ecx, times_4, 10000), xmm1); |
- __ movaps(xmm0, xmm1); |
// 128 bit move instructions. |
__ movdqa(xmm0, Operand(ebx, ecx, times_4, 10000)); |
__ movdqa(Operand(ebx, ecx, times_4, 10000), xmm0); |
@@ -370,8 +397,6 @@ TEST(DisasmIa320) { |
__ ucomisd(xmm0, xmm1); |
__ cmpltsd(xmm0, xmm1); |
- __ andps(xmm0, xmm1); |
- __ orps(xmm0, xmm1); |
__ andpd(xmm0, xmm1); |
__ psllq(xmm0, 17); |
__ psllq(xmm0, xmm1); |