qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 4/7] target/hppa: exit tb on flush cache instructions


From: Helge Deller
Subject: Re: [PATCH 4/7] target/hppa: exit tb on flush cache instructions
Date: Mon, 18 Mar 2024 21:42:37 +0100
User-agent: Mozilla Thunderbird

On 3/17/24 23:14, Sven Schnelle wrote:
When the guest modifies the tb it is currently executing from,
it executes a fic instruction. Exit the tb on such instruction,
otherwise we might execute stale code.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
---
  target/hppa/translate.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 8ba31567e8..58d7ec1ade 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1940,6 +1940,7 @@ static void do_page_zero(DisasContext *ctx)
  static bool trans_nop(DisasContext *ctx, arg_nop *a)
  {
      cond_free(&ctx->null_cond);
+    ctx->base.is_jmp = DISAS_IAQ_N_STALE;
      return true;
  }

@@ -2290,6 +2291,7 @@ static bool trans_nop_addrx(DisasContext *ctx, arg_ldst 
*a)
          save_gpr(ctx, a->b, dest);
      }
      cond_free(&ctx->null_cond);
+    ctx->base.is_jmp = DISAS_IAQ_N_STALE;

I wonder if it makes sense to rename trans_nop() and trans_nop_addrx()
to something like trans_cache_flush() and trans_cache_flush_addrx() ?

Other than that:
Reviewed-by: Helge Deller <deller@gmx.de>

Helge



reply via email to

[Prev in Thread] Current Thread [Next in Thread]