diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-05-28 07:48:21 +0000 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-05-28 07:48:21 +0000 |
| commit | a7074f03f7ed00e2a88fb6abf8f1a725d56da9da (patch) | |
| tree | 0f6a8a92c2d9696ca4e20f55a7ad332c7cea7d40 /src | |
| parent | 0b67bba12111bad3bdc7abc83d82e7016efb97ec (diff) | |
| download | box64-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.c | 2 |
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)); |