You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
)
Fix compile error when enabling "Enable debug features: instruction tracing and watchpoint" (CONFIG_DEBUG)
Duplicated definition of ebreak caused this problem
Fix the issue of EBREAK instruction causing segmentation fault when enabling "Performance optimization" (CONFIG_PERF_OPT) NEMU在开启性能优化选项后,执行EBREAK指令时出现段错误 #132
EBREAK was missed during decoding Type-I instruction, causing pointer tnext of its Decode struct to be NULL.
Fix executing incorrect VS-mode instructions in M-mode.
Some VS-mode instructions and M-mode instructions have the same PC address. NEMU did not flush TCACHE when an exception which changing virtualization mode occurs. Fix it.
这个合并请求修复了 H 扩展和性能优化相关的若干问题。
修复了启用“Enable debug features: instruction tracing and watchpoint”(CONFIG_DEBUG)时出现的编译错误
有关 EBREAK 的重复定义造成了此问题
修复了启用性能优化选项“Performance optimization”(CONFIG_PERF_OPT)时调用 EBREAK 指令造成 NEMU 段错误的问题。 NEMU在开启性能优化选项后,执行EBREAK指令时出现段错误 #132
译码时指定 I 类型指令时漏掉了 EBREAK,导致其 Decode 项中的 tnext 为空指针。
修复了在 M 态错误执行 VS 态指令的问题
某些 M 态代码和 VS 态代码具有相同的地址。当发生更改虚拟化模式的异常时,NEMU 没有刷新 TCACHE。修复了这个问题。
* fix: compile error when enable NEMU debug
* fix: ebreak problem when enable Performance optimization
* fix: flush tcache when changing virtualization mode
* fix: remove redundant code
riscv64-xs-ref_defconfig
fw_jump.bin
如题,在上述条件下运行 NEMU 时出现了段错误,但关闭性能优化选项(Miscellaneous -> Performance optimization)则可正常运行。段错误截图如下
经过初步调试,发现下述代码中
s->tnext
和s->ntnext
为空指针,引发段错误。NEMU/src/cpu/cpu-exec.c
Lines 175 to 180 in 3da78d2
根据
s
中存储的信息,引发出错的指令是fw_jump
中地址为0x8000d4a4
的 EBREAK 指令。The text was updated successfully, but these errors were encountered: