@@ -62,6 +62,9 @@ acts as an illegal instruction, all such instructions must act as
62
62
illegal instructions.
63
63
. Instructions that depend on the value of the PC (e.g. `auipc`) may act
64
64
as 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.
65
68
. Effective XLEN is DXLEN.
66
69
. Forward progress is guaranteed.
67
70
@@ -176,6 +179,8 @@ When a hart halts:
176
179
177
180
. {dcsr-cause} is updated.
178
181
. {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`
179
184
. {csr-dpc} is set to the next instruction that should be executed.
180
185
. If the current instruction can be partially executed and should be
181
186
restarted to complete, then the relevant state for that is updated. E.g.
@@ -191,6 +196,9 @@ When a hart resumes:
191
196
. `pc` changes to the value stored in {csr-dpc}.
192
197
. The current privilege mode and virtualization mode are changed to that
193
198
specified 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`.
194
202
. If the new privilege mode is less privileged than M-mode, `MPRV` in `mstatus` is cleared.
195
203
. If the Smdbltrp extension is implemented and the new privilege mode is not M,
196
204
then the `MDT` bit is set to 0.
0 commit comments