diff options
Diffstat (limited to 'src/target/arm_dpm.c')
-rw-r--r-- | src/target/arm_dpm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/target/arm_dpm.c b/src/target/arm_dpm.c index f94fcc4e..7c09e064 100644 --- a/src/target/arm_dpm.c +++ b/src/target/arm_dpm.c @@ -736,6 +736,23 @@ static int dpm_remove_watchpoint(struct target *target, struct watchpoint *wp) return retval; } +void arm_dpm_report_wfar(struct arm_dpm *dpm, uint32_t addr) +{ + switch (dpm->arm->core_state) { + case ARMV4_5_STATE_ARM: + addr -= 8; + break; + case ARMV4_5_STATE_THUMB: + case ARM_STATE_THUMB_EE: + addr -= 4; + break; + case ARMV4_5_STATE_JAZELLE: + /* ?? */ + break; + } + dpm->wp_pc = addr; +} + /*----------------------------------------------------------------------*/ /* |