X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fv8%2Ftest%2Fcctest%2Ftest-disasm-ia32.cc;h=d24529ac170c038b54ac79c5b2faedcb7ed9d4e6;hb=cb22b7ee5e7e6fb35ab4a8fe4fef33212fa7815a;hp=aa81b4f3028ab70ae88ce885d1eed3567033b9a0;hpb=3d4b1238397d7c77f040bf34449d2dc9eddca101;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/v8/test/cctest/test-disasm-ia32.cc b/src/v8/test/cctest/test-disasm-ia32.cc index aa81b4f..d24529a 100644 --- a/src/v8/test/cctest/test-disasm-ia32.cc +++ b/src/v8/test/cctest/test-disasm-ia32.cc @@ -411,6 +411,83 @@ TEST(DisasmIa320) { __ psrlq(xmm0, xmm1); __ por(xmm0, xmm1); } + { + __ cvttss2si(edx, Operand(ebx, ecx, times_4, 10000)); + __ cvtsi2sd(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ movsd(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ movsd(Operand(ebx, ecx, times_4, 10000), 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); + + __ addsd(xmm1, xmm0); + __ mulsd(xmm1, xmm0); + __ subsd(xmm1, xmm0); + __ divsd(xmm1, xmm0); + __ ucomisd(xmm0, xmm1); + __ cmpltsd(xmm0, xmm1); + + __ andpd(xmm0, xmm1); + __ psllq(xmm0, 17); + __ psllq(xmm0, xmm1); + __ psrlq(xmm0, 17); + __ psrlq(xmm0, xmm1); + __ por(xmm0, xmm1); + + // new instruction introduced by SIMD + __ cvtdq2ps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ cvtdq2ps(xmm1, xmm0); + __ cvtps2dq(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ cvtps2dq(xmm1, xmm0); + __ paddd(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ paddd(xmm1, xmm0); + __ psubd(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ psubd(xmm1, xmm0); + __ pmuludq(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ pmuludq(xmm1, xmm0); + __ punpackldq(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ punpackldq(xmm1, xmm0); + { + __ shufps(xmm1, xmm1, 0x0); + __ movups(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ movups(Operand(ebx, ecx, times_4, 10000), xmm1); + + __ andps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ andps(xmm1, xmm0); + __ xorps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ xorps(xmm1, xmm0); + __ orps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ orps(xmm1, xmm0); + + __ addps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ addps(xmm1, xmm0); + __ subps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ subps(xmm1, xmm0); + __ mulps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ mulps(xmm1, xmm0); + __ divps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ divps(xmm1, xmm0); + __ minps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ minps(xmm1, xmm0); + __ maxps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ maxps(xmm1, xmm0); + __ rcpps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ rcpps(xmm1, xmm0); + __ rsqrtps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ rsqrtps(xmm1, xmm0); + __ sqrtps(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ sqrtps(xmm1, xmm0); + + __ cmpeqps(xmm1, xmm0); + __ cmpltps(xmm1, xmm0); + __ cmpleps(xmm1, xmm0); + __ cmpneqps(xmm1, xmm0); + __ cmpnltps(xmm1, xmm0); + __ cmpnleps(xmm1, xmm0); + } + } // cmov. { @@ -438,6 +515,9 @@ TEST(DisasmIa320) { __ pextrd(eax, xmm0, 1); __ pinsrd(xmm1, eax, 0); __ extractps(eax, xmm1, 0); + __ insertps(xmm1, xmm0, 0); + __ pmulld(xmm1, Operand(ebx, ecx, times_4, 10000)); + __ pmulld(xmm1, xmm0); } }