aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2019-01-15 15:51:13 +0100
committerMatthias Welwarsky <matthias@welwarsky.de>2019-01-23 15:26:39 +0000
commit45b4998e9369029d48c1f33fbccb1a525793cd46 (patch)
treedb53aeb7bc7f045e745213e19ca5467acfe3396f
parentc2e18bfaeafda3b5f5680bde47d3a04ce8cb2451 (diff)
downloadriscv-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.h2
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