OSCPU / ysyx

一生一芯的信息发布和内容网站
123 stars 8 forks source link

【提问(已解决)】关于执行mret指令时difftest报错的问题 #17

Open shili2017 opened 3 years ago

shili2017 commented 3 years ago

mstatus different at pc = 0x00800005f4, right= 0x0000000000000088, wrong = 0x0000000000001888

执行mret指令时,在我们的实现里始终保持在machine mode,但是difftest给出的默认实现是返回到user mode(见mstatus中的mpp field),需要在difftest中修改源码吗?具体是在哪里修改?

(QQ群中有人提出类似问题但是聊天记录中没有具体回答)

shili2017 commented 3 years ago

我自己的solution:需要修改NEMU源码,在src/isa/riscv64/system/priv.c:179,把MODE_U改成MODE_M即可。