From 064c2b037e9d18573e62bd4bb17634192e83afd1 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 15 Apr 2025 13:57:55 +0200 Subject: [DYNAREC] Fix on strongmem mode were last write on a seq on 1 write could be ignored --- src/dynarec/dynarec_helper.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/dynarec/dynarec_helper.h b/src/dynarec/dynarec_helper.h index af09f196..d8b0eb52 100644 --- a/src/dynarec/dynarec_helper.h +++ b/src/dynarec/dynarec_helper.h @@ -87,7 +87,10 @@ // An opcode writes guest memory, this need to be put after the STORE instruction manually. It will also end the SEQ automaticaly on last_write immediatly #define SMWRITE() \ do { \ - if(dyn->insts[ninst].last_write) {SMEND();} else { \ + if(dyn->insts[ninst].last_write) { \ + dyn->smwrite = 1; \ + SMEND(); \ + } else { \ /* Put a barrier at every third memory write. */ \ if (BOX64DRENV(dynarec_strongmem) >= STRONGMEM_SEQ_WRITE) { \ if (++dyn->smwrite >= 3 /* Every third memory write */) { \ -- cgit 1.4.1