Lines Matching defs:instr

163                                          RegFile dst_reg_file, const uint8_t** instr,
168 *address_bits = *reinterpret_cast<const uint32_t*>(*instr);
171 address << StringPrintf("[RIP + 0x%x]", *reinterpret_cast<const uint32_t*>(*instr));
173 (*instr) += 4;
175 uint8_t sib = **instr;
176 (*instr)++;
208 address << StringPrintf(" + %d", *reinterpret_cast<const int32_t*>(*instr));
211 *address_bits = *reinterpret_cast<const uint32_t*>(*instr);
214 (*instr) += 4;
217 address << StringPrintf(" + %d", *reinterpret_cast<const int8_t*>(*instr));
218 (*instr)++;
220 address << StringPrintf(" + %d", *reinterpret_cast<const int32_t*>(*instr));
221 (*instr) += 4;
234 address << StringPrintf(" + %d", *reinterpret_cast<const int8_t*>(*instr));
235 (*instr)++;
237 address << StringPrintf(" + %d", *reinterpret_cast<const int32_t*>(*instr));
238 (*instr) += 4;
246 size_t DisassemblerX86::DumpInstruction(std::ostream& os, const uint8_t* instr) {
247 const uint8_t* begin_instr = instr;
251 switch (*instr) {
256 prefix[0] = *instr;
265 prefix[1] = *instr;
269 prefix[2] = *instr;
273 prefix[3] = *instr;
280 instr++;
283 uint8_t rex = (supports_rex_ && (*instr >= 0x40) && (*instr <= 0x4F)) ? *instr : 0;
285 instr++;
311 switch (*instr) {
375 opcode_tmp = StringPrintf("unknown opcode '%02X'", *instr);
390 opcode2 = condition_codes[*instr & 0xF];
397 byte_operand = (*instr == 0x86);
405 instr++;
406 switch (*instr) {
422 load = *instr == 0x10;
434 load = *instr == 0x12;
446 load = *instr == 0x16;
458 load = *instr == 0x28;
527 instr++;
529 switch (*instr) {
552 opcode_tmp = StringPrintf("unknown opcode '0F 38 %02X'", *instr);
556 opcode_tmp = StringPrintf("unknown opcode '0F 38 %02X'", *instr);
561 instr++;
563 switch (*instr) {
607 opcode_tmp = StringPrintf("unknown opcode '0F 3A %02X'", *instr);
611 opcode_tmp = StringPrintf("unknown opcode '0F 3A %02X'", *instr);
618 opcode2 = condition_codes[*instr & 0xF];
624 switch (*instr) {
698 switch (*instr) {
750 opcode_tmp = StringPrintf("unknown opcode '0F %02X'", *instr);
810 opcode_tmp = StringPrintf("unknown opcode '0F %02X'", *instr);
832 opcode2 = condition_codes[*instr & 0xF];
838 opcode2 = condition_codes[*instr & 0xF];
877 uint8_t reg_or_opcode = (instr[1] >> 3) & 7;
972 opcode_tmp = StringPrintf("unknown opcode '0F %02X'", *instr);
1033 opcode_tmp = StringPrintf("unknown opcode '0F %02X'", *instr);
1076 switch (*instr) {
1092 opcode_tmp = StringPrintf("unknown opcode '0F %02X'", *instr);
1103 byte_operand = (*instr & 1) == 0;
1104 immediate_bytes = *instr == 0x81 ? 4 : 1;
1110 byte_operand = (*instr & 1) == 0;
1127 if (instr[1] == 0xDF && instr[2] == 0xE0) {
1129 instr += 2;
1131 opcode_tmp = StringPrintf("unknown opcode '%02X'", *instr);
1170 immediate_bytes = ((*instr & 0xf0) == 0xc0) ? 1 : 0;
1171 cx = (*instr == 0xD2) || (*instr == 0xD3);
1172 byte_operand = (*instr == 0xC0);
1198 if (instr[1] == 0xF8) {
1200 instr++;
1211 if (instr[1] == 0xE9) {
1213 instr++;
1215 opcode_tmp = StringPrintf("unknown opcode '%02X'", *instr);
1260 immediate_bytes = ((instr[1] & 0x38) == 0) ? 1 : 0;
1271 const uint8_t opcode_digit = (instr[1] >> 3) & 7;
1279 opcode_tmp = StringPrintf("unknown opcode '%02X'", *instr);
1291 DumpOpcodeReg(args, rex_w, *instr & 0x7, byte_operand, prefix[2]);
1293 instr++;
1296 uint8_t modrm = *instr;
1297 instr++;
1303 &instr, &address_bits);
1348 args << StringPrintf("%d", *reinterpret_cast<const int8_t*>(instr));
1349 instr++;
1352 args << StringPrintf("%d", *reinterpret_cast<const int16_t*>(instr));
1353 instr += 2;
1355 args << StringPrintf("%d", *reinterpret_cast<const int32_t*>(instr));
1356 instr += 4;
1360 args << StringPrintf("%" PRId64, *reinterpret_cast<const int64_t*>(instr));
1361 instr += 8;
1367 displacement = *reinterpret_cast<const int8_t*>(instr);
1368 instr++;
1371 displacement = *reinterpret_cast<const int32_t*>(instr);
1372 instr += 4;
1375 << FormatInstructionPointer(instr + displacement)
1395 << StringPrintf(": %22s \t%-7s%s%s%s%s%s ", DumpCodeHex(begin_instr, instr).c_str(),
1398 return instr - begin_instr;