target/riscv: Not allow write mstatus_vs without RVV
If CPU does not implement the Vector extension, it usually means mstatus vs hardwire to zero. So we should not allow write a non-zero value to this field. Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20231215023313.1708-1-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
564a28bda1
commit
7767f8b122
@ -1328,11 +1328,14 @@ static RISCVException write_mstatus(CPURISCVState *env, int csrno,
|
||||
mask = MSTATUS_SIE | MSTATUS_SPIE | MSTATUS_MIE | MSTATUS_MPIE |
|
||||
MSTATUS_SPP | MSTATUS_MPRV | MSTATUS_SUM |
|
||||
MSTATUS_MPP | MSTATUS_MXR | MSTATUS_TVM | MSTATUS_TSR |
|
||||
MSTATUS_TW | MSTATUS_VS;
|
||||
MSTATUS_TW;
|
||||
|
||||
if (riscv_has_ext(env, RVF)) {
|
||||
mask |= MSTATUS_FS;
|
||||
}
|
||||
if (riscv_has_ext(env, RVV)) {
|
||||
mask |= MSTATUS_VS;
|
||||
}
|
||||
|
||||
if (xl != MXL_RV32 || env->debugger) {
|
||||
if (riscv_has_ext(env, RVH)) {
|
||||
|
Loading…
Reference in New Issue
Block a user