diff options
author | Paul Fertser <fercerpav@gmail.com> | 2018-01-28 15:48:46 +0300 |
---|---|---|
committer | Paul Fertser <fercerpav@gmail.com> | 2018-03-13 08:41:54 +0000 |
commit | a957a1c8433f45452902de3060364122602e6e1c (patch) | |
tree | 83d0de01ab784c823e4682cdb3876147b6f333c7 | |
parent | 7ac798016fe1de11b20c4450a861ee477e7ed6c9 (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.c | 1 |
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"; |