I noticed there are a few checks for (rt == 0xf) even though that case is handled with an early return at the top of the function.
Maybe those checks should just go? /Andreas Index: src/target/arm_disassembler.c =================================================================== --- src/target/arm_disassembler.c (revision 2561) +++ src/target/arm_disassembler.c (working copy) @@ -3523,8 +3523,6 @@ if ((opcode & (1 << 23)) == 0) { if (rn == 0xf) { ldrh_literal: - if (rt == 0xf) - return ERROR_INVALID_ARGUMENTS; immed = opcode & 0xfff; address = thumb_alignpc4(address); if (opcode & (1 << 23)) @@ -3535,8 +3533,6 @@ sign, rt, address); return ERROR_OK; } - if (rt == 0xf) - return ERROR_INVALID_ARGUMENTS; if (op2 == 0) { int rm = opcode & 0xf; @@ -3574,12 +3570,11 @@ } else { if (rn == 0xf) goto ldrh_literal; - if (rt != 0x0f) { - immed = opcode & 0xfff; - sprintf(cp, "LDR%sH.W\tr%d, [r%d, #%d]\t; %#6.6x", - sign, rt, rn, immed, immed); - return ERROR_OK; - } + + immed = opcode & 0xfff; + sprintf(cp, "LDR%sH.W\tr%d, [r%d, #%d]\t; %#6.6x", + sign, rt, rn, immed, immed); + return ERROR_OK; } return ERROR_INVALID_ARGUMENTS; _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development