Skip to content
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

Load/store as user #54

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open

Load/store as user #54

wants to merge 11 commits into from

Conversation

nwf
Copy link
Member

@nwf nwf commented Oct 27, 2021

Sits on top of the CLG and isentry PRs because orthogonality is hard. The last two commits are the salient ones: some preparatory refactoring and then the actual instruction bodies.

nwf-msr and others added 10 commits October 27, 2021 17:06
The cap-store instructions now look at the data being stored to decide
whether they issue Write(Cap) or Write(Data) requests on "the bus".
This allows the PTW logic (and update_PTE_Bits) in particular to not
fast-cap-dirty a page that's being targeted by the store of an untagged
capability.  This is not, however, viable for AMOCAS and so additional
changes may be required if we are to avoid considering AMOCAS as always
capability-dirtying.

Co-authored-by: Jessica Clarke <jrtc27@jrtc27.com>
Use Either-monadic style

Eliminate ext_ptw_sc / PTW_SC_* as we now simply test the error cases in
priority order, so there's no need to explicitly pass this information forward
in checkPTEPermission.  ext_ptw_lc / PTW_LC_* persist as the extended PTW
information is analysed by instructions.

Co-authored-by: Jessica Clarke <jrtc27@jrtc27.com>
Split uccsr out to its own thing; remove mccsr and have accesses alias sccsr.
Co-authored-by: Jessica Clarke <jrtc27@jrtc27.com>
Common up with handle_loadres_cap_via_cap.
src/cheri_insts.sail Outdated Show resolved Hide resolved
src/cheri_insts.sail Outdated Show resolved Hide resolved
src/cheri_insts.sail Outdated Show resolved Hide resolved
src/cheri_insts.sail Outdated Show resolved Hide resolved
@PeterRugg
Copy link
Contributor

Looks good. It's a bit of a shame that so much documentation needs to be duplicated, and that there isn't encoding space to add an "execute as user" bit to the existing instructions, like the unsigned variants of the instructions.

@nwf
Copy link
Member Author

nwf commented Nov 1, 2021

@PeterRugg Thanks for looking; I've responded in a fixup! commit, for ease of incremental review, that I'll squash before merging to mainline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants