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

Reply via email to