@@ -62,6 +62,9 @@ acts as an illegal instruction, all such instructions must act as
6262illegal instructions.
6363. Instructions that depend on the value of the PC (e.g. `auipc`) may act
6464as illegal instructions.
65+ . When the Zicfilp extension is implemented, the `ELP` state is
66+ `NO_LP_EXPECTED` and is not updated by any instructions. LPAD instruction
67+ executes as a no-op.
6568. Effective XLEN is DXLEN.
6669. Forward progress is guaranteed.
6770
@@ -176,6 +179,8 @@ When a hart halts:
176179
177180. {dcsr-cause} is updated.
178181. {dcsr-prv} and {dcsr-v} are set to reflect current privilege mode and virtualization mode.
182+ . If the Zicfilp extension is implemented, {dcsr-pelp} is set to the current
183+ `ELP` state and `ELP` is set to `NO_LP_EXPECTED`
179184. {csr-dpc} is set to the next instruction that should be executed.
180185. If the current instruction can be partially executed and should be
181186restarted to complete, then the relevant state for that is updated. E.g.
@@ -191,6 +196,9 @@ When a hart resumes:
191196. `pc` changes to the value stored in {csr-dpc}.
192197. The current privilege mode and virtualization mode are changed to that
193198specified by {dcsr-prv} and {dcsr-v}.
199+ . If the Zicfilp extension is enabled at the new privilege mode, the current
200+ `ELP` state is changed to that specified by {dcsr-pelp} else it is set to
201+ `NO_LP_EXPECTED`. {dcsr-pelp} is set to `NO_LP_EXPECTED`.
194202. If the new privilege mode is less privileged than M-mode, `MPRV` in `mstatus` is cleared.
195203. If the Smdbltrp extension is implemented and the new privilege mode is not M,
196204 then the `MDT` bit is set to 0.
0 commit comments