{
uint8_t high_reg, op, Rm, Rd,H1,H2;
char *mnemonic = NULL;
+ bool nop = false;
high_reg = (opcode & 0x0400) >> 10;
op = (opcode & 0x03C0) >> 6;
case 0x2:
instruction->type = ARM_MOV;
mnemonic = "MOV";
+ if (Rd == Rm)
+ nop = true;
break;
case 0x3:
if ((opcode & 0x7) == 0x0)
}
}
- snprintf(instruction->text, 128,
- "0x%8.8" PRIx32 " 0x%4.4x \t%s\tr%i, r%i",
- address, opcode, mnemonic, Rd, Rm);
+ if (nop)
+ snprintf(instruction->text, 128,
+ "0x%8.8" PRIx32 " 0x%4.4x \tNOP\t\t\t"
+ "; (%s r%i, r%i)",
+ address, opcode, mnemonic, Rd, Rm);
+ else
+ snprintf(instruction->text, 128,
+ "0x%8.8" PRIx32 " 0x%4.4x \t%s\tr%i, r%i",
+ address, opcode, mnemonic, Rd, Rm);
return ERROR_OK;
}