diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-03-17 16:08:07 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-03-17 16:08:07 +0100 |
| commit | 6ce22546fe30eac6d8bbf40aef72f378e1654d50 (patch) | |
| tree | 08458f67b64c56dc98fb1e4ee936efe161721687 /src | |
| parent | 2da064d04d9acebed2d788d022f8f6c999329563 (diff) | |
| download | box64-6ce22546fe30eac6d8bbf40aef72f378e1654d50.tar.gz box64-6ce22546fe30eac6d8bbf40aef72f378e1654d50.zip | |
[DYNAREC] Small change in strongmem to end a SEQ with a Brrier at last_write directly
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/dynarec_helper.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dynarec/dynarec_helper.h b/src/dynarec/dynarec_helper.h index 5ce38708..af09f196 100644 --- a/src/dynarec/dynarec_helper.h +++ b/src/dynarec/dynarec_helper.h @@ -84,9 +84,10 @@ #else -// An opcode writes guest memory, this need to be put after the STORE instruction manually. +// 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 { \ /* Put a barrier at every third memory write. */ \ if (BOX64DRENV(dynarec_strongmem) >= STRONGMEM_SEQ_WRITE) { \ if (++dyn->smwrite >= 3 /* Every third memory write */) { \ @@ -96,7 +97,7 @@ } else { \ /* Mark that current sequence writes to guest memory. */ \ dyn->smwrite = 1; \ - } \ + } } \ } while (0) // Similar to SMWRITE, but checks lock. |