hello,
linux-2.6$ arm-linux-objdump -D .vmlinux | egrep -2 c0023a70:
c0023a68: e595601c ldr r6, [r5, #28]
c0023a6c: e3560000 cmp r6, #0 ; 0x0
c0023a70: 116f5f16 clzne r5, r6
c0023a74: 10400005 subne r0, r0, r5
c0023a78: 11a0100d movne r1, sp
linux-2.6$
as see above, clz instruction is at 0xc0023a70 but, OpenOCD says,
> armv4_5 disassemble 0xc0023a68 5
0xc0023a68 0xe595601c LDR r6, [r5, #0x1c]
0xc0023a6c 0xe3560000 CMP r6, #0x0
0xc0023a74 0x10400005 SUBNE r0, r0, r5
0xc0023a78 0x11a0100d MOVNE r1, r13
> targets
CmdName Type Endian AbsChainPos Name State
-- ---------- ---------- ---------- ----------- ------------- ----------
0: mp201.cpu arm926ejs little 0 mp201.cpu halted
>
----------------------------------------------------------------------
with attached patch,
> armv4_5 disassemble 0xc0023a68 5
0xc0023a68 0xe595601c LDR r6, [r5, #0x1c]
0xc0023a6c 0xe3560000 CMP r6, #0x0
0xc0023a70 0x116f5f16 CLZNE r5, r6
0xc0023a74 0x10400005 SUBNE r0, r0, r5
0xc0023a78 0x11a0100d MOVNE r1, r13
>
Orignal src has 9 digits constant. it shold be worng.
so, I change BLX(2) instruction too, but I did not tested.
can anybody test it?
--------
Hiroshi Ito
Media Lab. Inc.,
URL http://www.mlb.co.jp ( Sorry, Japanese only. )
TEL +81-3-5294-7255 FAX +81-3-5294-7256
Index: src/target/arm_disassembler.c
===================================================================
--- src/target/arm_disassembler.c (revision 1427)
+++ src/target/arm_disassembler.c (working copy)
@@ -818,7 +818,7 @@
}
/* CLZ */
- if ((opcode & 0x0060000f0) == 0x00300010)
+ if ((opcode & 0x006000f0) == 0x00600010)
{
u8 Rm, Rd;
instruction->type = ARM_CLZ;
@@ -829,8 +829,8 @@
address, opcode, COND(opcode), Rd, Rm);
}
- /* BLX */
- if ((opcode & 0x0060000f0) == 0x00200030)
+ /* BLX(2) */
+ if ((opcode & 0x006000f0) == 0x00200030)
{
u8 Rm;
instruction->type = ARM_BLX;
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development