target/riscv: Introduce externally facing CSR access functions
Convert riscv_csr_[read|write]() into target_ulong angnostic CSR access functions that can be safely used from outside of target/ without knowledge of the target register size. Replace the 4 existing CSR accesses in hw/ and linux-user/. Signed-off-by: Anton Johansson <anjo@rev.ng> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260520125406.28693-25-anjo@rev.ng> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
committed by
Alistair Francis
parent
cfc1d1ade1
commit
e59bd5cdb7
@@ -90,7 +90,8 @@ static void setup_sigcontext(struct target_sigcontext *sc, CPURISCVState *env)
|
||||
__put_user(env->fpr[i], &sc->fpr[i]);
|
||||
}
|
||||
|
||||
uint32_t fcsr = riscv_csr_read(env, CSR_FCSR);
|
||||
uint64_t fcsr;
|
||||
riscv_csr_read_i64(env, CSR_FCSR, &fcsr);
|
||||
__put_user(fcsr, &sc->fcsr);
|
||||
}
|
||||
|
||||
@@ -159,7 +160,7 @@ static void restore_sigcontext(CPURISCVState *env, struct target_sigcontext *sc)
|
||||
|
||||
uint32_t fcsr;
|
||||
__get_user(fcsr, &sc->fcsr);
|
||||
riscv_csr_write(env, CSR_FCSR, fcsr);
|
||||
riscv_csr_write_i64(env, CSR_FCSR, fcsr);
|
||||
}
|
||||
|
||||
static void restore_ucontext(CPURISCVState *env, struct target_ucontext *uc)
|
||||
|
||||
Reference in New Issue
Block a user