-
Notifications
You must be signed in to change notification settings - Fork 312
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
updating opcodes of riscv-p-spec - v0.9.11 (c3409c8) #147
Conversation
eflaner
commented
Dec 2, 2022
•
edited
Loading
edited
- Reorganized 'p' into sub-extensions as described here
- created zpn, zpfs & zbpbo (along with appropriate 32 & 64 variants)
- removed rv_p, rv64_p ( according to RISC-V sub-extension policy -- it's invalid )
- zbpbo
- Replaced bitrevi with grevi)
- Replaced BPICK with CMIX
- zpsf (zpsfoperand)
- created zpsf as specified in specification
- SMMUL replacement in RV32 with MULH
- MAXW and MINW removed (replaced with MAX and MIN of Zbb respectively)
- Removed SWAP8 (replaced with REV8.H)
- Removed WEXT and WEXTI (replaced with FSR and FSRI respectively)
- zpn
- Removed CLO* variants
- Seperated INSB, SRAI.u instructions into RV32 and RV64 equivalents
- PKBB32, PKTT32 removed (Replaced by PACK and PACKU of Zbp respectively)
- PKTT16 and PKBB16 restricted to RV64
- Added CLROV and RDOV
- Reorganized 'p' into sub-extensions zpn, zpfs & zbpbo - Some instructions such as insb, smmul has been rearranged according XLEN.
LGTM |
Yeah, thanks for reviewing, @neelgala |
@eflaner Did you ever make a Spike PR associated with these changes? Spike no longer builds because it depends on the opcode definitions for the removed instructions like PKBB32. Without a corresponding Spike PR, I'll have to revert this PR, since we can't make progress on other extensions in Spike in the meantime. |
@scottj97 Do you think we should augment riscv-opcodes' CI flow to make sure that the HEAD of master on riscv-isa-sim can build with the generated encoding.h? It couples these repos awkwardly, but it would prevent this kind of breakage going forward. For a change like this one, which both adds and deletes opcodes, we'd either need to stage it as multiple PRs, or allow the corresponding Spike PR to be merged before rerunning CI over here. Fortunately, this kind of PR is not the common case. |
Fortunately this is rare, and I think we have a suitable workaround for this one.
I don't think Spike should commit an |
Reasonable. |
Temporarily work around #147 breaking Spike
No PR was created in Spike for these changes. Neither am i aware of spike internals to make it compliant with 'latest' spike.
Hmm, okay, i could see the #147 is excluded using the #157. on that note, which all repos (like spike) should be fixed before a PR is made in riscv-opcodes ? |
The general rule is that Spike must build against the output of this repository. Normally, adding new functionality to this repository poses no issues. The problems arise when existing functionality is deleted. Given there is no apparent plan to update Spike in accordance to #147 etc., we will revert those changes. We'll happily re-accept them once there is a plan to make them work with Spike. |
This reverts commit 9b0eddd.