about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-04 11:36:03 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-04 12:30:28 +0100
commit7fb1a349475b2c4a25a99391e92fb18c93ef3a65 (patch)
treeb0f6aa0af59a4df4054f70b4e771e4939d78f83d /src
parentd0870201399ea7d694a1610f122e148404139491 (diff)
downloadbox64-7fb1a349475b2c4a25a99391e92fb18c93ef3a65.tar.gz
box64-7fb1a349475b2c4a25a99391e92fb18c93ef3a65.zip
[ARM64_DYNAREC] Don't simplify flags for add rsp, const when safeflags=2 is used
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_emit_math.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_emit_math.c b/src/dynarec/arm64/dynarec_arm64_emit_math.c
index 531964fb..d7ac7da5 100644
--- a/src/dynarec/arm64/dynarec_arm64_emit_math.c
+++ b/src/dynarec/arm64/dynarec_arm64_emit_math.c
@@ -83,7 +83,7 @@ void emit_add32(dynarec_arm_t* dyn, int ninst, rex_t rex, int s1, int s2, int s3
 void emit_add32c(dynarec_arm_t* dyn, int ninst, rex_t rex, int s1, int64_t c, int s3, int s4, int s5)
 {
     MAYUSE(s5);
-    if(s1==xRSP && (!dyn->insts || dyn->insts[ninst].x64.gen_flags==X_PEND))
+    if((s1==xRSP) && (box64_dynarec_safeflags<2) && (!dyn->insts || (dyn->insts[ninst].x64.gen_flags==X_PEND) || (!box64_dynarec_df && (dyn->insts[ninst].x64.gen_flags==X_ALL))))
     {
         // special case when doing math on ESP and only PEND is needed: ignoring it!
         if(c>=0 && c<0x1000) {