diff options
author | Frank Chang <frank.chang@sifive.com> | 2021-09-21 10:02:33 +0800 |
---|---|---|
committer | Alistair Francis <alistair.francis@wdc.com> | 2021-10-07 08:41:33 +1000 |
commit | a88f0402391e9075df774affe5482d1286b9237e (patch) | |
tree | a42ab27c699c3470e42bf71becc0e7e19413479c /python/qemu | |
parent | 02c1b569a15b4b06a3c69b6cb1713830a29cb01f (diff) | |
download | qemu-a88f0402391e9075df774affe5482d1286b9237e.zip qemu-a88f0402391e9075df774affe5482d1286b9237e.tar.gz qemu-a88f0402391e9075df774affe5482d1286b9237e.tar.bz2 |
target/riscv: Set mstatus_hs.[SD|FS] bits if Clean and V=1 in mark_fs_dirty()
When V=1, both vsstauts.FS and HS-level sstatus.FS are in effect.
Modifying the floating-point state when V=1 causes both fields to
be set to 3 (Dirty).
However, it's possible that HS-level sstatus.FS is Clean and VS-level
vsstatus.FS is Dirty at the time mark_fs_dirty() is called when V=1.
We can't early return for this case because we still need to set
sstatus.FS to Dirty according to spec.
Signed-off-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Vincent Chen <vincent.chen@sifive.com>
Tested-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: 20210921020234.123448-1-frank.chang@sifive.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'python/qemu')
0 files changed, 0 insertions, 0 deletions