-
Notifications
You must be signed in to change notification settings - Fork 100
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
Implement ebreak properly #60
Conversation
c.ebreak
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change README.md
to reflect the results of RISC-V Architecture Tests.
Check the article How to Write a Git Commit Message to summarize this change. |
For the consistent prototype with other exception handlers. I redeclare the - void rv_except_breakpoint(struct riscv_t *rv)
+ static void rv_except_breakpoint(struct riscv_t *rv, uint32_t old_pc) Add the new function |
Check |
Check ebreak ... FAIL
Check ecall ... FAIL
Check misalign1-jalr-01 ... OK
Check misalign2-jalr-01 ... OK
Check misalign-beq-01 ... OK
Check misalign-bge-01 ... OK
Check misalign-bgeu-01 ... OK
Check misalign-blt-01 ... OK
Check misalign-bltu-01 ... OK
Check misalign-bne-01 ... OK
Check misalign-jal-01 ... OK
Check misalign-lh-01 ... OK
Check misalign-lhu-01 ... OK
Check misalign-lw-01 ... FAIL
Check misalign-sh-01 ... OK
Check misalign-sw-01 ... FAIL |
Create a new issue regarding |
Add the breakpoint exception handler which triggers a breakpoint exception when the c.ebreak instruction is executed.
Rename the function: - void breakpoint_handler(struct riscv_t *rv);
+ void ebreak_handler(struct riscv_t *rv); |
Thank @Risheng1128 for contributing! |
This commit adds the instruction
c.ebreak
into rv32emu.Input the following command, and the
c.ebreak
test will pass.