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 Mon Mar 7 11:24:31 2016
--- new/src/cpu/x86/vm/assembler_x86.hpp Mon Mar 7 11:24:31 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