diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2019-01-15 15:51:13 +0100 |
---|---|---|
committer | Matthias Welwarsky <matthias@welwarsky.de> | 2019-01-23 15:26:39 +0000 |
commit | 45b4998e9369029d48c1f33fbccb1a525793cd46 (patch) | |
tree | db53aeb7bc7f045e745213e19ca5467acfe3396f | |
parent | c2e18bfaeafda3b5f5680bde47d3a04ce8cb2451 (diff) | |
download | riscv-openocd-45b4998e9369029d48c1f33fbccb1a525793cd46.zip riscv-openocd-45b4998e9369029d48c1f33fbccb1a525793cd46.tar.gz riscv-openocd-45b4998e9369029d48c1f33fbccb1a525793cd46.tar.bz2 |
arm_opcode: fix encoding of ARMv5 breakpoint instruction
The encoding of BKPT instruction is 0xE12###7#, where the four '#'
characters should be replaced by the 16 bits immediate value.
The macro uses an incorrect shift amount, thus the immediate value
is not properly coded and bits 20~23 of the opcode could get
corrupted.
Fixed by using the proper shift amount.
Change-Id: I32db8224ab57aad6d3b002f92f9f259056593675
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/4854
Tested-by: jenkins
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
-rw-r--r-- | src/target/arm_opcodes.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/target/arm_opcodes.h b/src/target/arm_opcodes.h index 482abe6..e94e833 100644 --- a/src/target/arm_opcodes.h +++ b/src/target/arm_opcodes.h @@ -213,7 +213,7 @@ /* Breakpoint instruction (ARMv5) * Im: 16-bit immediate */ -#define ARMV5_BKPT(Im) (0xe1200070 | ((Im & 0xfff0) << 8) | (Im & 0xf)) +#define ARMV5_BKPT(Im) (0xe1200070 | ((Im & 0xfff0) << 4) | (Im & 0xf)) /* Thumb mode instructions |