| Index: src/IceAssemblerX86BaseImpl.h
|
| diff --git a/src/IceAssemblerX86BaseImpl.h b/src/IceAssemblerX86BaseImpl.h
|
| index a986515753637610dde2fd869d2f2a613a3978be..554f533cd94ab4f0d2cddb432e8a8d8a8288fe28 100644
|
| --- a/src/IceAssemblerX86BaseImpl.h
|
| +++ b/src/IceAssemblerX86BaseImpl.h
|
| @@ -1535,6 +1535,31 @@ void AssemblerX86Base<TraitsType>::set1ps(XmmRegister dst, GPRRegister tmp1,
|
| }
|
|
|
| template <typename TraitsType>
|
| +void AssemblerX86Base<TraitsType>::pshufb(Type /* Ty */, XmmRegister dst,
|
| + XmmRegister src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&Buffer);
|
| + emitUint8(0x66);
|
| + emitRexRB(RexTypeIrrelevant, dst, src);
|
| + emitUint8(0x0F);
|
| + emitUint8(0x38);
|
| + emitUint8(0x00);
|
| + emitXmmRegisterOperand(dst, src);
|
| +}
|
| +
|
| +template <typename TraitsType>
|
| +void AssemblerX86Base<TraitsType>::pshufb(Type /* Ty */, XmmRegister dst,
|
| + const Address &src) {
|
| + AssemblerBuffer::EnsureCapacity ensured(&Buffer);
|
| + emitUint8(0x66);
|
| + emitAddrSizeOverridePrefix();
|
| + emitRex(RexTypeIrrelevant, src, dst);
|
| + emitUint8(0x0F);
|
| + emitUint8(0x38);
|
| + emitUint8(0x00);
|
| + emitOperand(gprEncoding(dst), src);
|
| +}
|
| +
|
| +template <typename TraitsType>
|
| void AssemblerX86Base<TraitsType>::pshufd(Type /* Ty */, XmmRegister dst,
|
| XmmRegister src,
|
| const Immediate &imm) {
|
|
|