Home | History | Annotate | Download | only in AssemblerX8664

Lines Matching refs:DST

156 #define TestRegReg(Dst, Src, Suffix, Size)                                     \
159 "(" #Dst ", " #Src ", " #Suffix ", " #Size ")"; \
166 __ mov(IceType_i64, Encoded_GPR_##Dst(), dwordAddress(T1)); \
167 __ mov(IceType_i##Size, Encoded_GPR_##Dst(), Encoded_GPR_##Src()); \
174 ASSERT_EQ((Marker & ~MaskResult##Size) | Value, test.Dst()) << TestString; \
175 ASSERT_EQ(Value, test.Dst##Suffix()) << TestString; \
179 #define TestImpl(Dst, Src) \
181 TestRegReg(Dst, Src, l, 8); \
182 TestRegReg(Dst, Src, w, 16); \
183 TestRegReg(Dst, Src, d, 32); \
184 TestRegReg(Dst, Src, q, 64); \
217 #define TestRegAddr(Dst, Suffix, Size) \
220 "(" #Dst ", Addr, " #Suffix ", " #Size ")"; \
226 __ mov(IceType_i64, Encoded_GPR_##Dst(), dwordAddress(T1)); \
227 __ mov(IceType_i##Size, Encoded_GPR_##Dst(), dwordAddress(T0)); \
234 ASSERT_EQ((Marker & MaskResult##Size) | Value, test.Dst()) << TestString; \
235 ASSERT_EQ(Value, test.Dst##Suffix()) << TestString; \
239 #define TestImpl(Dst) \
241 TestRegAddr(Dst, l, 8); \
242 TestRegAddr(Dst, w, 16); \
243 TestRegAddr(Dst, d, 32); \
244 TestRegAddr(Dst, q, 64); \
267 #define TestImplValue(Dst, Value) \
269 static constexpr char TestString[] = "(" #Dst ", " #Value ")"; \
271 __ movabs(Encoded_GPR_##Dst##q(), V); \
277 ASSERT_EQ(V, test.DST()) << TestString; \
280 #define TestImpl(Dst) \
284 TestImpl(Dst, V); \
296 #define TestImplRegReg(Dst, Src, Suffix, Size) \
301 __ mov(IceType_i64, Encoded_GPR_##Dst##q(), dwordAddress(T0)); \
303 __ movzx(IceType_i##Size, Encoded_GPR_##Dst##d(), \
308 ASSERT_EQ(Value, test.Dst##q()) << "(" #Dst ", " #Src ", " #Size ")"; \
312 #define TestImplRegAddr(Dst, Suffix, Size) \
317 __ movzx(IceType_i##Size, Encoded_GPR_##Dst##d(), dwordAddress(T0)); \
322 ASSERT_EQ(Value, test.Dst##q()) << "(" #Dst ", Addr, " #Size ")"; \
326 #define TestImpl(Dst, Src) \
328 TestImplRegReg(Dst, Src, l, 8); \
329 TestImplRegAddr(Dst, l, 8); \
330 TestImplRegReg(Dst, Src, w, 16); \
331 TestImplRegAddr(Dst, w, 16); \
359 #define TestImplRegReg(Dst, Src, Suffix, Size) \
364 __ mov(IceType_i64, Encoded_GPR_##Dst##q(), dwordAddress(T0)); \
366 __ movsx(IceType_i##Size, Encoded_GPR_##Dst##d(), \
371 ASSERT_EQ((uint64_t(-1) & ~Mask##Size) | Value, test.Dst##q()) \
372 << "(" #Dst ", " #Src ", " #Size ")"; \
376 #define TestImplRegAddr(Dst, Suffix, Size) \
381 __ movsx(IceType_i##Size, Encoded_GPR_##Dst##d(), dwordAddress(T0)); \
386 ASSERT_EQ((uint64_t(-1) & ~Mask##Size) | Value, test.Dst##q()) \
387 << "(" #Dst ", Addr, " #Size ")"; \
391 #define TestImpl(Dst, Src) \
393 TestImplRegReg(Dst, Src, l, 8); \
394 TestImplRegAddr(Dst, l, 8); \
395 TestImplRegReg(Dst, Src, w, 16); \
396 TestImplRegAddr(Dst, w, 16); \
397 TestImplRegReg(Dst, Src, w, 32); \
398 TestImplRegAddr(Dst, w, 32); \
640 #define TestMovssXmmXmmFloatLength(FloatLength, Src, Dst, Value) \
647 "(" #FloatLength ", " #Src ", " #Dst ")"; \
657 __ movss(IceType_f##FloatLength, Encoded_Xmm_##Dst(), dwordAddress(T1)); \
658 __ movss(IceType_f##FloatLength, Encoded_Xmm_##Dst(), \
670 ASSERT_DOUBLE_EQ(Value, test.Dst<Type>()) << TestString << " value is " \
706 #define TestMovdXmmReg32(Src, Dst, Value) \
709 static constexpr char TestString[] = "(" #Src ", " #Dst ")"; \
714 __ movss(IceType_f64, Encoded_Xmm_##Dst(), dwordAddress(T0)); \
715 __ movd(IceType_i32, Encoded_Xmm_##Dst(), Encoded_GPR_##Src()); \
722 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
727 #define TestMovdXmmReg64(Src, Dst, Value) \
730 static constexpr char TestString[] = "(" #Src ", " #Dst ")"; \
736 __ movss(IceType_f64, Encoded_Xmm_##Dst(), dwordAddress(T0)); \
737 __ movd(IceType_i64, Encoded_Xmm_##Dst(), Encoded_GPR_##Src()); \
744 ASSERT_EQ(Expected, test.Dst<uint64_t>()) << TestString << " value is " \
749 #define TestMovdXmmReg(Src, Dst, Value) \
751 TestMovdXmmReg32(Src, Dst, Value); \
752 TestMovdXmmReg64(Src, Dst, Value); \
755 #define TestMovdXmmAddr32(Dst, Value) \
758 static constexpr char TestString[] = "(" #Dst ", Addr)"; \
764 __ movss(IceType_f64, Encoded_Xmm_##Dst(), dwordAddress(T1)); \
765 __ movd(IceType_i32, Encoded_Xmm_##Dst(), dwordAddress(T0)); \
773 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
778 #define TestMovdXmmAddr64(Dst, Value) \
781 static constexpr char TestString[] = "(" #Dst ", Addr)"; \
787 __ movss(IceType_f64, Encoded_Xmm_##Dst(), dwordAddress(T1)); \
788 __ movd(IceType_i64, Encoded_Xmm_##Dst(), dwordAddress(T0)); \
796 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
801 #define TestMovdXmmAddr(Dst, Value) \
803 TestMovdXmmAddr32(Dst, Value); \
804 TestMovdXmmAddr64(Dst, Value); \
807 #define TestMovd(Dst) \
810 TestMovdXmmReg(r1, Dst, Value); \
811 TestMovdXmmReg(r2, Dst, Value); \
812 TestMovdXmmReg(r3, Dst, Value); \
813 TestMovdXmmReg(r4, Dst, Value); \
814 TestMovdXmmReg(r5, Dst, Value); \
815 TestMovdXmmReg(r6, Dst, Value); \
816 TestMovdXmmReg(r7, Dst, Value); \
817 TestMovdXmmReg(r8, Dst, Value); \
818 TestMovdXmmReg(r10, Dst, Value); \
819 TestMovdXmmReg(r11, Dst, Value); \
820 TestMovdXmmReg(r12, Dst, Value); \
821 TestMovdXmmReg(r13, Dst, Value); \
822 TestMovdXmmReg(r14, Dst, Value); \
823 TestMovdXmmReg(r15, Dst, Value); \
824 TestMovdXmmAddr(Dst, Value); \
855 #define TestMovdRegXmm32(Src, Dst, Value) \
858 static constexpr char TestString[] = "(" #Src ", " #Dst ")"; \
863 __ movd(IceType_i32, Encoded_GPR_##Dst
875 #define TestMovdRegXmm64(Src, Dst, Value) \
878 static constexpr char TestString[] = "(" #Src ", " #Dst ")"; \
883 __ movd(IceType_i64, Encoded_GPR_##Dst(), Encoded_Xmm_##Src()); \
895 #define TestMovdRegXmm(Src, Dst, Value) \
897 TestMovdRegXmm32(Src, Dst, Value); \
898 TestMovdRegXmm64(Src, Dst, Value); \
1001 #define TestMovd(Dst, Value) \
1003 static constexpr char TestString[] = "(" #Dst ", Addr)"; \
1009 __ movss(IceType_f64, Encoded_Xmm_##Dst(), dwordAddress(T1)); \
1010 __ movq(Encoded_Xmm_##Dst(), dwordAddress(T0)); \
1018 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
1046 #define TestMovd(Dst, Value) \
1048 static constexpr char TestString[] = "(" #Dst ", Addr)"; \
1054 __ movq(Encoded_Xmm_##Dst(), dwordAddress(T0)); \
1055 __ movq(dwordAddress(T1), Encoded_Xmm_##Dst()); \
1063 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
1091 #define TestMovd(Src, Dst, Value) \
1093 static constexpr char TestString[] = "(" #Src ", " #Dst ")"; \
1100 __ movq(Encoded_Xmm_##Dst(), dwordAddress(T1)); \
1101 __ movq(Encoded_Xmm_##Dst(), Encoded_Xmm_##Src()); \
1109 ASSERT_EQ(Value, test.Dst<uint64_t>()) << TestString << " value is " \
1137 #define TestMovups(Dst) \
1139 static constexpr char TestString[] = "(" #Dst ")"; \
1144 __ movups(Encoded_Xmm_##Dst(), dwordAddress(T0)); \
1150 ASSERT_EQ(V0, test.Dst<Dqword>()) << TestString; \
1217 #define TestMovups(Dst, Src) \
1219 static constexpr char TestString[] = "(" #Dst ", " #Src ")"; \
1227 __ movups(Encoded_Xmm_##Dst(), dwordAddress(T1)); \
1228 __ movups(Encoded_Xmm_##Dst(), Encoded_Xmm_##Src()); \
1235 ASSERT_EQ(V0, test.Dst<Dqword>()) << TestString; \
1260 #define TestMovaps(Dst, Src) \
1262 static constexpr char TestString[] = "(" #Dst ", " #Src ")"; \
1270 __ movups(Encoded_Xmm_##Dst(), dwordAddress(T1)); \
1271 __ movaps(Encoded_Xmm_##Dst(), Encoded_Xmm_##Src()); \
1278 ASSERT_EQ(V0, test.Dst<Dqword>()) << TestString; \
1303 #define TestImplSingle(Dst, Src, Inst, Expect) \
1305 static constexpr char TestString[] = "(" #Dst ", " #Src ", " #Inst ")"; \
1313 __ movups(Encoded_Xmm_##Dst(), dwordAddress(T0)); \
1315 __ Inst(Encoded_Xmm_##Dst(), Encoded_Xmm_##Src()); \
1322 ASSERT_EQ(Dqword Expect, test.Dst<Dqword>()) << TestString; \
1326 #define TestImpl(Dst, Src) \
1328 TestImplSingle(Dst, Src, movhlps, (uint64_t(0x9999999988888888ull), \
1330 TestImplSingle(Dst, Src, movlhps, (uint64_t(0xAAAAAAAABBBBBBBBull), \
1401 #define TestPmovsxdqXmmXmm(Dst, Src, Value1) \
1403 static constexpr char TestString[] = "(" #Dst ", " #Src ", " #Value1 ")"; \
1410 __ movups(Encoded_Xmm_##Dst(), dwordAddress(T1)); \
1411 __ pmovsxdq(Encoded_Xmm_##Dst(), Encoded_Xmm_##Src()); \
1419 ASSERT_EQ(Expected, test.Dst<Dqword>()) << TestString; \
1423 #define TestPmovsxdq(Dst, Src) \
1425 TestPmovsxdqXmmXmm(Dst, Src, (uint64_t(0x700000007FFFFFFFull), \
1427 TestPmovsxdqXmmXmm(Dst, Src, (uint64_t(0x800000007FFFFFFFull), \
1429 TestPmovsxdqXmmXmm(Dst, Src, (uint64_t(0x70000000FFFFFFFFull), \
1431 TestPmovsxdqXmmXmm(Dst, Src, (uint64_t(0x80000000FFFFFFFFull), \