-
Notifications
You must be signed in to change notification settings - Fork 10
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
No support for RV32E #28
Comments
@nwf-msr I am not sure of all the ramifications, or how many spare cycles we have regarding this, but specifically here, the obvious thing to try out to see if it helps would be to use something like |
Oh, indeed, it's possible to hack something like that in, and indeed it does placate the CHERIoT sail model, but more generally, it would be nice to have TestRIG understand the E architectural subset. |
I am not extremely familiar with E beyond it requiring implementations to throw exceptions on forbidden register indices. QCVengine wants to generate indices which would trigger exceptions, as you'd want to test both paths... Were you thinking of other things? |
As I read the spec, RV32E cuts the register file in half (x0 - x15) and promises not to use any of the freed up encodings for official extensions, but designates them as available for vendors. But yes, mostly "don't generate vendor-private opcodes in |
It's also specified in such a way that you are intended to be able to run RVE code on an RVI system (which of course implicitly precludes the existence of custom extensions snatching up that encoding space), as another reason why it's not a requirement that those encodings trap. |
Oh exciting. At some point since filing, the RISC-V spec has changed the
|
There is no mechanism to signal that only half the register file is available. In particular,
QuickCheckVEngine/src/QuickCheckVEngine/Templates/Utils/General.hs
Lines 166 to 169 in 0873b58
hard-codes the availability of a subset of registers that straddle the E/I divide. The ubiquity of this generator (through its aliases as
src
anddest
) probably makes refactoring for principled plumbing of configuration tedious, if not challenging.The text was updated successfully, but these errors were encountered: