-
Notifications
You must be signed in to change notification settings - Fork 40
fix(inst): make fence.tso a separate inst, fix fence bug #460
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
Conversation
This likely could be merged as is without any problems, right? |
Fixes #360 |
Yes, it just needs to go in after cpp_hart |
Signed-off-by: Derek Hower <[email protected]>
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
is this something that was forgotten? |
Signed-off-by: Derek Hower <[email protected]>
Signed-off-by: Derek Hower <[email protected]>
Even though non-zero encodings of fm/xs1/xd are "reserved for future use", the spec says they shall be executed as though they were zero Signed-off-by: Derek Hower <[email protected]>
Yes, it was forgotten. I have it ready again, but it's failing because of a mismatch with riscv-opcodes. |
It's a mismatch with LLVM. This is supposed to happen, since our view of the information is on the ISA side, which allows several arguments (in hardware) for a fence, while the pragmatic implementation of fence in a compiler is a full constant expression, since it is the only one that the ISA clearly defines. I will make a patch so the test skips fence. This also brings me to the question that in the future, "variable" could have a separation between "hardware-only" and "assembly". Since they not always match. This is a great effort and I think should not a be a priority for now. |
I'm not following completely. Is this an artifact of having "variables" (
Given "shall", shall we also restrict the valid values here to only zero?
Shall we open an issue? |
The "shall" is that the fields should be ignored, not that they are illegal. If we use |
My view on it is that the spec leaves open to later implementations to move fence around and switch any of those values. However, from the compiler view what I suppose happened is that "shall" is enough for them to assume that every bit is 0, and if someone does a different implementation, then whoever implements that is responsible for updating the compiler |
Sure, I will. |
Smoke test fixed in #687 |
since compiler and ISA view of the instruction differ Fixes #460 Signed-off-by: Afonso Oliveira <[email protected]>
Pull request was closed
fixes #428