int i;
arm_instruction_t cur_instruction;
u32 opcode;
+ u16 thumb_opcode;
int thumb = 0;
if (armv4_5->common_magic != ARMV4_5_COMMON_MAGIC)
for (i = 0; i < count; i++)
{
- if((retval = target_read_u32(target, address, &opcode)) != ERROR_OK)
+ if(thumb)
{
- return retval;
+ if((retval = target_read_u16(target, address, &thumb_opcode)) != ERROR_OK)
+ {
+ return retval;
+ }
+ if((retval = thumb_evaluate_opcode(thumb_opcode, address, &cur_instruction)) != ERROR_OK)
+ {
+ return retval;
+ }
}
- if((retval = arm_evaluate_opcode(opcode, address, &cur_instruction)) != ERROR_OK)
- {
- return retval;
+ else {
+ if((retval = target_read_u32(target, address, &opcode)) != ERROR_OK)
+ {
+ return retval;
+ }
+ if((retval = arm_evaluate_opcode(opcode, address, &cur_instruction)) != ERROR_OK)
+ {
+ return retval;
+ }
}
command_print(cmd_ctx, "%s", cur_instruction.text);
address += (thumb) ? 2 : 4;