fix(mstatus.mpp): 写入非法值时,mpp保持原值

更新逻辑修改为当往mpp中写入CPU未实现的状态时,mpp保持原值不变
main
Liphen 12 months ago
parent 2f2f9e9b54
commit 6293d1cd89

@ -267,7 +267,7 @@ public:
assert(mstatus->spie != 2);
assert(mstatus->mpie != 2);
// mstatus->spp = nstatus->spp;
mstatus->mpp = (nstatus->mpp == 3 || nstatus->mpp == 0) ? nstatus->mpp : 0;
mstatus->mpp = (nstatus->mpp == 3 || nstatus->mpp == 0) ? nstatus->mpp : mstatus->mpp;
mstatus->mprv = nstatus->mprv;
// mstatus->sum = nstatus->sum; // always true
// mstatus->mxr = nstatus->mxr; // always true

Loading…
Cancel
Save