mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-25 15:14:31 +00:00
target/riscv: Make VSTIP and VSEIP read-only in hip
Signed-off-by: Georg Kotheimer <georg.kotheimer@kernkonzept.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20210311094902.1377593-1-georg.kotheimer@kernkonzept.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
90ec1cff76
commit
e89b631cf4
@ -420,7 +420,8 @@ static const target_ulong sstatus_v1_10_mask = SSTATUS_SIE | SSTATUS_SPIE |
|
|||||||
SSTATUS_UIE | SSTATUS_UPIE | SSTATUS_SPP | SSTATUS_FS | SSTATUS_XS |
|
SSTATUS_UIE | SSTATUS_UPIE | SSTATUS_SPP | SSTATUS_FS | SSTATUS_XS |
|
||||||
SSTATUS_SUM | SSTATUS_MXR | SSTATUS_SD;
|
SSTATUS_SUM | SSTATUS_MXR | SSTATUS_SD;
|
||||||
static const target_ulong sip_writable_mask = SIP_SSIP | MIP_USIP | MIP_UEIP;
|
static const target_ulong sip_writable_mask = SIP_SSIP | MIP_USIP | MIP_UEIP;
|
||||||
static const target_ulong hip_writable_mask = MIP_VSSIP | MIP_VSTIP | MIP_VSEIP;
|
static const target_ulong hip_writable_mask = MIP_VSSIP;
|
||||||
|
static const target_ulong hvip_writable_mask = MIP_VSSIP | MIP_VSTIP | MIP_VSEIP;
|
||||||
static const target_ulong vsip_writable_mask = MIP_VSSIP;
|
static const target_ulong vsip_writable_mask = MIP_VSSIP;
|
||||||
|
|
||||||
static const char valid_vm_1_10_32[16] = {
|
static const char valid_vm_1_10_32[16] = {
|
||||||
@ -962,9 +963,9 @@ static int rmw_hvip(CPURISCVState *env, int csrno, target_ulong *ret_value,
|
|||||||
target_ulong new_value, target_ulong write_mask)
|
target_ulong new_value, target_ulong write_mask)
|
||||||
{
|
{
|
||||||
int ret = rmw_mip(env, 0, ret_value, new_value,
|
int ret = rmw_mip(env, 0, ret_value, new_value,
|
||||||
write_mask & hip_writable_mask);
|
write_mask & hvip_writable_mask);
|
||||||
|
|
||||||
*ret_value &= hip_writable_mask;
|
*ret_value &= hvip_writable_mask;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user