A Thumb BLX instruction is branching to ARM code, and therefore the
first 2 bits of the target address must be cleared.

Signed-off-by: Nicolas Pitre <n...@marvell.com>
---
 src/target/arm_disassembler.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c
index 5b0046b..ee087b1 100644
--- a/src/target/arm_disassembler.c
+++ b/src/target/arm_disassembler.c
@@ -1768,6 +1768,7 @@ static int evaluate_b_bl_blx_thumb(uint16_t opcode,
                case 1:
                        instruction->type = ARM_BLX;
                        mnemonic = "BLX";
+                       target_address &= 0xfffffffc;
                        break;
                /* BL/BLX prefix */
                case 2:
-- 
1.6.5.1.101.g325e5

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to