Age | Commit message (Collapse) | Author | Files | Lines |
|
Since Sail 0.15 (released Nov 2022), effects have had no effect. They now generate a deprecation warning. This commit removes all the effect annotations from the model, thus fixing the compiler warnings.
|
|
|
|
Sail tries to check for pattern match completeness and issues warnings
but this often gives false positives: see discussion at
https://github.com/rems-project/sail/issues/191 . To suppress these
we add a wildcard case that raises an internal error. There is
effectively no behaviour change as these would previously have
resulted in a match error at runtime and they should be unreachable
anyway.
At the same time we change the DOUBLE case in memory access paths to
allow for xlen > 64.
Following discussion on the PR I also changed internal_error to take a
file and line number as an argument to aid with debugging.
Fixes: https://github.com/riscv/sail-riscv/issues/194
|
|
|
|
It's possible that we might want to do page table walks at Privilege levels
other than the default value (e.g., under the explicit direction of the
instruction stream). Split translateAddr into a thin wrapper of the same name
and a new translateAddr_priv that takes the Privilege as an argument.
|
|
* Add {} so I can add a new variable here next
* Create new variable which I will soon reuse
* Plumb in the access type to effectivePrivilege
So I can use it to fix #47 next.
* Instruction fetches should not be affected by mstatus.MPRV
Fixes #47.
* Remove now-redundant privilege calculation
|
|
|
|
|
|
|
|
|
|
|
|
spec. This is not possible for RV32, so pass zeros there.
|
|
- unify AccessType and ReadType since they were essentially redundant,
making it easier to implement PMP checks for ReadWrite/atomic accesses.
- add command line options to enable PMP in the platform
- also fix the matching for the case when all entries are off
|
|
|
|
|
|
- handle sfence.vma in machine-mode
- flush both tlb39 and tlb48 in 64-bit mode
|
|
- fix and simplify model initialization, to enable generic TLB initialization
- re-enable sfence.vma
|
|
|
|
|
|
Being first-order prevents straight-forward abstraction over the PTE operations, but perhaps there is another way to generalize and unify.
|