Skip to content

Commit 243725b

Browse files
authored
Fix the logged value for writes to sstatus, sie and sip. (#1065)
The logged values were mstatus,mie and mip; fix them to be sstatus, sie and sip instead.
1 parent 54d40b1 commit 243725b

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

model/riscv_sys_regs.sail

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ function legalize_sstatus(m : Mstatus, v : xlenbits) -> Mstatus = {
731731
mapping clause csr_name_map = 0x100 <-> "sstatus"
732732
function clause is_CSR_defined(0x100) = currentlyEnabled(Ext_S) // sstatus
733733
function clause read_CSR(0x100) = lower_mstatus(mstatus).bits[xlen - 1 .. 0]
734-
function clause write_CSR(0x100, value) = { mstatus = legalize_sstatus(mstatus, value); mstatus.bits[xlen - 1 .. 0] }
734+
function clause write_CSR(0x100, value) = { mstatus = legalize_sstatus(mstatus, value); lower_mstatus(mstatus).bits[xlen - 1 .. 0] }
735735

736736

737737
bitfield Sinterrupts : xlenbits = {
@@ -779,7 +779,7 @@ function legalize_sip(m : Minterrupts, d : Minterrupts, v : xlenbits) -> Minterr
779779
mapping clause csr_name_map = 0x144 <-> "sip"
780780
function clause is_CSR_defined(0x144) = currentlyEnabled(Ext_S) // sip
781781
function clause read_CSR(0x144) = lower_mip(mip, mideleg).bits
782-
function clause write_CSR(0x144, value) = { mip = legalize_sip(mip, mideleg, value); mip.bits }
782+
function clause write_CSR(0x144, value) = { mip = legalize_sip(mip, mideleg, value); lower_mip(mip, mideleg).bits }
783783

784784

785785
// sie
@@ -801,7 +801,7 @@ function legalize_sie(m : Minterrupts, d : Minterrupts, v : xlenbits) -> Minterr
801801
mapping clause csr_name_map = 0x104 <-> "sie"
802802
function clause is_CSR_defined(0x104) = currentlyEnabled(Ext_S) // sie
803803
function clause read_CSR(0x104) = lower_mie(mie, mideleg).bits
804-
function clause write_CSR(0x104, value) = { mie = legalize_sie(mie, mideleg, value); mie.bits }
804+
function clause write_CSR(0x104, value) = { mie = legalize_sie(mie, mideleg, value); lower_mie(mie, mideleg).bits }
805805

806806

807807
/* other non-VM related supervisor state */

0 commit comments

Comments
 (0)