Home | History | Annotate | Download | only in rtasm

Lines Matching refs:dst

288 			   struct x86_reg dst,
291 switch (dst.mod) {
294 emit_modrm(p, dst, src);
301 emit_modrm(p, src, dst);
455 void x86_mov_reg_imm( struct x86_function *p, struct x86_reg dst, int imm )
457 DUMP_RI( dst, imm );
458 assert(dst.file == file_REG32);
459 assert(dst.mod == mod_REG);
460 emit_1ub(p, 0xb8 + dst.idx);
464 void x86_mov_imm( struct x86_function *p, struct x86_reg dst, int imm )
466 DUMP_RI( dst, imm );
467 if(dst.mod == mod_REG)
468 x86_mov_reg_imm(p, dst, imm);
472 emit_modrm_noreg(p, 0, dst);
477 void x86_mov16_imm( struct x86_function *p, struct x86_reg dst, uint16_t imm )
479 DUMP_RI( dst, imm );
481 if(dst.mod == mod_REG)
483 emit_1ub(p, 0xb8 + dst.idx);
489 emit_modrm_noreg(p, 0, dst);
494 void x86_mov8_imm( struct x86_function *p, struct x86_reg dst, uint8_t imm )
496 DUMP_RI( dst, imm );
497 if(dst.mod == mod_REG)
499 emit_1ub(p, 0xb0 + dst.idx);
505 emit_modrm_noreg(p, 0, dst);
515 unsigned op, struct x86_reg dst, int imm )
517 assert(dst.file == file_REG32);
518 assert(dst.mod == mod_REG);
521 emit_modrm_noreg(p, op, dst);
526 emit_modrm_noreg(p, op, dst);
531 void x86_add_imm( struct x86_function *p, struct x86_reg dst, int imm )
533 DUMP_RI( dst, imm );
534 x86_group1_imm(p, 0, dst, imm);
537 void x86_or_imm( struct x86_function *p, struct x86_reg dst, int imm )
539 DUMP_RI( dst, imm );
540 x86_group1_imm(p, 1, dst, imm);
543 void x86_and_imm( struct x86_function *p, struct x86_reg dst, int imm )
545 DUMP_RI( dst, imm );
546 x86_group1_imm(p, 4, dst, imm);
549 void x86_sub_imm( struct x86_function *p, struct x86_reg dst, int imm )
551 DUMP_RI( dst, imm );
552 x86_group1_imm(p, 5, dst, imm);
555 void x86_xor_imm( struct x86_function *p, struct x86_reg dst, int imm )
557 DUMP_RI( dst, imm );
558 x86_group1_imm(p, 6, dst, imm);
561 void x86_cmp_imm( struct x86_function *p, struct x86_reg dst, int imm )
563 DUMP_RI( dst, imm );
564 x86_group1_imm(p, 7, dst, imm);
650 struct x86_reg dst,
653 DUMP_RR( dst, src );
655 if(src.mod == mod_REG && dst.mod == mod_REG && (src.idx >= 8 || dst.idx >= 8))
658 if(dst.idx >= 8)
661 dst.idx -= 8;
670 emit_op_modrm( p, 0x8b, 0x89, dst, src );
674 struct x86_reg dst,
677 DUMP_RR( dst, src );
679 emit_op_modrm( p, 0x8b, 0x89, dst, src );
683 struct x86_reg dst,
686 DUMP_RR( dst, src );
687 emit_op_modrm( p, 0x8a, 0x88, dst, src );
691 struct x86_reg dst,
695 DUMP_RR( dst, src );
699 if(src.mod == mod_REG && dst.mod == mod_REG && (src.idx >= 8 || dst.idx >= 8))
701 if(dst.idx >= 8)
704 dst.idx -= 8;
713 emit_op_modrm( p, 0x8b, 0x89, dst, src );
716 void x86_movzx8(struct x86_function *p, struct x86_reg dst
718 DUMP_RR( dst, src );
720 emit_modrm(p, dst, src);
723 void x86_movzx16(struct x86_function *p, struct x86_reg dst, struct x86_reg src )
725 DUMP_RR( dst, src );
727 emit_modrm(p, dst, src);
731 struct x86_reg dst,
735 DUMP_RRI( dst, src, cc );
737 emit_modrm( p, dst, src );
741 struct x86_reg dst,
744 DUMP_RR( dst, src );
745 emit_op_modrm( p, 0x33, 0x31, dst, src );
749 struct x86_reg dst,
752 DUMP_RR( dst, src );
753 emit_op_modrm( p, 0x3b, 0x39, dst, src );
757 struct x86_reg dst,
760 DUMP_RR( dst, src );
762 emit_modrm( p, dst, src );
766 struct x86_reg dst,
769 DUMP_RR( dst, src );
771 emit_modrm( p, dst, src );
775 struct x86_reg dst,
778 DUMP_RR( dst, src );
779 emit_op_modrm(p, 0x03, 0x01, dst, src );
794 struct x86_reg dst,
797 DUMP_RR( dst, src );
799 emit_modrm(p, dst, src);
804 struct x86_reg dst,
807 DUMP_RR( dst, src );
808 emit_op_modrm(p, 0x2b, 0x29, dst, src );
812 struct x86_reg dst,
815 DUMP_RR( dst, src );
816 emit_op_modrm( p, 0x0b, 0x09, dst, src );
820 struct x86_reg dst,
823 DUMP_RR( dst, src );
824 emit_op_modrm( p, 0x23, 0x21, dst, src );
920 struct x86_reg dst,
923 DUMP_RR( dst, src );
925 assert(dst.mod != mod_REG);
928 emit_modrm(p, src, dst);
935 struct x86_reg dst,
938 DUMP_RR( dst, src );
940 emit_op_modrm( p, 0x10, 0x11, dst, src );
944 struct x86_reg dst,
947 DUMP_RR( dst, src );
949 emit_op_modrm( p, 0x28, 0x29, dst, src );
953 struct x86_reg dst,
956 DUMP_RR( dst, src );
958 emit_op_modrm( p, 0x10, 0x11, dst, src );
962 struct x86_reg dst,
965 DUMP_RR( dst, src );
966 assert(dst.mod != mod_REG || src.mod != mod_REG);
968 emit_op_modrm( p, 0x16, 0x17, dst, src ); /* cf movlhps */
972 struct x86_reg dst,
975 DUMP_RR( dst, src );
976 assert(dst.mod != mod_REG || src.mod != mod_REG);
978 emit_op_modrm( p, 0x12, 0x13, dst, src ); /* cf movhlps */
982 struct x86_reg dst,
985 DUMP_RR( dst, src );
987 emit_modrm( p, dst, src );
991 struct x86_reg dst,
994 DUMP_RR( dst, src );
996 emit_modrm( p, dst, src );
1000 struct x86_reg dst,
1003 DUMP_RR( dst, src );
1005 emit_modrm( p, dst, src );
1009 struct x86_reg dst,
1012 DUMP_RR( dst, src );
1014 emit_modrm( p, dst, src );
1018 struct x86_reg dst,
1021 DUMP_RR( dst, src );
1023 emit_modrm( p, dst, src );
1027 struct x86_reg dst,
1030 DUMP_RR( dst, src );
1032 emit_modrm( p, dst, src );
1036 struct x86_reg dst,
1039 DUMP_RR( dst, src );
1041 emit_modrm( p, dst, src );
1045 struct x86_reg dst,
1048 DUMP_RR( dst, src );
1050 emit_modrm( p, dst, src );
1054 struct x86_reg dst,
1057 DUMP_RR( dst, src );
1059 emit_modrm( p, dst, src );
1063 struct x86_reg dst,
1066 DUMP_RR( dst, src );
1068 emit_modrm( p, dst, src );
1072 struct x86_reg dst,
1075 DUMP_RR( dst, src );
1077 emit_modrm( p, dst, src );
1081 struct x86_reg dst,
1084 DUMP_RR( dst, src );
1086 emit_modrm( p, dst, src );
1090 struct x86_reg dst,
1093 DUMP_RR( dst, src );
1095 emit_modrm( p, dst, src );
1100 struct x86_reg dst,
1103 DUMP_RR( dst, src );
1104 assert(dst.mod == mod_REG && src.mod == mod_REG);
1106 emit_modrm( p, dst, src );
1110 struct x86_reg dst,
1113 DUMP_RR( dst, src );
1114 assert(dst.mod == mod_REG && src.mod == mod_REG);
1116 emit_modrm( p, dst, src );
1120 struct x86_reg dst,
1123 DUMP_RR( dst, src );
1125 emit_modrm( p, dst, src );
1129 struct x86_reg dst,
1132 DUMP_RR( dst, src );
1134 emit_modrm( p, dst, src );
1138 struct x86_reg dst,
1141 DUMP_RR( dst, src );
1142 assert(dst.file == file_MMX &&
1148 emit_modrm( p, dst, src );
1152 struct x86_reg dst,
1155 DUMP_RR( dst, src );
1157 emit_modrm( p, dst, src );
1165 struct x86_reg dst,
1169 DUMP_RRI( dst, src, shuf );
1171 emit_modrm(p, dst, src);
1175 void sse_unpckhps( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1177 DUMP_RR( dst, src );
1179 emit_modrm( p, dst, src );
1182 void sse_unpcklps( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1184 DUMP_RR( dst, src );
1186 emit_modrm( p, dst, src );
1190 struct x86_reg dst,
1194 DUMP_RRI( dst, src, cc );
1196 emit_modrm(p, dst, src);
1201 struct x86_reg dst,
1204 DUMP_RR( dst, src );
1206 emit_modrm(p, dst, src);
1210 struct x86_reg dst,
1213 DUMP_RR( dst, src );
1215 emit_modrm(p, dst, src);
1222 void sse2_movd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1224 DUMP_RR(dst, src);
1226 if(dst.mod == mod_REG && dst.file == file_REG32)
1229 emit_modrm(p, src, dst);
1233 emit_op_modrm(p, 0x6e, 0x7e, dst, src);
1237 void sse2_movq( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1239 DUMP_RR(dst, src);
1240 switch (dst.mod) {
1243 emit_modrm(p, dst, src);
1250 emit_modrm(p, src, dst);
1258 void sse2_movdqu( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1260 DUMP_RR(dst, src);
1262 emit_op_modrm(p, 0x6f, 0x7f, dst, src);
1265 void sse2_movdqa( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1267 DUMP_RR(dst, src);
1269 emit_op_modrm(p, 0x6f, 0x7f, dst, src);
1272 void sse2_movsd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1274 DUMP_RR(dst, src);
1276 emit_op_modrm(p, 0x10, 0x11, dst, src);
1279 void sse2_movupd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1281 DUMP_RR(dst, src);
1283 emit_op_modrm(p, 0x10, 0x11, dst, src);
1286 void sse2_movapd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1288 DUMP_RR(dst, src);
1290 emit_op_modrm(p, 0x28, 0x29, dst, src);
1297 struct x86_reg dst,
1301 DUMP_RRI( dst, src, shuf );
1303 emit_modrm(p, dst, src);
1308 struct x86_reg dst,
1312 DUMP_RRI( dst, src, shuf );
1314 emit_modrm(p, dst, src);
1319 struct x86_reg dst,
1323 DUMP_RRI( dst, src, shuf );
1325 emit_modrm(p, dst, src);
1330 struct x86_reg dst,
1333 DUMP_RR( dst, src );
1335 emit_modrm( p, dst, src );
1339 struct x86_reg dst,
1342 DUMP_RR( dst, src );
1344 emit_modrm( p, dst, src );
1348 struct x86_reg dst,
1351 DUMP_RR( dst, src );
1353 emit_modrm( p, dst, src );
1357 struct x86_reg dst,
1360 DUMP_RR( dst, src );
1362 emit_modrm( p, dst, src );
1366 struct x86_reg dst,
1369 DUMP_RR( dst, src );
1371 emit_modrm( p, dst, src );
1375 struct x86_reg dst,
1378 DUMP_RR( dst, src );
1380 emit_modrm( p, dst, src );
1384 struct x86_reg dst,
1387 DUMP_RR( dst, src );
1389 emit_modrm( p, dst, src );
1393 struct x86_reg dst,
1396 DUMP_RR( dst, src );
1398 emit_modrm( p, dst, src );
1401 void sse2_punpcklwd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1403 DUMP_RR( dst, src );
1405 emit_modrm( p, dst, src );
1408 void sse2_punpckldq( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1410 DUMP_RR( dst, src );
1412 emit_modrm( p, dst, src );
1415 void sse2_punpcklqdq( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1417 DUMP_RR( dst, src );
1419 emit_modrm( p, dst, src );
1422 void sse2_psllw_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1424 DUMP_RI(dst, imm);
1426 emit_modrm_noreg(p, 6, dst);
1430 void sse2_pslld_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1432 DUMP_RI(dst, imm);
1434 emit_modrm_noreg(p, 6, dst);
1438 void sse2_psllq_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1440 DUMP_RI(dst, imm);
1442 emit_modrm_noreg(p, 6, dst);
1446 void sse2_psrlw_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1448 DUMP_RI(dst, imm);
1450 emit_modrm_noreg(p, 2, dst);
1454 void sse2_psrld_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1456 DUMP_RI(dst, imm);
1458 emit_modrm_noreg(p, 2, dst);
1462 dst, unsigned imm )
1464 DUMP_RI(dst, imm);
1466 emit_modrm_noreg(p, 2, dst);
1470 void sse2_psraw_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1472 DUMP_RI(dst, imm);
1474 emit_modrm_noreg(p, 4, dst);
1478 void sse2_psrad_imm( struct x86_function *p, struct x86_reg dst, unsigned imm )
1480 DUMP_RI(dst, imm);
1482 emit_modrm_noreg(p, 4, dst);
1486 void sse2_por( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1488 DUMP_RR(dst, src);
1490 emit_modrm(p, dst, src);
1494 struct x86_reg dst,
1497 DUMP_RR( dst, src );
1499 emit_modrm( p, dst, src );
1503 struct x86_reg dst,
1506 DUMP_RR( dst, src );
1508 emit_modrm( p, dst, src );
1532 void x87_fist( struct x86_function *p, struct x86_reg dst )
1534 DUMP_R( dst );
1536 emit_modrm_noreg(p, 2, dst);
1539 void x87_fistp( struct x86_function *p, struct x86_reg dst )
1541 DUMP_R( dst );
1543 emit_modrm_noreg(p, 3, dst);
1655 static void x87_arith_op( struct x86_function *p, struct x86_reg dst, struct x86_reg arg,
1662 assert(dst.file == file_x87);
1665 if (dst.idx == 0)
1672 else if (dst.idx == 0) {
1681 void x87_fmul( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1683 DUMP_RR( dst, src );
1684 x87_arith_op(p, dst, src,
1690 void x87_fsub( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1692 DUMP_RR( dst, src );
1693 x87_arith_op(p, dst, src,
1699 void x87_fsubr( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1701 DUMP_RR( dst, src );
1702 x87_arith_op(p, dst, src,
1708 void x87_fadd( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1710 DUMP_RR( dst, src );
1711 x87_arith_op(p, dst, src,
1717 void x87_fdiv( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1719 DUMP_RR( dst, src );
1720 x87_arith_op(p, dst, src,
1726 void x87_fdivr( struct x86_function *p, struct x86_reg dst, struct x86_reg src )
1728 DUMP_RR( dst, src );
1729 x87_arith_op(p, dst, src,
1735 void x87_fmulp( struct x86_function *p, struct x86_reg dst )
1737 DUMP_R( dst );
1738 assert(dst.file == file_x87);
1739 assert(dst.idx >= 1);
1740 emit_2ub(p, 0xde, 0xc8+dst.idx);
1744 void x87_fsubp( struct x86_function *p, struct x86_reg dst )
1746 DUMP_R( dst );
1747 assert(dst.file == file_x87);
1748 assert(dst.idx >= 1);
1749 emit_2ub(p, 0xde, 0xe8+dst.idx);
1753 void x87_fsubrp( struct x86_function *p, struct x86_reg dst )
1755 DUMP_R( dst );
1756 assert(dst.file == file_x87);
1757 assert(dst.idx >= 1);
1758 emit_2ub(p, 0xde, 0xe0+dst.idx);
1762 void x87_faddp( struct x86_function *p, struct x86_reg dst )
1764 DUMP_R( dst );
1765 assert(dst.file == file_x87);
1766 assert(dst.idx >= 1);
1767 emit_2ub(p, 0xde, 0xc0+dst.idx);
1771 void x87_fdivp( struct x86_function *p, struct x86_reg dst )
1773 DUMP_R( dst );
1774 assert(dst.file == file_x87);
1775 assert(dst.idx >= 1);
1776 emit_2ub(p, 0xde, 0xf8+dst.idx);
1780 void x87_fdivrp( struct x86_function *p, struct x86_reg dst )
1782 DUMP_R( dst );
1783 assert(dst.file == file_x87);
1784 assert(dst.idx >= 1);
1785 emit_2ub(p, 0xde, 0xf0+dst.idx);
1925 void x87_fst( struct x86_function *p, struct x86_reg dst )
1927 DUMP_R( dst );
1928 if (dst.file == file_x87)
1929 emit_2ub(p, 0xdd, 0xd0 + dst.idx);
1932 emit_modrm_noreg(p, 2, dst);
1936 void x87_fstp( struct x86_function *p, struct x86_reg dst )
1938 DUMP_R( dst );
1939 if (dst.file == file_x87)
1940 emit_2ub(p, 0xdd, 0xd8 + dst.idx);
1943 emit_modrm_noreg(p, 3, dst);
1954 void x87_fcom( struct x86_function *p, struct x86_reg dst )
1956 DUMP_R( dst );
1957 if (dst.file == file_x87)
1958 emit_2ub(p, 0xd8, 0xd0 + dst.idx);
1961 emit_modrm_noreg(p, 2, dst);
1966 void x87_fcomp( struct x86_function *p, struct x86_reg dst )
1968 DUMP_R( dst );
1969 if (dst.file == file_x87)
1970 emit_2ub(p, 0xd8, 0xd8 + dst.idx);
1973 emit_modrm_noreg(p, 3, dst);
1992 void x87_fnstsw( struct x86_function *p, struct x86_reg dst )
1994 DUMP_R( dst );
1995 assert(dst.file == file_REG32);
1997 if (dst.idx == reg_AX &&
1998 dst.mod == mod_REG)
2002 emit_modrm_noreg(p, 7, dst);
2007 void x87_fnstcw( struct x86_function *p, struct x86_reg dst )
2009 DUMP_R( dst );
2010 assert(dst.file == file_REG32);
2014 emit_modrm_noreg(p, 7, dst);
2033 struct x86_reg dst,
2036 DUMP_RR( dst, src );
2037 assert(dst.file == file_MMX &&
2043 emit_modrm( p, dst, src );
2047 struct x86_reg dst,
2050 DUMP_RR( dst, src );
2051 assert(dst.file == file_MMX &&
2057 emit_modrm( p, dst, src );
2061 struct x86_reg dst,
2064 DUMP_RR( dst, src );
2067 emit_op_modrm( p, 0x6e, 0x7e, dst, src );
2071 struct x86_reg dst,
2074 DUMP_RR( dst, src );
2077 emit_op_modrm( p, 0x6f, 0x7f, dst, src );