--- old/src/cpu/x86/vm/assembler_x86.hpp 2016-04-15 10:37:36.030985000 -0700 +++ new/src/cpu/x86/vm/assembler_x86.hpp 2016-04-15 10:37:35.886456100 -0700 @@ -1364,6 +1364,10 @@ void movdqa(XMMRegister dst, XMMRegister src); void movdqa(XMMRegister dst, Address src); + void movdqa(Address dst, XMMRegister src); + void vmovdqa(XMMRegister dst, Address src); + void vmovdqa(Address dst, XMMRegister src); + // Move Unaligned Double Quadword void movdqu(Address dst, XMMRegister src); void movdqu(XMMRegister dst, Address src); @@ -1519,6 +1523,7 @@ // Pemutation of 64bit words void vpermq(XMMRegister dst, XMMRegister src, int imm8, int vector_len); void vpermq(XMMRegister dst, XMMRegister src, int imm8); + void vperm2i128(XMMRegister dst, XMMRegister nds, XMMRegister src, int imm8); void pause(); @@ -1603,10 +1608,12 @@ // Shuffle Bytes void pshufb(XMMRegister dst, XMMRegister src); void pshufb(XMMRegister dst, Address src); + void vpshufb(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); // Shuffle Packed Doublewords void pshufd(XMMRegister dst, XMMRegister src, int mode); void pshufd(XMMRegister dst, Address src, int mode); + void vpshufd(XMMRegister dst, XMMRegister src, int mode, int vector_len); // Shuffle Packed Low Words void pshuflw(XMMRegister dst, XMMRegister src, int mode); @@ -1614,8 +1621,10 @@ // Shift Right by bytes Logical DoubleQuadword Immediate void psrldq(XMMRegister dst, int shift); + void vpsrldq(XMMRegister dst, XMMRegister src, int shift, int vector_len); // Shift Left by bytes Logical DoubleQuadword Immediate void pslldq(XMMRegister dst, int shift); + void vpslldq(XMMRegister dst, XMMRegister src, int shift, int vector_len); // Logical Compare 128bit void ptest(XMMRegister dst, XMMRegister src); @@ -1658,6 +1667,7 @@ #ifdef _LP64 void rorq(Register dst, int imm8); void rorxq(Register dst, Register src, int imm8); + void rorxd(Register dst, Register src, int imm8); #endif void sahf(); @@ -1681,6 +1691,8 @@ void setb(Condition cc, Register dst); void palignr(XMMRegister dst, XMMRegister src, int imm8); + void vpalignr(XMMRegister dst, XMMRegister src1, XMMRegister src2, int imm8, int vector_len); + void pblendw(XMMRegister dst, XMMRegister src, int imm8); void sha1rnds4(XMMRegister dst, XMMRegister src, int imm8);