about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-05-28 07:48:21 +0000
committerptitSeb <sebastien.chev@gmail.com>2023-05-28 07:48:21 +0000
commita7074f03f7ed00e2a88fb6abf8f1a725d56da9da (patch)
tree0f6a8a92c2d9696ca4e20f55a7ad332c7cea7d40 /src
parent0b67bba12111bad3bdc7abc83d82e7016efb97ec (diff)
downloadbox64-a7074f03f7ed00e2a88fb6abf8f1a725d56da9da.tar.gz
box64-a7074f03f7ed00e2a88fb6abf8f1a725d56da9da.zip
[RV64_DYNAREC] Small optim to AND with constant emiter
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/rv64/dynarec_rv64_emit_logic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_emit_logic.c b/src/dynarec/rv64/dynarec_rv64_emit_logic.c
index 809620bf..93ce00a6 100644
--- a/src/dynarec/rv64/dynarec_rv64_emit_logic.c
+++ b/src/dynarec/rv64/dynarec_rv64_emit_logic.c
@@ -424,7 +424,7 @@ void emit_and32c(dynarec_rv64_t* dyn, int ninst, rex_t rex, int s1, int64_t c, i
         MOV64xw(s3, c);
         AND(s1, s1, s3); // res = s1 & s2
     }
-    if (!rex.w) ZEROUP(s1);
+    if (!rex.w && c<0 && c>=-2048) ZEROUP(s1);
 
     IFX(X_PEND) {
         SDxw(s1, xEmu, offsetof(x64emu_t, res));