[Qemu-devel] [PATCH 15/22] target/openrisc: Enable trap, csync, msync, psync for user mode

Richard Henderson posted 22 patches 8 years, 12 months ago
[Qemu-devel] [PATCH 15/22] target/openrisc: Enable trap, csync, msync, psync for user mode
Posted by Richard Henderson 8 years, 12 months ago
Not documented as disabled for user mode.

Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 target/openrisc/translate.c | 32 --------------------------------
 1 file changed, 32 deletions(-)

diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c
index f91ab6a..6c8f05c 100644
--- a/target/openrisc/translate.c
+++ b/target/openrisc/translate.c
@@ -1134,52 +1134,20 @@ static void dec_sys(DisasContext *dc, uint32_t insn)
 
     case 0x100:    /* l.trap */
         LOG_DIS("l.trap %d\n", K16);
-#if defined(CONFIG_USER_ONLY)
-        return;
-#else
-        if (dc->mem_idx == MMU_USER_IDX) {
-            gen_illegal_exception(dc);
-            return;
-        }
         tcg_gen_movi_tl(cpu_pc, dc->pc);
         gen_exception(dc, EXCP_TRAP);
-#endif
         break;
 
     case 0x300:    /* l.csync */
         LOG_DIS("l.csync\n");
-#if defined(CONFIG_USER_ONLY)
-        return;
-#else
-        if (dc->mem_idx == MMU_USER_IDX) {
-            gen_illegal_exception(dc);
-            return;
-        }
-#endif
         break;
 
     case 0x200:    /* l.msync */
         LOG_DIS("l.msync\n");
-#if defined(CONFIG_USER_ONLY)
-        return;
-#else
-        if (dc->mem_idx == MMU_USER_IDX) {
-            gen_illegal_exception(dc);
-            return;
-        }
-#endif
         break;
 
     case 0x270:    /* l.psync */
         LOG_DIS("l.psync\n");
-#if defined(CONFIG_USER_ONLY)
-        return;
-#else
-        if (dc->mem_idx == MMU_USER_IDX) {
-            gen_illegal_exception(dc);
-            return;
-        }
-#endif
         break;
 
     default:
-- 
2.9.3


Re: [Qemu-devel] [PATCH 15/22] target/openrisc: Enable trap, csync, msync, psync for user mode
Posted by Philippe Mathieu-Daudé 8 years, 12 months ago
On 02/09/2017 01:51 AM, Richard Henderson wrote:
> Not documented as disabled for user mode.
>
> Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> Signed-off-by: Richard Henderson <rth@twiddle.net>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  target/openrisc/translate.c | 32 --------------------------------
>  1 file changed, 32 deletions(-)
>
> diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c
> index f91ab6a..6c8f05c 100644
> --- a/target/openrisc/translate.c
> +++ b/target/openrisc/translate.c
> @@ -1134,52 +1134,20 @@ static void dec_sys(DisasContext *dc, uint32_t insn)
>
>      case 0x100:    /* l.trap */
>          LOG_DIS("l.trap %d\n", K16);
> -#if defined(CONFIG_USER_ONLY)
> -        return;
> -#else
> -        if (dc->mem_idx == MMU_USER_IDX) {
> -            gen_illegal_exception(dc);
> -            return;
> -        }
>          tcg_gen_movi_tl(cpu_pc, dc->pc);
>          gen_exception(dc, EXCP_TRAP);
> -#endif
>          break;
>
>      case 0x300:    /* l.csync */
>          LOG_DIS("l.csync\n");
> -#if defined(CONFIG_USER_ONLY)
> -        return;
> -#else
> -        if (dc->mem_idx == MMU_USER_IDX) {
> -            gen_illegal_exception(dc);
> -            return;
> -        }
> -#endif
>          break;
>
>      case 0x200:    /* l.msync */
>          LOG_DIS("l.msync\n");
> -#if defined(CONFIG_USER_ONLY)
> -        return;
> -#else
> -        if (dc->mem_idx == MMU_USER_IDX) {
> -            gen_illegal_exception(dc);
> -            return;
> -        }
> -#endif
>          break;
>
>      case 0x270:    /* l.psync */
>          LOG_DIS("l.psync\n");
> -#if defined(CONFIG_USER_ONLY)
> -        return;
> -#else
> -        if (dc->mem_idx == MMU_USER_IDX) {
> -            gen_illegal_exception(dc);
> -            return;
> -        }
> -#endif
>          break;
>
>      default:
>