From: Antonio Borneo Date: Tue, 15 Jan 2019 14:51:13 +0000 (+0100) Subject: arm_opcode: fix encoding of ARMv5 breakpoint instruction X-Git-Tag: v0.11.0-rc1~869 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=45b4998e9369029d48c1f33fbccb1a525793cd46;ds=sidebyside 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 Reviewed-on: http://openocd.zylin.com/4854 Tested-by: jenkins Reviewed-by: Matthias Welwarsky --- diff --git a/src/target/arm_opcodes.h b/src/target/arm_opcodes.h index 482abe630a..e94e8333b8 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