Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RV64: fix several bugs of H extention and performance optimization #133

Merged
merged 4 commits into from
Jul 28, 2023
Merged

RV64: fix several bugs of H extention and performance optimization #133

merged 4 commits into from
Jul 28, 2023

Conversation

cebarobot
Copy link
Member

@cebarobot cebarobot commented Jul 28, 2023

This PR fix several bugs of H extention and performance optimization.

  • 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。修复了这个问题。

@Lemover Lemover merged commit 5421de3 into OpenXiangShan:master Jul 28, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants