Index: src/IceAssemblerX86BaseImpl.h |
diff --git a/src/IceAssemblerX86BaseImpl.h b/src/IceAssemblerX86BaseImpl.h |
index 1bf15501a9208afec87fe9ce057bf89217d3425b..a986515753637610dde2fd869d2f2a613a3978be 100644 |
--- a/src/IceAssemblerX86BaseImpl.h |
+++ b/src/IceAssemblerX86BaseImpl.h |
@@ -1565,6 +1565,29 @@ void AssemblerX86Base<TraitsType>::pshufd(Type /* Ty */, XmmRegister dst, |
} |
template <typename TraitsType> |
+void AssemblerX86Base<TraitsType>::punpckldq(Type, XmmRegister Dst, |
+ XmmRegister Src) { |
+ AssemblerBuffer::EnsureCapacity ensured(&Buffer); |
+ emitUint8(0x66); |
+ emitRexRB(RexTypeIrrelevant, Dst, Src); |
+ emitUint8(0x0F); |
+ emitUint8(0x62); |
+ emitXmmRegisterOperand(Dst, Src); |
+} |
+ |
+template <typename TraitsType> |
+void AssemblerX86Base<TraitsType>::punpckldq(Type, XmmRegister Dst, |
+ const Address &Src) { |
+ AssemblerBuffer::EnsureCapacity ensured(&Buffer); |
+ emitUint8(0x66); |
+ emitAddrSizeOverridePrefix(); |
+ emitRex(RexTypeIrrelevant, Src, Dst); |
+ emitUint8(0x0F); |
+ emitUint8(0x62); |
+ emitOperand(gprEncoding(Dst), Src); |
+} |
+ |
+template <typename TraitsType> |
void AssemblerX86Base<TraitsType>::shufps(Type /* Ty */, XmmRegister dst, |
XmmRegister src, |
const Immediate &imm) { |