1264 void movdq(XMMRegister dst, Register src); |
1264 void movdq(XMMRegister dst, Register src); |
1265 void movdq(Register dst, XMMRegister src); |
1265 void movdq(Register dst, XMMRegister src); |
1266 |
1266 |
1267 // Move Aligned Double Quadword |
1267 // Move Aligned Double Quadword |
1268 void movdqa(XMMRegister dst, XMMRegister src); |
1268 void movdqa(XMMRegister dst, XMMRegister src); |
|
1269 void movdqa(XMMRegister dst, Address src); |
1269 |
1270 |
1270 // Move Unaligned Double Quadword |
1271 // Move Unaligned Double Quadword |
1271 void movdqu(Address dst, XMMRegister src); |
1272 void movdqu(Address dst, XMMRegister src); |
1272 void movdqu(XMMRegister dst, Address src); |
1273 void movdqu(XMMRegister dst, Address src); |
1273 void movdqu(XMMRegister dst, XMMRegister src); |
1274 void movdqu(XMMRegister dst, XMMRegister src); |
1401 void vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256); |
1402 void vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256); |
1402 |
1403 |
1403 // SSE4.2 string instructions |
1404 // SSE4.2 string instructions |
1404 void pcmpestri(XMMRegister xmm1, XMMRegister xmm2, int imm8); |
1405 void pcmpestri(XMMRegister xmm1, XMMRegister xmm2, int imm8); |
1405 void pcmpestri(XMMRegister xmm1, Address src, int imm8); |
1406 void pcmpestri(XMMRegister xmm1, Address src, int imm8); |
|
1407 |
|
1408 // SSE 4.1 extract |
|
1409 void pextrd(Register dst, XMMRegister src, int imm8); |
|
1410 void pextrq(Register dst, XMMRegister src, int imm8); |
|
1411 |
|
1412 // SSE 4.1 insert |
|
1413 void pinsrd(XMMRegister dst, Register src, int imm8); |
|
1414 void pinsrq(XMMRegister dst, Register src, int imm8); |
1406 |
1415 |
1407 // SSE4.1 packed move |
1416 // SSE4.1 packed move |
1408 void pmovzxbw(XMMRegister dst, XMMRegister src); |
1417 void pmovzxbw(XMMRegister dst, XMMRegister src); |
1409 void pmovzxbw(XMMRegister dst, Address src); |
1418 void pmovzxbw(XMMRegister dst, Address src); |
1410 |
1419 |
1762 void vextracti128h(Address dst, XMMRegister src); |
1771 void vextracti128h(Address dst, XMMRegister src); |
1763 |
1772 |
1764 // duplicate 4-bytes integer data from src into 8 locations in dest |
1773 // duplicate 4-bytes integer data from src into 8 locations in dest |
1765 void vpbroadcastd(XMMRegister dst, XMMRegister src); |
1774 void vpbroadcastd(XMMRegister dst, XMMRegister src); |
1766 |
1775 |
|
1776 // Carry-Less Multiplication Quadword |
|
1777 void vpclmulqdq(XMMRegister dst, XMMRegister nds, XMMRegister src, int mask); |
|
1778 |
1767 // AVX instruction which is used to clear upper 128 bits of YMM registers and |
1779 // AVX instruction which is used to clear upper 128 bits of YMM registers and |
1768 // to avoid transaction penalty between AVX and SSE states. There is no |
1780 // to avoid transaction penalty between AVX and SSE states. There is no |
1769 // penalty if legacy SSE instructions are encoded using VEX prefix because |
1781 // penalty if legacy SSE instructions are encoded using VEX prefix because |
1770 // they always clear upper 128 bits. It should be used before calling |
1782 // they always clear upper 128 bits. It should be used before calling |
1771 // runtime code and native libraries. |
1783 // runtime code and native libraries. |