Skip to content
New issue

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

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

Already on GitHub? # to your account

Pass several privilege tests and fix RV32I comment #65

Merged
merged 2 commits into from
Oct 10, 2022

Conversation

Risheng1128
Copy link
Collaborator

@Risheng1128 Risheng1128 commented Oct 9, 2022

This commit does the following things:

  • Pass serveral privilege instruction and exceptions tests like ebreak,
    misaligned load word and misaligned store word.
  • Fix the comment of different type of RV32I instructions format like
    I, R and J-type and so on.

Because the compiler option rv32gc will make ebreak be compiled
as c.ebreak format, change it to rv32g.

Copy link
Contributor

@jserv jserv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update README.md in top-level directory.

@jserv
Copy link
Contributor

jserv commented Oct 9, 2022

I would anticipate the commit being divided into two:

  1. Refine comments for RV32 instruction descriptions.
  2. Improve compliance for privileged instructions.

Fix the comment for different types of RV32I instructions format
like I, R and J-type and so on.
@Risheng1128
Copy link
Collaborator Author

Risheng1128 commented Oct 10, 2022

The current result of privilege tests:

Check ebreak                    ... OK 
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            ... OK 
Check misalign-sh-01            ... OK 
Check misalign-sw-01            ... OK 

Copy link
Contributor

@jserv jserv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Analyze the reason why ecall fails and describe in the git commit message.

Pass serveral privilege instruction and exceptions tests like ebreak,
misaligned load word and misaligned store word.

Moreover, the privilege instruction ecall doesn't pass the test
because it only dispatches the syscall number to corresponding handler.

Therefore, it needs to implement the exception handler with control
and status registers (CSRs).
@Risheng1128
Copy link
Collaborator Author

The privilege instruction ecall doesn't pass the test because it only
dispatches the syscall number to corresponding handler in current
rv32emu.
Therefore, it needs to implement the exception handler with control
and status registers (CSRs).

@jserv jserv merged commit b4d8f97 into sysprog21:master Oct 10, 2022
@jserv
Copy link
Contributor

jserv commented Oct 10, 2022

Thank @Risheng1128 for contributing!

vestata pushed a commit to vestata/rv32emu that referenced this pull request Jan 24, 2025
Pass several privilege tests and fix RV32I comment
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants