mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-07 19:10:37 +00:00
target/riscv: Make VSTIP and VSEIP read-only in hip
Backports e89b631cf44d590dbd2c250358f4130f64b5d890
This commit is contained in:
parent
eb778614fb
commit
a392976e77
|
@ -371,7 +371,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] = {
|
||||||
|
@ -915,9 +916,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…
Reference in a new issue