Browse Source
Merge pull request #1363 from YenHaoChen/pr-initial-mpp
Let mstatus.MPP initially be M-mode if unsupporting U-mode
pull/1367/head
Andrew Waterman
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
1 additions and
0 deletions
-
riscv/csrs.cc
|
|
@ -510,6 +510,7 @@ reg_t mstatus_csr_t::compute_mstatus_initial_value() const noexcept { |
|
|
| (proc->extension_enabled_const('S') ? MSTATUS_SBE : 0) |
|
|
| (proc->extension_enabled_const('S') ? MSTATUS_SBE : 0) |
|
|
| MSTATUS_MBE; |
|
|
| MSTATUS_MBE; |
|
|
return 0 |
|
|
return 0 |
|
|
|
|
|
| set_field((reg_t)0, MSTATUS_MPP, proc->extension_enabled_const('U') ? PRV_U : PRV_M) |
|
|
| (proc->extension_enabled_const('U') && (proc->get_const_xlen() != 32) ? set_field((reg_t)0, MSTATUS_UXL, xlen_to_uxl(proc->get_const_xlen())) : 0) |
|
|
| (proc->extension_enabled_const('U') && (proc->get_const_xlen() != 32) ? set_field((reg_t)0, MSTATUS_UXL, xlen_to_uxl(proc->get_const_xlen())) : 0) |
|
|
| (proc->extension_enabled_const('S') && (proc->get_const_xlen() != 32) ? set_field((reg_t)0, MSTATUS_SXL, xlen_to_uxl(proc->get_const_xlen())) : 0) |
|
|
| (proc->extension_enabled_const('S') && (proc->get_const_xlen() != 32) ? set_field((reg_t)0, MSTATUS_SXL, xlen_to_uxl(proc->get_const_xlen())) : 0) |
|
|
| (proc->get_mmu()->is_target_big_endian() ? big_endian_bits : 0) |
|
|
| (proc->get_mmu()->is_target_big_endian() ? big_endian_bits : 0) |
|
|
|