about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-07-07 11:28:54 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-07-07 11:28:54 +0200
commitd7e8da632183e6ceece1230710f6dda722d2f8ae (patch)
treea569ec0648d6b7f895dec31c59ac38f8ae0e4a7f /src
parentaec3fd524a028d3375d3688c463546d1f8e60c65 (diff)
downloadbox64-d7e8da632183e6ceece1230710f6dda722d2f8ae.tar.gz
box64-d7e8da632183e6ceece1230710f6dda722d2f8ae.zip
[ARM64_DYNAREC] Fixed reflect cache for ymm0
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_helper.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_helper.c b/src/dynarec/arm64/dynarec_arm64_helper.c
index 04fa97f6..86b09cc6 100644
--- a/src/dynarec/arm64/dynarec_arm64_helper.c
+++ b/src/dynarec/arm64/dynarec_arm64_helper.c
@@ -2371,7 +2371,8 @@ void fpu_reflectcache(dynarec_arm_t* dyn, int ninst, int s1, int s2, int s3)
     if(dyn->ymm_zero) {
         ADDx_U12(s1, xEmu, offsetof(x64emu_t, ymm[0]));
         for(int i=0; i<16; ++i)
-            STPx_S7_offset(xZR, xZR, s1, 16*i);
+            if(dyn->ymm_zero&(1<<i))
+                STPx_S7_offset(xZR, xZR, s1, 16*i);
     }
 }