Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.hpp @ 7482:989155e2d07a
Merge with hs25-b15.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Wed, 16 Jan 2013 01:34:24 +0100 |
parents | 038dd2875b94 |
children | b30b3c2a0cf2 8b46b0196eb0 |
comparison
equal
deleted
inserted
replaced
7381:6761a8f854a4 | 7482:989155e2d07a |
---|---|
830 void push(void* v); | 830 void push(void* v); |
831 void pop(void* v); | 831 void pop(void* v); |
832 | 832 |
833 // These do register sized moves/scans | 833 // These do register sized moves/scans |
834 void rep_mov(); | 834 void rep_mov(); |
835 void rep_set(); | 835 void rep_stos(); |
836 void rep_stosb(); | |
836 void repne_scan(); | 837 void repne_scan(); |
837 #ifdef _LP64 | 838 #ifdef _LP64 |
838 void repne_scanl(); | 839 void repne_scanl(); |
839 #endif | 840 #endif |
840 | 841 |
1441 void pshuflw(XMMRegister dst, Address src, int mode); | 1442 void pshuflw(XMMRegister dst, Address src, int mode); |
1442 | 1443 |
1443 // Shift Right by bytes Logical DoubleQuadword Immediate | 1444 // Shift Right by bytes Logical DoubleQuadword Immediate |
1444 void psrldq(XMMRegister dst, int shift); | 1445 void psrldq(XMMRegister dst, int shift); |
1445 | 1446 |
1446 // Logical Compare Double Quadword | 1447 // Logical Compare 128bit |
1447 void ptest(XMMRegister dst, XMMRegister src); | 1448 void ptest(XMMRegister dst, XMMRegister src); |
1448 void ptest(XMMRegister dst, Address src); | 1449 void ptest(XMMRegister dst, Address src); |
1450 // Logical Compare 256bit | |
1451 void vptest(XMMRegister dst, XMMRegister src); | |
1452 void vptest(XMMRegister dst, Address src); | |
1449 | 1453 |
1450 // Interleave Low Bytes | 1454 // Interleave Low Bytes |
1451 void punpcklbw(XMMRegister dst, XMMRegister src); | 1455 void punpcklbw(XMMRegister dst, XMMRegister src); |
1452 void punpcklbw(XMMRegister dst, Address src); | 1456 void punpcklbw(XMMRegister dst, Address src); |
1453 | 1457 |
1751 void vinsertf128h(XMMRegister dst, Address src); | 1755 void vinsertf128h(XMMRegister dst, Address src); |
1752 void vinserti128h(XMMRegister dst, Address src); | 1756 void vinserti128h(XMMRegister dst, Address src); |
1753 void vextractf128h(Address dst, XMMRegister src); | 1757 void vextractf128h(Address dst, XMMRegister src); |
1754 void vextracti128h(Address dst, XMMRegister src); | 1758 void vextracti128h(Address dst, XMMRegister src); |
1755 | 1759 |
1760 // duplicate 4-bytes integer data from src into 8 locations in dest | |
1761 void vpbroadcastd(XMMRegister dst, XMMRegister src); | |
1762 | |
1756 // AVX instruction which is used to clear upper 128 bits of YMM registers and | 1763 // AVX instruction which is used to clear upper 128 bits of YMM registers and |
1757 // to avoid transaction penalty between AVX and SSE states. There is no | 1764 // to avoid transaction penalty between AVX and SSE states. There is no |
1758 // penalty if legacy SSE instructions are encoded using VEX prefix because | 1765 // penalty if legacy SSE instructions are encoded using VEX prefix because |
1759 // they always clear upper 128 bits. It should be used before calling | 1766 // they always clear upper 128 bits. It should be used before calling |
1760 // runtime code and native libraries. | 1767 // runtime code and native libraries. |