-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
The handling of the Embedded Extension (Register file size (RFS) = 16) is suboptimal for several reasons:
- Realibility is degraded. Consider the
ADDinstruction as an example:
behavior: if(rd >=RFS || rs1 >= RFS || rs2 >= RFS) raise(0, 2); else if (rd != 0) X[rd] = X[rs1] + X[rs2];
# vs.
behavior: if (rd != 0) X[rd] = X[rs1] + X[rs2];
- Checking constraints and calling
raise(...)inside of behavior makes analysing the behavior more difficult. - Illegal Instructions (due to register file limitations) which can be solely determined based on the encoding and static architectureal state should not be raised during decoding instead.
- This adds a lot of redundant code, because we basically have roughly the same checks for almost every (standard) instruction. Declaring it only once for
RV32Ewould be way cleaner
Let's discuss how to handle the embedded extension in a more sophisticated way.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request