mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
target/riscv: rvv-1.0: check MSTATUS_VS when accessing vector csr registers
If VS field is off, accessing vector csr registers should raise an illegal-instruction exception. Signed-off-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20211210075704.23951-12-frank.chang@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
2e56505475
commit
6bc3dfa96d
1 changed files with 5 additions and 0 deletions
|
@ -48,6 +48,11 @@ static RISCVException fs(CPURISCVState *env, int csrno)
|
||||||
static RISCVException vs(CPURISCVState *env, int csrno)
|
static RISCVException vs(CPURISCVState *env, int csrno)
|
||||||
{
|
{
|
||||||
if (env->misa_ext & RVV) {
|
if (env->misa_ext & RVV) {
|
||||||
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
|
if (!env->debugger && !riscv_cpu_vector_enabled(env)) {
|
||||||
|
return RISCV_EXCP_ILLEGAL_INST;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return RISCV_EXCP_NONE;
|
return RISCV_EXCP_NONE;
|
||||||
}
|
}
|
||||||
return RISCV_EXCP_ILLEGAL_INST;
|
return RISCV_EXCP_ILLEGAL_INST;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue