diff --git a/src/target/arm_jtag.h b/src/target/arm_jtag.h index bf5b83748..f3e0bc2a3 100644 --- a/src/target/arm_jtag.h +++ b/src/target/arm_jtag.h @@ -23,6 +23,7 @@ #define OPENOCD_TARGET_ARM_JTAG_H #include +#include struct arm_jtag { struct jtag_tap *tap; @@ -42,7 +43,7 @@ static inline int arm_jtag_set_instr(struct jtag_tap *tap, uint32_t new_instr, void *no_verify_capture, tap_state_t end_state) { /* inline most common code path */ - if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr) + if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (new_instr & (BIT(tap->ir_length) - 1))) return arm_jtag_set_instr_inner(tap, new_instr, no_verify_capture, end_state); return ERROR_OK;