aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Welwarsky <matthias.welwarsky@sysgo.com>2016-10-20 15:39:30 +0200
committerMatthias Welwarsky <matthias.welwarsky@sysgo.com>2017-02-10 14:18:35 +0100
commit0a53bae0ea4007f171802b7d5e65499d4aa18ad0 (patch)
treeeebbab05998881eb2d25cb9748c3b4b916ee13e6 /src
parentccb1199d490b86e0f963a1d0509c748c800f20d4 (diff)
downloadriscv-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.c15
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;
}