From: OpenOCD-Gerrit <ope...@us...> - 2021-04-30 07:24:28
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via ef0da7944886466bc09386616fa089925be5ac62 (commit) from fd40d0967607f8ee7d0aabf7ea7fd93cfc419bf1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ef0da7944886466bc09386616fa089925be5ac62 Author: Tarek BOCHKATI <tar...@gm...> Date: Tue Jan 12 20:10:23 2021 +0100 cortex_m: mark FPU register as non-existent instead of playing with num_regs Change-Id: Iac7c5bfbb95c8d9a8c6d65104d138692a44eca78 Signed-off-by: Tarek BOCHKATI <tar...@gm...> Reviewed-on: http://openocd.zylin.com/6015 Tested-by: jenkins Reviewed-by: Tomas Vanek <va...@fb...> diff --git a/src/target/armv7m.h b/src/target/armv7m.h index f5679b91d..652dbe798 100644 --- a/src/target/armv7m.h +++ b/src/target/armv7m.h @@ -164,7 +164,12 @@ enum { /* Floating-point status register */ ARMV7M_FPSCR, + /* for convenience add registers' block delimiters */ ARMV7M_LAST_REG, + ARMV7M_CORE_FIRST_REG = ARMV7M_R0, + ARMV7M_CORE_LAST_REG = ARMV7M_xPSR, + ARMV7M_FPU_FIRST_REG = ARMV7M_D0, + ARMV7M_FPU_LAST_REG = ARMV7M_FPSCR, }; enum { @@ -174,8 +179,7 @@ enum { FPV5_DP, }; -#define ARMV7M_NUM_CORE_REGS (ARMV7M_xPSR + 1) -#define ARMV7M_NUM_CORE_REGS_NOFP (ARMV7M_CONTROL + 1) +#define ARMV7M_NUM_CORE_REGS (ARMV7M_CORE_LAST_REG - ARMV7M_CORE_FIRST_REG + 1) #define ARMV7M_COMMON_MAGIC 0x2A452A45 diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index e7a2fadda..46b0e3c2a 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -2038,19 +2038,11 @@ int cortex_m_examine(struct target *target) armv7m->arm.is_armv6m = true; } - if (armv7m->fp_feature == FP_NONE && - armv7m->arm.core_cache->num_regs > ARMV7M_NUM_CORE_REGS_NOFP) { - /* free unavailable FPU registers */ - size_t idx; - - for (idx = ARMV7M_NUM_CORE_REGS_NOFP; - idx < armv7m->arm.core_cache->num_regs; - idx++) { - free(armv7m->arm.core_cache->reg_list[idx].feature); - free(armv7m->arm.core_cache->reg_list[idx].reg_data_type); - } - armv7m->arm.core_cache->num_regs = ARMV7M_NUM_CORE_REGS_NOFP; - } + /* Check for FPU, otherwise mark FPU register as non-existent */ + if (armv7m->fp_feature == FP_NONE) + for (size_t idx = ARMV7M_FPU_FIRST_REG; idx <= ARMV7M_FPU_LAST_REG; idx++) + armv7m->arm.core_cache->reg_list[idx].exist = false; + if (!armv7m->stlink) { if (i == 3 || i == 4) ----------------------------------------------------------------------- Summary of changes: src/target/armv7m.h | 8 ++++++-- src/target/cortex_m.c | 18 +++++------------- 2 files changed, 11 insertions(+), 15 deletions(-) hooks/post-receive -- Main OpenOCD repository |