[PATCH v3 1/5] target/nios2: Check supervisor on eret

Amir Gonnen posted 5 patches 3 years, 11 months ago
Maintainers: Chris Wulff <crwulff@gmail.com>, Marek Vasut <marex@denx.de>
There is a newer version of this series
[PATCH v3 1/5] target/nios2: Check supervisor on eret
Posted by Amir Gonnen 3 years, 11 months ago
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]);
 
-- 
2.25.1
Re: [PATCH v3 1/5] target/nios2: Check supervisor on eret
Posted by Peter Maydell 3 years, 11 months ago
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
Re: [PATCH v3 1/5] target/nios2: Check supervisor on eret
Posted by Richard Henderson 3 years, 11 months ago
On 3/3/22 05:39, Amir Gonnen 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(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~