Repository navigation
feat(loads): support PMA-gated misaligned integer loads - #14
Merged
RossComputerGuy merged 2 commits intoOct 9, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Misaligned integer loads currently trap even when their bytes are in ordinary RAM. Add an opt-in hardware path that reads one aligned beat, or two beats when necessary, instead of requiring software emulation.
Both in-order executors use the same sequencer. Each beat is translated independently, and the MMU permits the widened read only when the complete physical beat belongs to an explicitly described, readable, idempotent RAM PMA supporting that access width and misaligned accesses. Partial data stays private until success; failures preserve the destination and report the faulting portion's virtual address.
The path supports uncached, non-H in-order RV32/RV64 Bare and RV64 Sv39 configurations, without configured PMP or PBMT. Aligned transactions stay unchanged, unsupported configurations retain their alignment traps, and stores, atomics and FP loads are not expanded. Split loads do not gain an atomicity guarantee.
Validation:
x0, MMIO rejection, PMA boundaries, noncontiguous Sv39 pages, first/second faults and recovery.