On Thu, 3 Mar 2022 at 15:39, Amir Gonnen <amir.gonnen@neuroblade.ai> wrote:
>
> eret instruction is only allowed in supervisor mode.
>
> Signed-off-by: Amir Gonnen <amir.gonnen@neuroblade.ai>
> ---
> target/nios2/translate.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/target/nios2/translate.c b/target/nios2/translate.c
> index ce3aacf59d..007c17e6e9 100644
> --- a/target/nios2/translate.c
> +++ b/target/nios2/translate.c
> @@ -384,6 +384,8 @@ static const Nios2Instruction i_type_instructions[] = {
> */
> static void eret(DisasContext *dc, uint32_t code, uint32_t flags)
> {
> + gen_check_supervisor(dc);
> +
> tcg_gen_mov_tl(cpu_R[CR_STATUS], cpu_R[CR_ESTATUS]);
> tcg_gen_mov_tl(cpu_R[R_PC], cpu_R[R_EA]);
>
> --
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM