On 12/10/25 07:16, Paolo Bonzini wrote:
PUSHF needs to compute the full eflags, set the cc_op to
CC_OP_EFLAGS.

Signed-off-by: Paolo Bonzini <[email protected]>
---
  target/i386/tcg/emit.c.inc | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/target/i386/tcg/emit.c.inc b/target/i386/tcg/emit.c.inc
index 1a7fab9333a..22e53f5b000 100644
--- a/target/i386/tcg/emit.c.inc
+++ b/target/i386/tcg/emit.c.inc
@@ -3250,6 +3250,8 @@ static void gen_PUSHF(DisasContext *s, X86DecodedInsn 
*decode)
      gen_update_cc_op(s);
      gen_helper_read_eflags(s->T0, tcg_env);
      gen_push_v(s, s->T0);
+    decode->cc_src = s->T0;
+    decode->cc_op = CC_OP_EFLAGS;
  }
static MemOp gen_shift_count(DisasContext *s, X86DecodedInsn *decode,

Ah, as an optimization to not duplicate computation of these flags, not a bug fix. You might expand the commit message by a few words there. Anyway,

Reviewed-by: Richard Henderson <[email protected]>

r~

Reply via email to