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
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development