diff options
| author | Yang Liu <numbksco@gmail.com> | 2024-06-01 13:52:03 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-01 07:52:03 +0200 |
| commit | c65f8da90f1a3cb0177e7a4aeae834d447602080 (patch) | |
| tree | 529772dad447b34bc81ce1a61c15fe7dbda8069d /src | |
| parent | 2970ed5bfd1d418573613077880af1bd379d3d61 (diff) | |
| download | box64-c65f8da90f1a3cb0177e7a4aeae834d447602080.tar.gz box64-c65f8da90f1a3cb0177e7a4aeae834d447602080.zip | |
[RV64_DYNAREC] Fixed LOCK CMPXCHG unaligned version (#1544)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_f0.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_f0.c b/src/dynarec/rv64/dynarec_rv64_f0.c index 0f9c97ea..7b0cb6d2 100644 --- a/src/dynarec/rv64/dynarec_rv64_f0.c +++ b/src/dynarec/rv64/dynarec_rv64_f0.c @@ -230,12 +230,12 @@ uintptr_t dynarec64_F0(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni // Unaligned ANDI(x5, wback, -(1 << (rex.w + 2))); MARK2; // Use MARK2 as a "MARKLOCK" since we're running out of marks. - LDxw(x6, wback, 0); - LRxw(x1, x5, 1, 1); - SUBxw(x3, x6, xRAX); + LDxw(x1, wback, 0); + LRxw(x6, x5, 1, 1); + SUBxw(x3, x1, xRAX); BNEZ_MARK(x3); // EAX == Ed - SCxw(x4, x1, x5, 1, 1); + SCxw(x4, x6, x5, 1, 1); BNEZ_MARK2(x4); SDxw(gd, wback, 0); MARK; |