diff options
author | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2016-10-20 15:39:30 +0200 |
---|---|---|
committer | Matthias Welwarsky <matthias.welwarsky@sysgo.com> | 2017-02-10 14:18:35 +0100 |
commit | 0a53bae0ea4007f171802b7d5e65499d4aa18ad0 (patch) | |
tree | eebbab05998881eb2d25cb9748c3b4b916ee13e6 /src | |
parent | ccb1199d490b86e0f963a1d0509c748c800f20d4 (diff) | |
download | riscv-openocd-0a53bae0ea4007f171802b7d5e65499d4aa18ad0.zip riscv-openocd-0a53bae0ea4007f171802b7d5e65499d4aa18ad0.tar.gz riscv-openocd-0a53bae0ea4007f171802b7d5e65499d4aa18ad0.tar.bz2 |
aarch64: cleanup context restore
Remove register cache invalidation and target state changes that are
handled appropriately in other functions.
Change-Id: Ic903f41ddc267f4b8765ea022bd4d6da1017e21f
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/target/aarch64.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/target/aarch64.c b/src/target/aarch64.c index d7d557d..1220004 100644 --- a/src/target/aarch64.c +++ b/src/target/aarch64.c @@ -504,25 +504,16 @@ static int aarch64_internal_restore(struct target *target, int current, LOG_ERROR("How do I resume into Jazelle state??"); return ERROR_FAIL; } - LOG_DEBUG("resume pc = 0x%16" PRIx64, resume_pc); + LOG_DEBUG("resume pc = 0x%016" PRIx64, resume_pc); buf_set_u64(arm->pc->value, 0, 64, resume_pc); arm->pc->dirty = 1; arm->pc->valid = 1; - armv8_dpm_modeswitch(&armv8->dpm, ARM_MODE_ANY); /* called it now before restoring context because it uses cpu * register r0 for restoring system control register */ retval = aarch64_restore_system_control_reg(target); - if (retval != ERROR_OK) - return retval; - retval = aarch64_restore_context(target, handle_breakpoints); - if (retval != ERROR_OK) - return retval; - target->debug_reason = DBG_REASON_NOTHALTED; - target->state = TARGET_RUNNING; - - /* registers are now invalid */ - register_cache_invalidate(arm->core_cache); + if (retval == ERROR_OK) + retval = aarch64_restore_context(target, handle_breakpoints); return retval; } |