aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Fertser <fercerpav@gmail.com>2018-01-28 15:48:46 +0300
committerPaul Fertser <fercerpav@gmail.com>2018-03-13 08:41:54 +0000
commita957a1c8433f45452902de3060364122602e6e1c (patch)
tree83d0de01ab784c823e4682cdb3876147b6f333c7
parent7ac798016fe1de11b20c4450a861ee477e7ed6c9 (diff)
target: arm: disassembler: fix Thumb2 BLX decoding address
Since BLX in Thumb2 always switches mode to ARM, the PC needs to be 4-bytes aligned. Change-Id: I4f4c194fe21093cecfd9872e1d30588f4adc7257 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/4382 Reviewed-by: Philipp Guehring <pg@futureware.at> Tested-by: jenkins Reviewed-by: Paul Sokolovsky <pfalcon@users.sourceforge.net>
-rw-r--r--src/target/arm_disassembler.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c
index ef69a203..8e783d34 100644
--- a/src/target/arm_disassembler.c
+++ b/src/target/arm_disassembler.c
@@ -2978,6 +2978,7 @@ static int t2ev_b_bl(uint32_t opcode, uint32_t address,
case 0x4:
inst = "BLX";
instruction->type = ARM_BLX;
+ address &= 0xfffffffc;
break;
case 0x5:
inst = "BL";