On 11/9/22 02:41, Taylor Simpson wrote:


-----Original Message-----
From: Richard Henderson <richard.hender...@linaro.org>
Sent: Tuesday, November 8, 2022 1:24 AM
To: Taylor Simpson <tsimp...@quicinc.com>; qemu-devel@nongnu.org
Cc: phi...@linaro.org; a...@rev.ng; a...@rev.ng; Brian Cain
<bc...@quicinc.com>; Matheus Bernardino (QUIC)
<quic_mathb...@quicinc.com>
Subject: Re: [PATCH v4 10/11] Hexagon (target/hexagon) Use direct block
chaining for direct jump/branch

On 11/8/22 15:05, Taylor Simpson wrote:
   static void hexagon_tr_tb_start(DisasContextBase *db, CPUState *cpu)
   {
+    DisasContext *ctx = container_of(db, DisasContext, base);
+    ctx->branch_cond = TCG_COND_NEVER;
   }

Typically this would go in hexagon_tr_init_disas_context as well, but I don't
suppose it really matters.

AFAICT, these are always called back to back.  So, it's not clear to me what 
the distinction should be.

ops->tb_start is called after gen_tb_start, so you can emit code that comes after the interrupt/icount check, but before the first guest instruction. Rarely needed, should probably be allowed to be NULL.


r~

Reply via email to