-
Notifications
You must be signed in to change notification settings - Fork 665
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
Fetch Instruction/Category clarification #1824
Fetch Instruction/Category clarification #1824
Conversation
Not sure if it's best to post this here, or just open a PR with this content, but I tried to crisp up the text a bit with some consistent use of language and character attributes:
|
I converted this to draft until we figure this. @ThinkOpenly Could you commit those changes in any repo so I can cherry pick them? Or maybe we could do the PR from a repo we both have acess to? Or last case scenario I can just copy your commit and give credit in commit message, maybe co-authoring? I honestly don't know how to procede, how do you think it is preferable to do this? |
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.
The changes other than the instruction encoding look OK to me.
https://github.com/ThinkOpenly/riscv-isa-manual/tree/FENCEd-in (branch), or the specific commit: It's fairly independent of your changes, except perhaps the last hunk, so I could create an independent PR, or you can cherry-pick. I'm flexible. |
The description of the "FENCE" instructions under "Memory Ordering Instructions" (section 2.7) has some inconsistencies which are magnified by the coexistence of "FENCE" as a set of instructions depending on the value of the _fm_ field, and a specific instruction that uses the `FENCE` mnemonic when _fm_=0b0000. Try to improve the documentation in this section with the following changes: - I avoid "the FENCE instruction" in favor of "FENCE instructions" or "a FENCE instruction" (just all caps here, too). - I capitalized "fence" when it was clearly referring to "FENCE instructions". - I used `FENCE` when the referring to the `FENCE` instruction (with _fm_=0000). - I put "with _fm_=0000" in paretheses when it was already associated with the `FENCE` instruction (with _fm_=0000) to convey that this was just to add some clarity (not specialization) for something that should already be fairly clear. (Although using text attributes for clarity is not terribly accessible, perhaps?) - I changed uses of `FENCE` to FENCE when it was referring to the class. - I put all references to `FENCE.TSO` in backticks, since this is referring to a specific instruction (not the class). - I put all references like `FENCE RW,RW` in backticks, since this is referring to a specific instruction. - In this text: > many _fm_ and predecessor/successor set settings in <<fm>> are also reserved for future use. I removed "in <<fm>>" because I couldn't make sense of that sentence otherwise. - I replaced "normal fences" with "`FENCE` instructions (with _fm_=0000)", since it's really a reference to a specific instruction.
eb11b46
to
d7ae857
Compare
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.
This version LGTM, thanks.
I think that opcode change here makes it clear enough that FENCE instruction requires
fm=0000
and given the previous wavedrom, I also think it is clear that there is room for further future uses.@ThinkOpenly @aswaterman Do you think I should clarify the difference between Category vs Instruction more clearly?
Resolves #1782