diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-03-22 22:25:56 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-03-22 22:25:56 +0100 |
| commit | 98162e395f76bf998313634df5127f83ae7c9fd0 (patch) | |
| tree | eaf6df8c885e84a560dd9f93dd169378b27de15c /src/dynarec | |
| parent | 9511d83955b6424c8539092446e71dfcb3d47ddc (diff) | |
| download | box64-98162e395f76bf998313634df5127f83ae7c9fd0.tar.gz box64-98162e395f76bf998313634df5127f83ae7c9fd0.zip | |
[ARM64_DYNAREC] Fixed potential issue on unligned path being marked while dynablock is building
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_helper.h | 4 | ||||
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_pass0.h | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.h b/src/dynarec/arm64/dynarec_arm64_helper.h index 01005fc7..771e80f5 100644 --- a/src/dynarec/arm64/dynarec_arm64_helper.h +++ b/src/dynarec/arm64/dynarec_arm64_helper.h @@ -981,11 +981,11 @@ SET_DFNONE(); \ #ifndef IF_UNALIGNED -#define IF_UNALIGNED(A) if(is_addr_unaligned(A)) +#define IF_UNALIGNED(A) if(dyn->insts[ninst].unaligned) #endif #ifndef IF_ALIGNED -#define IF_ALIGNED(A) if (!is_addr_unaligned(A)) +#define IF_ALIGNED(A) if (!dyn->insts[ninst].unaligned) #endif #define STORE_REG(A) STRx_U12(x##A, xEmu, offsetof(x64emu_t, regs[_##A])) diff --git a/src/dynarec/arm64/dynarec_arm64_pass0.h b/src/dynarec/arm64/dynarec_arm64_pass0.h index 2f4b716e..64dfd500 100644 --- a/src/dynarec/arm64/dynarec_arm64_pass0.h +++ b/src/dynarec/arm64/dynarec_arm64_pass0.h @@ -70,5 +70,5 @@ #define INVERT_CARRY(A) dyn->insts[ninst].invert_carry = 1 #define INVERT_CARRY_BEFORE(A) dyn->insts[ninst].invert_carry_before = 1 // mark opcode as "unaligned" possible only if the current address is not marked as already unaligned -#define IF_UNALIGNED(A) if((dyn->insts[ninst].unaligned=(is_addr_unaligned(A)?0:1))) -#define IF_ALIGNED(A) if((dyn->insts[ninst].unaligned=(is_addr_unaligned(A)?1:0))) +#define IF_UNALIGNED(A) if((dyn->insts[ninst].unaligned=is_addr_unaligned(A))) +#define IF_ALIGNED(A) if(!(dyn->insts[ninst].unaligned=is_addr_unaligned(A))) |