about summary refs log tree commit diff stats
path: root/src/dynarec/dynarec_native.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-05 14:59:59 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-05 14:59:59 +0100
commitb79ba11d95bdfdbcaa3edd636aec86a49c2113fc (patch)
treebcb0a5ec134107e5236a633db3ecdabb70541d68 /src/dynarec/dynarec_native.c
parent5a35184ba7d01636323eee763717db9f2781ff5a (diff)
downloadbox64-b79ba11d95bdfdbcaa3edd636aec86a49c2113fc.tar.gz
box64-b79ba11d95bdfdbcaa3edd636aec86a49c2113fc.zip
[DYNAREC] Imroved log on signal and flags/sse info gathering. [ARM64_DYNAREC] Fixed some case of nat flags being incorectly used
Diffstat (limited to 'src/dynarec/dynarec_native.c')
-rw-r--r--src/dynarec/dynarec_native.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native.c b/src/dynarec/dynarec_native.c
index 4ffd1048..36670bf0 100644
--- a/src/dynarec/dynarec_native.c
+++ b/src/dynarec/dynarec_native.c
@@ -379,9 +379,10 @@ static int updateNeed(dynarec_native_t* dyn, int ninst, uint8_t need) {
     while (ninst>=0) {
         // need pending but instruction is only a subset: remove pend and use an X_ALL instead
         need |= dyn->insts[ninst].x64.need_after;
-        if((need&X_PEND) && (dyn->insts[ninst].x64.state_flags==SF_SUBSET || dyn->insts[ninst].x64.state_flags==SF_SET || dyn->insts[ninst].x64.state_flags==SF_SET_NODF)) {
+        if((need&X_PEND) && ((dyn->insts[ninst].x64.state_flags==SF_SUBSET) || (dyn->insts[ninst].x64.state_flags==SF_SET) || (dyn->insts[ninst].x64.state_flags==SF_SET_NODF))) {
             need &=~X_PEND;
             need |= X_ALL;
+            STOP_NATIVE_FLAGS(dyn, ninst);
         }
         if((need&X_PEND) && dyn->insts[ninst].x64.state_flags==SF_SUBSET_PENDING) {
             need |= X_ALL&~(dyn->insts[ninst].x64.set_flags);