diff options
author | Evgeniy Naydanov <109669442+en-sc@users.noreply.github.com> | 2024-04-26 20:48:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-26 20:48:47 +0300 |
commit | 5aac841f4a802f78da52d33969039fafea0c0d51 (patch) | |
tree | 25cfc1c426df7b1b27e157bf6a2977011b1fbcc1 /src | |
parent | 16db1b77ffbb8d615b3b39cbaedf2b78bce8d967 (diff) | |
parent | 98ece6bac993c39d0a9fdcd9e0a81d007b960775 (diff) | |
download | riscv-openocd-5aac841f4a802f78da52d33969039fafea0c0d51.zip riscv-openocd-5aac841f4a802f78da52d33969039fafea0c0d51.tar.gz riscv-openocd-5aac841f4a802f78da52d33969039fafea0c0d51.tar.bz2 |
Merge pull request #1054 from en-sc/en-sc/rv011-pc-dpc
target/riscv/riscv-011: pc and dpc should be cached at the same location
Diffstat (limited to 'src')
-rw-r--r-- | src/target/riscv/riscv-011.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/target/riscv/riscv-011.c b/src/target/riscv/riscv-011.c index 88ae14d..1060294 100644 --- a/src/target/riscv/riscv-011.c +++ b/src/target/riscv/riscv-011.c @@ -1280,7 +1280,7 @@ static int register_write(struct target *target, unsigned int number, } else if (number <= GDB_REGNO_XPR31) { cache_set_load(target, 0, number - GDB_REGNO_ZERO, SLOT0); cache_set_jump(target, 1); - } else if (number == GDB_REGNO_PC) { + } else if (number == GDB_REGNO_PC || number == GDB_REGNO_DPC) { info->dpc = value; return ERROR_OK; } else if (number >= GDB_REGNO_FPR0 && number <= GDB_REGNO_FPR31) { @@ -1338,7 +1338,7 @@ static int get_register(struct target *target, riscv_reg_t *value, if (regid <= GDB_REGNO_XPR31) { *value = reg_cache_get(target, regid); - } else if (regid == GDB_REGNO_PC) { + } else if (regid == GDB_REGNO_PC || regid == GDB_REGNO_DPC) { *value = info->dpc; } else if (regid >= GDB_REGNO_FPR0 && regid <= GDB_REGNO_FPR31) { int result = update_mstatus_actual(target); |