target: aarch64: fix regs invalidation when -defer-examine
commit42e31d75b443e369597669b5ff7901de902ad35e
authorAntonio Borneo <borneo.antonio@gmail.com>
Sat, 13 Apr 2024 16:46:11 +0000 (13 18:46 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 4 May 2024 08:34:37 +0000 (4 08:34 +0000)
tree56840166bfe937157bbe6f6d240ec45c49007644
parent89d881c19ae89712652f17962b8b7d2e79e25ca3
target: aarch64: fix regs invalidation when -defer-examine

The code for aarch64 allocates the register cache during the very
first examine of the target.
To prevent a segmentation fault in assert_reset(), the call to
register_cache_invalidate() is guarded by target_was_examined().

But for targets with -defer-examine, the target is set as not
examined in handle_target_reset() just before entering in
assert_reset().

This causes registers to not be invalidated while reset a target
examined but with -defer-examine.

Change the condition and invalidate the register cache if it has
been already allocated.

Change-Id: Ie13abb0ae2cc28fc3295d678c4ad1691024eb7b8
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8214
Tested-by: jenkins
src/target/aarch64.c