-
Notifications
You must be signed in to change notification settings - Fork 167
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
Add Zicfilp extension #361
base: master
Are you sure you want to change the base?
Conversation
It should not take 15 commits like that to add this extension. Please condense into a sensible history. |
The part that Jessica didn't make explicit is: we use a "rebase and merge" strategy and don't squash your history when merging, so your history should be considered part of the submission. |
fbb882c
to
908f10e
Compare
Sorry, that the commit history was nonsense. I have squashed some of the commits. Let me know if it makes sense now. |
908f10e
to
37fa643
Compare
4a17a29
to
501ce85
Compare
427202c
to
95c0489
Compare
- Add machine security configuration register - mseccfg - Legalize menvcfg and senvcfg separately. Some fields of senvcfg are modulated by menvcfg. - Make mstatush writeable and add a legalizer function for it.
- mstatus : MPELP, SPELP - menvcfg : LPE - senvcfg : LPE
- JALR updates ELP to LP expected on indirect call/jump - Traps preserve ELP state in mstatus.xPELP on trap delivery priv x - xRET restores ELP from mstatus.xPELP - If instruction fetched not LPAD when ELP is LP_EXPECTED cause SW check fault
- Add elp state register and its initialization - xLPE to track if landing pads enabled at priv x - Functions that implement ELP state management - LPAD instruction
Specification: https://github.com/riscv/riscv-cfi/blob/main/cfi_forward.adoc
Tests: riscv-non-isa/riscv-arch-test#413