Message ID | 20240204055228.900-1-zhiwei_liu@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: Enable xtheadsync under user mode | expand |
On Sun, Feb 4, 2024 at 3:53 PM LIU Zhiwei <zhiwei_liu@linux.alibaba.com> wrote: > > According to xtheadsync[1][2] documentation, it can be used in user mode and > the behavior is same with other priviledges. > > [1]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync.adoc > [2]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync_i.adoc > > Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/insn_trans/trans_xthead.c.inc | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/target/riscv/insn_trans/trans_xthead.c.inc b/target/riscv/insn_trans/trans_xthead.c.inc > index dbb6411239..22488412d4 100644 > --- a/target/riscv/insn_trans/trans_xthead.c.inc > +++ b/target/riscv/insn_trans/trans_xthead.c.inc > @@ -992,7 +992,6 @@ static bool trans_th_sfence_vmas(DisasContext *ctx, arg_th_sfence_vmas *a) > #endif > } > > -#ifndef CONFIG_USER_ONLY > static void gen_th_sync_local(DisasContext *ctx) > { > /* > @@ -1003,14 +1002,12 @@ static void gen_th_sync_local(DisasContext *ctx) > tcg_gen_exit_tb(NULL, 0); > ctx->base.is_jmp = DISAS_NORETURN; > } > -#endif > > static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) > { > (void) a; > REQUIRE_XTHEADSYNC(ctx); > > -#ifndef CONFIG_USER_ONLY > REQUIRE_PRIV_MSU(ctx); > > /* > @@ -1019,9 +1016,6 @@ static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) > gen_th_sync_local(ctx); > > return true; > -#else > - return false; > -#endif > } > > static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > @@ -1029,7 +1023,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > (void) a; > REQUIRE_XTHEADSYNC(ctx); > > -#ifndef CONFIG_USER_ONLY > REQUIRE_PRIV_MSU(ctx); > > /* > @@ -1038,9 +1031,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > gen_th_sync_local(ctx); > > return true; > -#else > - return false; > -#endif > } > > static bool trans_th_sync_is(DisasContext *ctx, arg_th_sync_is *a) > -- > 2.25.1 > >
On Sun, Feb 4, 2024 at 3:53 PM LIU Zhiwei <zhiwei_liu@linux.alibaba.com> wrote: > > According to xtheadsync[1][2] documentation, it can be used in user mode and > the behavior is same with other priviledges. > > [1]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync.adoc > [2]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync_i.adoc > > Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> Thanks! Applied to riscv-to-apply.next Alistair > --- > target/riscv/insn_trans/trans_xthead.c.inc | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/target/riscv/insn_trans/trans_xthead.c.inc b/target/riscv/insn_trans/trans_xthead.c.inc > index dbb6411239..22488412d4 100644 > --- a/target/riscv/insn_trans/trans_xthead.c.inc > +++ b/target/riscv/insn_trans/trans_xthead.c.inc > @@ -992,7 +992,6 @@ static bool trans_th_sfence_vmas(DisasContext *ctx, arg_th_sfence_vmas *a) > #endif > } > > -#ifndef CONFIG_USER_ONLY > static void gen_th_sync_local(DisasContext *ctx) > { > /* > @@ -1003,14 +1002,12 @@ static void gen_th_sync_local(DisasContext *ctx) > tcg_gen_exit_tb(NULL, 0); > ctx->base.is_jmp = DISAS_NORETURN; > } > -#endif > > static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) > { > (void) a; > REQUIRE_XTHEADSYNC(ctx); > > -#ifndef CONFIG_USER_ONLY > REQUIRE_PRIV_MSU(ctx); > > /* > @@ -1019,9 +1016,6 @@ static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) > gen_th_sync_local(ctx); > > return true; > -#else > - return false; > -#endif > } > > static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > @@ -1029,7 +1023,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > (void) a; > REQUIRE_XTHEADSYNC(ctx); > > -#ifndef CONFIG_USER_ONLY > REQUIRE_PRIV_MSU(ctx); > > /* > @@ -1038,9 +1031,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) > gen_th_sync_local(ctx); > > return true; > -#else > - return false; > -#endif > } > > static bool trans_th_sync_is(DisasContext *ctx, arg_th_sync_is *a) > -- > 2.25.1 > >
diff --git a/target/riscv/insn_trans/trans_xthead.c.inc b/target/riscv/insn_trans/trans_xthead.c.inc index dbb6411239..22488412d4 100644 --- a/target/riscv/insn_trans/trans_xthead.c.inc +++ b/target/riscv/insn_trans/trans_xthead.c.inc @@ -992,7 +992,6 @@ static bool trans_th_sfence_vmas(DisasContext *ctx, arg_th_sfence_vmas *a) #endif } -#ifndef CONFIG_USER_ONLY static void gen_th_sync_local(DisasContext *ctx) { /* @@ -1003,14 +1002,12 @@ static void gen_th_sync_local(DisasContext *ctx) tcg_gen_exit_tb(NULL, 0); ctx->base.is_jmp = DISAS_NORETURN; } -#endif static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) { (void) a; REQUIRE_XTHEADSYNC(ctx); -#ifndef CONFIG_USER_ONLY REQUIRE_PRIV_MSU(ctx); /* @@ -1019,9 +1016,6 @@ static bool trans_th_sync(DisasContext *ctx, arg_th_sync *a) gen_th_sync_local(ctx); return true; -#else - return false; -#endif } static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) @@ -1029,7 +1023,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) (void) a; REQUIRE_XTHEADSYNC(ctx); -#ifndef CONFIG_USER_ONLY REQUIRE_PRIV_MSU(ctx); /* @@ -1038,9 +1031,6 @@ static bool trans_th_sync_i(DisasContext *ctx, arg_th_sync_i *a) gen_th_sync_local(ctx); return true; -#else - return false; -#endif } static bool trans_th_sync_is(DisasContext *ctx, arg_th_sync_is *a)
According to xtheadsync[1][2] documentation, it can be used in user mode and the behavior is same with other priviledges. [1]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync.adoc [2]:https://github.com/T-head-Semi/thead-extension-spec/blob/master/xtheadsync/sync_i.adoc Signed-off-by: LIU Zhiwei <zhiwei_liu@linux.alibaba.com> --- target/riscv/insn_trans/trans_xthead.c.inc | 10 ---------- 1 file changed, 10 deletions(-)