src/cpu/x86/vm/assembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/cpu/x86/vm/assembler_x86.hpp	Wed Mar  2 14:58:33 2016
--- new/src/cpu/x86/vm/assembler_x86.hpp	Wed Mar  2 14:58:33 2016

*** 1956,1992 **** --- 1956,1990 ---- // Xor packed integers void pxor(XMMRegister dst, XMMRegister src); void vpxor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); void vpxor(XMMRegister dst, XMMRegister nds, Address src, int vector_len); // Copy low 128bit into high 128bit of YMM registers. ! void vinsertf128h(XMMRegister dst, XMMRegister nds, XMMRegister src); ! void vinserti128h(XMMRegister dst, XMMRegister nds, XMMRegister src); ! void vextractf128h(XMMRegister dst, XMMRegister src); ! void vextracti128h(XMMRegister dst, XMMRegister src); // Load/store high 128bit of YMM registers which does not destroy other half. ! void vinsertf128h(XMMRegister dst, Address src); ! void vinserti128h(XMMRegister dst, Address src); void vextractf128h(Address dst, XMMRegister src); void vextracti128h(Address dst, XMMRegister src); // Copy low 256bit into high 256bit of ZMM registers. ! void vinserti64x4h(XMMRegister dst, XMMRegister nds, XMMRegister src, int value); ! void vinsertf64x4h(XMMRegister dst, XMMRegister nds, XMMRegister src, int value); ! void vextracti64x4h(XMMRegister dst, XMMRegister src, int value); ! void vextractf64x4h(XMMRegister dst, XMMRegister src, int value); void vextractf64x4h(Address dst, XMMRegister src, int value); void vinsertf64x4h(XMMRegister dst, Address src, int value); // Copy targeted 128bit segments of the ZMM registers ! void vextracti64x2h(XMMRegister dst, XMMRegister src, int value); ! void vextractf64x2h(XMMRegister dst, XMMRegister src, int value); ! void vextractf32x4h(XMMRegister dst, XMMRegister src, int value); ! void vextractf32x4h(Address dst, XMMRegister src, int value); void vinsertf32x4h(XMMRegister dst, XMMRegister nds, XMMRegister src, int value); void vinsertf32x4h(XMMRegister dst, Address src, int value); + // 128bit copy from/to 256bit (YMM) vector registers ! void vinsertf128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); ! void vinserti128(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); ! void vextractf128(XMMRegister dst, XMMRegister src, uint8_t imm8); ! void vextracti128(XMMRegister dst, XMMRegister src, uint8_t imm8); + void vinsertf128(XMMRegister dst, XMMRegister nds, Address src, uint8_t imm8); + void vinserti128(XMMRegister dst, XMMRegister nds, Address src, uint8_t imm8); ! void vextractf128(Address dst, XMMRegister src, uint8_t imm8); ! void vextracti128(Address dst, XMMRegister src, uint8_t imm8); + + // 256bit copy from/to 512bit (ZMM) vector registers + void vinserti64x4(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); + void vinsertf64x4(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); ! void vextracti64x4(XMMRegister dst, XMMRegister src, uint8_t imm8); ! void vextractf64x4(XMMRegister dst, XMMRegister src, uint8_t imm8); ! void vextractf64x4(Address dst, XMMRegister src, uint8_t imm8); ! void vinsertf64x4(XMMRegister dst, XMMRegister nds, Address src, uint8_t imm8); + + // 128bit copy from/to 256bit (YMM) or 512bit (ZMM) vector registers + void vextracti64x2(XMMRegister dst, XMMRegister src, uint8_t imm8); + void vextractf64x2(XMMRegister dst, XMMRegister src, uint8_t imm8); ! void vextractf32x4(XMMRegister dst, XMMRegister src, uint8_t imm8); ! void vextractf32x4(Address dst, XMMRegister src, uint8_t imm8); ! void vinsertf32x4(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); ! void vinsertf32x4(XMMRegister dst, XMMRegister nds, Address src, uint8_t imm8); // duplicate 4-bytes integer data from src into 8 locations in dest void vpbroadcastd(XMMRegister dst, XMMRegister src); // duplicate 2-bytes integer data from src into 16 locations in dest

src/cpu/x86/vm/assembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File