limit the number of VM regs to 16 (RV32e) #304
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of #18.
Removed registers X16+ from the VM and changed how they are represented in the VM from memory-mapped at "addresses" 0-15 to a separate structure that is also responsible for keeping invariants like the X0 always zero.
Note that, in many places in the VM, a raw
u32
taken fromInstruction
is converted to aRegister
, which may panic if the value is > 15. In the following PR, I will change disassembling logic to convert raw integers toRegister
enum variants at disassembly time to prevent panics at the guest program execution time.