src/cpu/x86/vm/assembler_x86.hpp

changeset 4103
137868b7aa6f
parent 4052
75f33eecc1b3
child 4159
8e47bac5643a
equal deleted inserted replaced
4102:8d3cc6612bd1 4103:137868b7aa6f
1741 1741
1742 // Copy low 128bit into high 128bit of YMM registers. 1742 // Copy low 128bit into high 128bit of YMM registers.
1743 void vinsertf128h(XMMRegister dst, XMMRegister nds, XMMRegister src); 1743 void vinsertf128h(XMMRegister dst, XMMRegister nds, XMMRegister src);
1744 void vinserti128h(XMMRegister dst, XMMRegister nds, XMMRegister src); 1744 void vinserti128h(XMMRegister dst, XMMRegister nds, XMMRegister src);
1745 1745
1746 // Load/store high 128bit of YMM registers which does not destroy other half.
1747 void vinsertf128h(XMMRegister dst, Address src);
1748 void vinserti128h(XMMRegister dst, Address src);
1749 void vextractf128h(Address dst, XMMRegister src);
1750 void vextracti128h(Address dst, XMMRegister src);
1751
1746 // AVX instruction which is used to clear upper 128 bits of YMM registers and 1752 // AVX instruction which is used to clear upper 128 bits of YMM registers and
1747 // to avoid transaction penalty between AVX and SSE states. There is no 1753 // to avoid transaction penalty between AVX and SSE states. There is no
1748 // penalty if legacy SSE instructions are encoded using VEX prefix because 1754 // penalty if legacy SSE instructions are encoded using VEX prefix because
1749 // they always clear upper 128 bits. It should be used before calling 1755 // they always clear upper 128 bits. It should be used before calling
1750 // runtime code and native libraries. 1756 // runtime code and native libraries.

mercurial