Lines Matching refs:current

634 // Returns number of bytes used including the current *data.
888 byte* current = data + 1;
891 get_modrm(*current, &mod, &regop, &rm);
895 current += PrintRightXMMOperand(current);
900 current += PrintRightOperand(current);
908 current += PrintRightAVXOperand(current); \
921 current += PrintRightAVXOperand(current); \
931 current += PrintRightXMMOperand(current); \
941 current += PrintRightAVXOperand(current); \
968 get_modrm(*current, &mod, &regop, &rm);
972 current += PrintRightAVXOperand(current);
973 AppendToBuffer(",0x%x", *current++);
977 current += PrintRightAVXOperand(current);
978 AppendToBuffer(",0x%x", *current++);
983 current += PrintRightAVXOperand(current);
984 AppendToBuffer(",0x%x", *current++);
989 current += PrintRightAVXOperand(current);
990 AppendToBuffer(",0x%x", *current++);
995 current += PrintRightAVXOperand(current);
996 AppendToBuffer(",0x%x", *current++);
1001 current += PrintRightAVXOperand(current);
1002 AppendToBuffer(",0x%x", *current++);
1006 current += PrintRightByteOperand(current);
1007 AppendToBuffer(",%s,0x%x", NameOfAVXRegister(regop), *current++);
1011 current += PrintRightOperand(current);
1012 AppendToBuffer(",%s,0x%x", NameOfAVXRegister(regop), *current++);
1016 current += PrintRightOperand(current);
1017 AppendToBuffer(",%s,0x%x", NameOfAVXRegister(regop), *current++);
1021 current += PrintRightOperand(current);
1022 AppendToBuffer(",%s,0x%x", NameOfAVXRegister(regop), *current++);
1027 current += PrintRightByteOperand(current);
1028 AppendToBuffer(",0x%x", *current++);
1033 current += PrintRightAVXOperand(current);
1034 AppendToBuffer(",0x%x", *current++);
1039 current += PrintRightOperand(current);
1040 AppendToBuffer(",0x%x", *current++);
1045 current += PrintRightAVXOperand(current);
1046 AppendToBuffer(",%s", NameOfAVXRegister((*current++) >> 4));
1052 current += PrintRightAVXOperand(current);
1053 AppendToBuffer(",%s", NameOfAVXRegister((*current++) >> 4));
1059 current += PrintRightAVXOperand(current);
1060 AppendToBuffer(",%s", NameOfAVXRegister((*current++) >> 4));
1068 get_modrm(*current, &mod, &regop, &rm);
1075 current += PrintRightAVXOperand(current);
1079 current += PrintRightAVXOperand(current);
1087 current += PrintRightAVXOperand(current);
1092 current += PrintRightOperand(current);
1097 current += PrintRightAVXOperand(current);
1102 current += PrintRightAVXOperand(current);
1107 current += PrintRightAVXOperand(current);
1112 current += PrintRightAVXOperand(current);
1117 current += PrintRightAVXOperand(current);
1121 current += PrintRightAVXOperand(current);
1126 current += PrintRightAVXOperand(current);
1131 current += PrintRightAVXOperand(current);
1136 current += PrintRightAVXOperand(current);
1141 current += PrintRightAVXOperand(current);
1145 current += PrintRightAVXOperand(current);
1149 current += PrintRightAVXOperand(current);
1150 AppendToBuffer(",0x%x", *current++);
1154 current += PrintRightAVXOperand(current);
1159 current += PrintRightAVXOperand(current);
1164 current += PrintRightAVXOperand(current);
1165 AppendToBuffer(", (%s)", cmp_pseudo_op[*current]);
1166 current += 1;
1173 get_modrm(*current, &mod, &regop, &rm);
1180 current += PrintRightAVXOperand(current);
1184 current += PrintRightAVXOperand(current);
1192 current += PrintRightAVXOperand(current);
1197 current += PrintRightOperand(current);
1202 current += PrintRightAVXOperand(current);
1207 current += PrintRightAVXOperand(current);
1211 current += PrintRightAVXOperand(current);
1215 current += PrintRightAVXOperand(current);
1216 AppendToBuffer(",0x%x", *current++);
1221 current += PrintRightAVXOperand(current);
1226 current += PrintRightAVXOperand(current);
1227 AppendToBuffer(", (%s)", cmp_pseudo_op[*current]);
1228 current += 1;
1234 current += PrintRightAVXOperand(current); \
1243 get_modrm(*current, &mod, &regop, &rm);
1249 current += PrintRightOperand(current);
1254 current += PrintRightOperand(current);
1260 current += PrintRightOperand(current);
1279 current += PrintRightOperand(current);
1287 get_modrm(*current, &mod, &regop, &rm);
1292 current += PrintRightOperand(current);
1297 current += PrintRightOperand(current);
1302 current += PrintRightOperand(current);
1310 get_modrm(*current, &mod, &regop, &rm);
1315 current += PrintRightOperand(current);
1320 current += PrintRightOperand(current);
1328 get_modrm(*current, &mod, &regop, &rm);
1333 current += PrintRightOperand(current);
1336 AppendToBuffer(",%d", *current & 0x1F);
1339 AppendToBuffer(",%d", *current & 0x3F);
1344 current += 1;
1351 get_modrm(*current, &mod, &regop, &rm);
1355 current += PrintRightAVXOperand(current);
1359 current += PrintRightAVXOperand(current);
1366 current += PrintRightAVXOperand(current);
1370 current += PrintRightAVXOperand(current);
1375 current += PrintRightAVXOperand(current);
1382 current += PrintRightAVXOperand(current);
1386 current += PrintRightAVXOperand(current);
1391 current += PrintRightAVXOperand(current);
1396 current += PrintRightAVXOperand(current);
1400 current += PrintRightAVXOperand(current);
1405 current += PrintRightAVXOperand(current);
1409 current += PrintRightAVXOperand(current);
1414 current += PrintRightAVXOperand(current);
1415 AppendToBuffer(", (%s)", cmp_pseudo_op[*current]);
1416 current += 1;
1422 current += PrintRightAVXOperand(current);
1423 AppendToBuffer(",0x%x", *current++);
1429 current += PrintRightAVXOperand(current); \
1437 current += PrintRightAVXOperand(current); \
1446 get_modrm(*current, &mod, &regop, &rm);
1450 current += PrintRightAVXOperand(current);
1454 current += PrintRightAVXOperand(current);
1459 current += PrintRightAVXOperand(current);
1463 current += PrintRightAVXOperand(current);
1468 current += PrintRightAVXOperand(current);
1473 current += PrintRightOperand(current);
1477 current += PrintRightAVXOperand(current);
1481 current += PrintRightAVXOperand(current);
1482 AppendToBuffer(",0x%x", *current++);
1487 current += PrintRightAVXOperand(current);
1488 AppendToBuffer(",%u", *current++);
1493 current += PrintRightAVXOperand(current);
1494 AppendToBuffer(",%u", *current++);
1499 current += PrintRightAVXOperand(current);
1500 AppendToBuffer(",%u", *current++);
1504 current += PrintRightOperand(current);
1510 current += PrintRightAVXOperand(current);
1511 AppendToBuffer(", (%s)", cmp_pseudo_op[*current]);
1512 current += 1;
1518 current += PrintRightOperand(current);
1519 AppendToBuffer(",0x%x", *current++);
1523 current += PrintRightAVXOperand(current);
1524 AppendToBuffer(",0x%x", *current++);
1528 current += PrintRightAVXOperand(current);
1534 current += PrintRightAVXOperand(current); \
1543 current += PrintRightAVXOperand(current); \
1557 return static_cast<int>(current - data);
1833 byte* current = data + 2;
1834 // At return, "current" points to the start of the next instruction.
1839 get_modrm(*current, &mod, &regop, &rm);
1846 current += PrintOperands("xadd", OPER_REG_OP_ORDER, current);
1848 current++;
1850 current++;
1853 current += 1;
1855 current += 4;
1859 current += PrintOperands("movupd", XMMREG_XMMOPER_OP_ORDER, current);
1861 current += PrintOperands("movupd", XMMOPER_XMMREG_OP_ORDER, current);
1863 current += PrintOperands("movapd", XMMREG_XMMOPER_OP_ORDER, current);
1865 current += PrintOperands("movapd", XMMOPER_XMMREG_OP_ORDER, current);
1867 current += PrintOperands(rex_w() ? "movq" : "movd", XMMREG_OPER_OP_ORDER,
1868 current);
1870 current += PrintOperands("movdqa", XMMREG_XMMOPER_OP_ORDER, current);
1872 current += PrintOperands(rex_w() ? "movq" : "movd", OPER_XMMREG_OP_ORDER,
1873 current);
1875 current += PrintOperands("movdqa", XMMOPER_XMMREG_OP_ORDER, current);
1877 current += PrintOperands("movq", XMMOPER_XMMREG_OP_ORDER, current);
1880 current += PrintRightXMMOperand(current);
1882 current += PrintOperands("pshufd", XMMREG_XMMOPER_OP_ORDER, current);
1883 AppendToBuffer(",0x%x", *current++);
1885 current += 1;
1887 *current & 0x7F);
1888 current += 1;
1890 current += 1;
1892 *current & 0x7F);
1893 current += 1;
1895 current += 1;
1897 *current & 0x7F);
1898 current += 1;
1900 current += PrintOperands("cmpxchg", OPER_REG_OP_ORDER, current);
1903 current += PrintRightXMMOperand(current);
1904 AppendToBuffer(", (%s)", cmp_pseudo_op[*current++]);
1906 current += PrintOperands("pinsrw", XMMREG_OPER_OP_ORDER, current);
1907 AppendToBuffer(",0x%x", (*current++) & 7);
1909 current += PrintOperands("pmovmskb", OPER_XMMREG_OP_ORDER, current);
1922 current += PrintRightXMMOperand(current);
1928 current += PrintOperands("movsd", XMMREG_XMMOPER_OP_ORDER, current);
1930 current += PrintOperands("movsd", XMMOPER_XMMREG_OP_ORDER, current);
1932 current += PrintOperands("movddup", XMMREG_XMMOPER_OP_ORDER, current);
1935 current += PrintOperands(mnemonic, XMMREG_OPER_OP_ORDER, current);
1941 current += PrintRightXMMOperand(current);
1946 current += PrintRightXMMOperand(current);
1952 current += PrintRightXMMOperand(current);
1955 current += PrintOperands(mnemonic, XMMREG_XMMOPER_OP_ORDER, current);
1957 current += PrintOperands("pshuflw", XMMREG_XMMOPER_OP_ORDER, current);
1958 AppendToBuffer(",%d", (*current++) & 7);
1960 AppendToBuffer("cmp%ssd %s,%s", cmp_pseudo_op[current[1]],
1962 current += 2;
1964 current += PrintOperands("lddqu", XMMREG_OPER_OP_ORDER, current);
1966 current += PrintOperands("haddps", XMMREG_XMMOPER_OP_ORDER, current);
1974 current += PrintOperands("movss", XMMREG_OPER_OP_ORDER, current);
1976 current += PrintOperands("movss", OPER_XMMREG_OP_ORDER, current);
1978 current += PrintOperands("movshdup", XMMREG_XMMOPER_OP_ORDER, current);
1981 current += PrintOperands(mnemonic, XMMREG_OPER_OP_ORDER, current);
1987 current += PrintRightXMMOperand(current);
1989 current += PrintOperands("pshufhw", XMMREG_XMMOPER_OP_ORDER, current);
1990 AppendToBuffer(", %d", (*current++) & 7);
1992 current += PrintOperands("movdqu", XMMREG_XMMOPER_OP_ORDER, current);
1994 current += PrintOperands("movq", XMMREG_XMMOPER_OP_ORDER, current);
1996 current += PrintOperands("movdqu", XMMOPER_XMMREG_OP_ORDER, current);
1999 current += PrintOperands(mnemonic, XMMREG_XMMOPER_OP_ORDER, current);
2003 current += PrintRightOperand(current);
2007 current += PrintRightOperand(current);
2011 current += PrintRightOperand(current);
2013 AppendToBuffer("cmp%sss %s,%s", cmp_pseudo_op[current[1]],
2015 current += 2;
2017 current += PrintOperands("cvtdq2pd", XMMREG_XMMOPER_OP_ORDER, current);
2021 current += PrintRightOperand(current);
2027 current += PrintOperands("movups", XMMREG_XMMOPER_OP_ORDER, current);
2030 current += PrintOperands("movups", XMMOPER_XMMREG_OP_ORDER, current);
2035 current += PrintOperands("movhlps", XMMREG_XMMOPER_OP_ORDER, current);
2037 current += PrintOperands("movlps", XMMREG_OPER_OP_ORDER, current);
2041 current += PrintOperands("movlps", XMMOPER_XMMREG_OP_ORDER, current);
2044 current += PrintOperands("movlhps", XMMREG_XMMOPER_OP_ORDER, current);
2046 current += PrintOperands("movhps", XMMREG_XMMOPER_OP_ORDER, current);
2049 current += PrintOperands("movhps", XMMOPER_XMMREG_OP_ORDER, current);
2052 current++;
2054 current++;
2057 current += 1;
2059 current += 4;
2064 current += PrintOperands("movaps", XMMREG_XMMOPER_OP_ORDER, current);
2066 current += PrintOperands("movaps", XMMOPER_XMMREG_OP_ORDER, current);
2068 current += PrintOperands("ucomiss", XMMREG_XMMOPER_OP_ORDER, current);
2077 current += PrintOperands(idesc.mnem, idesc.op_order_, current);
2080 current += PrintOperands("xadd", OPER_REG_OP_ORDER, current);
2082 current += PrintOperands("xadd", OPER_REG_OP_ORDER, current);
2086 current += PrintRightXMMOperand(current);
2087 AppendToBuffer(", %s", cmp_pseudo_op[*current]);
2088 current += 1;
2092 current += PrintRightXMMOperand(current);
2093 AppendToBuffer(", %d", (*current) & 3);
2094 current += 1;
2102 current += PrintRightXMMOperand(current);
2105 current = data + JumpConditional(data);
2110 current += PrintOperands(mnemonic, REG_OPER_OP_ORDER, current);
2113 current = data + SetCC(data);
2119 current += PrintRightOperand(current);
2129 current += PrintRightOperand(current);
2130 AppendToBuffer(",%d", *current++);
2135 current += PrintRightOperand(current);
2143 current += PrintOperands(mnemonic, OPER_REG_OP_ORDER, current);
2146 current = data + 3;
2149 current = data + 3;
2153 current += PrintOperands(#instruction, XMMREG_XMMOPER_OP_ORDER, current);
2161 return static_cast<int>(current - data);
2173 byte* current = data + 3;
2175 get_modrm(*current, &mod, &regop, &rm);
2179 current += PrintOperands("pblendvb", XMMREG_XMMOPER_OP_ORDER, current);
2184 current += PrintOperands("blendvps", XMMREG_XMMOPER_OP_ORDER, current);
2189 current += PrintOperands("blendvpd", XMMREG_XMMOPER_OP_ORDER, current);
2195 current += PrintOperands(#instruction, XMMREG_XMMOPER_OP_ORDER, current); \
2211 current += PrintOperands("extractps", OPER_XMMREG_OP_ORDER, current);
2212 AppendToBuffer(",%d", (*current++) & 3);
2214 current += PrintOperands("roundps", XMMREG_XMMOPER_OP_ORDER, current);
2215 AppendToBuffer(",0x%x", (*current++) & 3);
2217 current += PrintOperands("roundpd", XMMREG_XMMOPER_OP_ORDER, current);
2218 AppendToBuffer(",0x%x", (*current++) & 3);
2220 current += PrintOperands("roundss", XMMREG_XMMOPER_OP_ORDER, current);
2221 AppendToBuffer(",0x%x", (*current++) & 3);
2223 current += PrintOperands("roundsd", XMMREG_XMMOPER_OP_ORDER, current);
2224 AppendToBuffer(",0x%x", (*current++) & 3);
2226 current += PrintOperands("pblendw", XMMREG_XMMOPER_OP_ORDER, current);
2227 AppendToBuffer(",0x%x", *current++);
2229 current += PrintOperands("palignr", XMMREG_XMMOPER_OP_ORDER, current);
2230 AppendToBuffer(",0x%x", *current++);
2232 current += PrintOperands("pextrb", OPER_XMMREG_OP_ORDER, current);
2233 AppendToBuffer(",%d", (*current++) & 0xf);
2235 current += PrintOperands("pextrw", OPER_XMMREG_OP_ORDER, current);
2236 AppendToBuffer(",%d", (*current++) & 7);
2239 current += PrintOperands(mnem, OPER_XMMREG_OP_ORDER, current);
2240 AppendToBuffer(",%d", (*current++) & 3);
2242 current += PrintOperands("pinsrb", XMMREG_OPER_OP_ORDER, current);
2243 AppendToBuffer(",%d", (*current++) & 3);
2245 current += PrintOperands("insertps", XMMREG_XMMOPER_OP_ORDER, current);
2246 AppendToBuffer(",0x%x", *current++);
2249 current += PrintOperands(mnem, XMMREG_OPER_OP_ORDER, current);
2250 AppendToBuffer(",%d", (*current++) & 3);
2255 return static_cast<int>(current - data);
2325 bool processed = true; // Will be set to false if the current instruction
2327 byte current;
2331 current = *data;
2332 if (current == OPERAND_SIZE_OVERRIDE_PREFIX) { // Group 3 prefix.
2333 operand_size_ = current;
2334 } else if ((current & 0xF0) == 0x40) { // REX prefix.
2335 setRex(current);
2337 } else if ((current & 0xFE) == 0xF2) { // Group 1 prefix (0xF2 or 0xF3).
2338 group_1_prefix_ = current;
2339 } else if (current == LOCK_PREFIX) {
2341 } else if (current == VEX3_PREFIX) {
2342 vex_byte0_ = current;
2348 } else if (current == VEX2_PREFIX) {
2349 vex_byte0_ = current;
2365 const InstructionDesc& idesc = instruction_table_->Get(current);
2369 if ((current >= 0xA4 && current <= 0xA7) ||
2370 (current >= 0xAA && current <= 0xAD)) {
2394 NameOfCPURegister(base_reg(current & 0x07)));
2399 NameOfCPURegister(base_reg(current & 0x07)));
2421 NameOfCPURegister(base_reg(current & 0x07)),