target/armv7m: prevent saving and restoring non existent regs
commit69391878535ec584a472475ee9767b6beaaa138c
authorTomas Vanek <vanekt@fbl.cz>
Tue, 18 Oct 2022 20:00:18 +0000 (18 22:00 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Tue, 15 Nov 2022 21:30:07 +0000 (15 21:30 +0000)
tree6c65bf7103e74f3e00449ced5f2d311c8b494f29
parent1d04ef3e55843f9880b7bbab32f564d2018a4b93
target/armv7m: prevent saving and restoring non existent regs

armv7m_start_algorithm() saves register values to arch_info->context.
armv7m_wait_algorithm() restores register values from arch_info->context.
Exclude registers with flag exist = false from both loops.

While on it refactor the register restore: introduce 'struct reg' pointer
and dereference it instead of numerous accesses by a full path
from armv7m pointer.

Change-Id: I1600084db84809ee13bcf8e7828b79f8c9ff9077
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/7276
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/armv7m.c