@@ -32,11 +32,11 @@ static bool gen_hlv(DisasContext *ctx, int rs1, int rd, MemOp memop)
{
REQUIRE_EXT(ctx, RVH);
#ifndef CONFIG_USER_ONLY
+ check_access(ctx);
+
TCGv t0 = tcg_temp_new();
TCGv t1 = tcg_temp_new();
- check_access(ctx);
-
gen_get_gpr(t0, rs1);
tcg_gen_qemu_ld_tl(t1, t0, ctx->mem_idx | TB_FLAGS_PRIV_HYP_ACCESS_MASK, memop);
@@ -55,11 +55,11 @@ static bool gen_hsv(DisasContext *ctx, int rs1, int rs2, MemOp memop)
{
REQUIRE_EXT(ctx, RVH);
#ifndef CONFIG_USER_ONLY
+ check_access(ctx);
+
TCGv t0 = tcg_temp_new();
TCGv dat = tcg_temp_new();
- check_access(ctx);
-
gen_get_gpr(t0, rs1);
gen_get_gpr(dat, rs2);
@@ -134,11 +134,11 @@ static bool trans_hlvx_hu(DisasContext *ctx, arg_hlvx_hu *a)
{
REQUIRE_EXT(ctx, RVH);
#ifndef CONFIG_USER_ONLY
+ check_access(ctx);
+
TCGv t0 = tcg_temp_new();
TCGv t1 = tcg_temp_new();
- check_access(ctx);
-
gen_get_gpr(t0, a->rs1);
gen_helper_hyp_hlvx_hu(t1, cpu_env, t0);
@@ -156,11 +156,11 @@ static bool trans_hlvx_wu(DisasContext *ctx, arg_hlvx_wu *a)
{
REQUIRE_EXT(ctx, RVH);
#ifndef CONFIG_USER_ONLY
+ check_access(ctx);
+
TCGv t0 = tcg_temp_new();
TCGv t1 = tcg_temp_new();
- check_access(ctx);
-
gen_get_gpr(t0, a->rs1);
gen_helper_hyp_hlvx_wu(t1, cpu_env, t0);