From 93b371eb8cd2797a021103a4aad41ba7672cd32e Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 1 Dec 2024 10:03:18 +0100 Subject: *[ARM64_DYNAREC] Fixed some cases of memory access on BTR/BTS opcodes (for #2093) --- src/dynarec/arm64/dynarec_arm64_0f.c | 4 ++-- src/dynarec/arm64/dynarec_arm64_660f.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/dynarec/arm64') diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index e7a445c9..beb6a34b 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -1744,7 +1744,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin LSLxw_REG(x4, x4, x2); ORRxw_REG(ed, ed, x4); if(wback) { - STRxw_U12(ed, wback, fixedaddress); + STxw(ed, wback, fixedaddress); SMWRITE(); } break; @@ -1984,7 +1984,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin LSLxw_REG(x4, x4, x2); BICxw_REG(ed, ed, x4); if(wback) { - STRxw_U12(ed, wback, fixedaddress); + STxw(ed, wback, fixedaddress); SMWRITE(); } break; diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 51426742..34bd16cc 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -2393,7 +2393,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n LSLw_REG(x1, x1, x2); ORRx_REG(ed, ed, x1); if(wback) { - STRH_U12(ed, wback, fixedaddress); + STH(ed, wback, fixedaddress); } break; case 0xAC: @@ -2593,7 +2593,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n LSLxw_REG(x1, x1, x2); EORx_REG(ed, ed, x1); if(wback) { - STRH_U12(ed, wback, fixedaddress); + STH(ed, wback, fixedaddress); SMWRITE(); } break; -- cgit 1.4.1