about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-12-01 10:03:18 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-12-01 10:03:25 +0100
commit93b371eb8cd2797a021103a4aad41ba7672cd32e (patch)
treefcaf48392b41e5c622b454e99ee626f0408edaa9 /src
parentb7007a1bdd56d5d6ce3460f7dc1d3a7d720fa858 (diff)
downloadbox64-93b371eb8cd2797a021103a4aad41ba7672cd32e.tar.gz
box64-93b371eb8cd2797a021103a4aad41ba7672cd32e.zip
*[ARM64_DYNAREC] Fixed some cases of memory access on BTR/BTS opcodes (for #2093)
Diffstat (limited to '')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c4
-rw-r--r--src/dynarec/arm64/dynarec_arm64_660f.c4
2 files changed, 4 insertions, 4 deletions
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;