| 358 | } |
| 359 | |
| 360 | void X86Instr::MarkRegsUsed(Array<RegForm>& regsUsed, bool overrideForm) |
| 361 | { |
| 362 | const MCInstrDesc &instDesc = mX86->mInstrInfo->get(mMCInst.getOpcode()); |
| 363 | |
| 364 | int checkIdx = instDesc.getOpcode() * 3; |
| 365 | |
| 366 | for (int opIdx = 0; opIdx < (int)instDesc.getNumOperands(); opIdx++) |
| 367 | { |
| 368 | auto operand = mMCInst.getOperand(opIdx); |
| 369 | int regNum = ConvertRegNum(operand); |
| 370 | if (regNum != -1) |
| 371 | { |
| 372 | while (regNum >= (int)regsUsed.size()) |
| 373 | regsUsed.push_back(RegForm_Invalid); |
| 374 | |
| 375 | if ((regsUsed[regNum] <= RegForm_Unknown) || (overrideForm)) |
| 376 | regsUsed[regNum] = (RegForm)sRegForm[checkIdx]; |
| 377 | checkIdx++; |
| 378 | } |
| 379 | } |
| 380 | } |
| 381 | |
| 382 | uint32 X86Instr::GetTarget(Debugger* debugger, X86CPURegisters* registers) |
| 383 | { |
no test coverage detected