aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/target/armv8.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/target/armv8.c b/src/target/armv8.c
index 75ada896..887e21df 100644
--- a/src/target/armv8.c
+++ b/src/target/armv8.c
@@ -1477,6 +1477,9 @@ static int armv8_get_core_reg32(struct reg *reg)
struct reg *reg64;
int retval;
+ if (target->state != TARGET_HALTED)
+ return ERROR_TARGET_NOT_HALTED;
+
/* get the corresponding Aarch64 register */
reg64 = cache->reg_list + armv8_reg->num;
if (reg64->valid) {
@@ -1500,6 +1503,9 @@ static int armv8_set_core_reg32(struct reg *reg, uint8_t *buf)
struct reg *reg64 = cache->reg_list + armv8_reg->num;
uint32_t value = buf_get_u32(buf, 0, 32);
+ if (target->state != TARGET_HALTED)
+ return ERROR_TARGET_NOT_HALTED;
+
if (reg64 == arm->cpsr) {
armv8_set_cpsr(arm, value);
} else {