From a7074f03f7ed00e2a88fb6abf8f1a725d56da9da Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 28 May 2023 07:48:21 +0000 Subject: [RV64_DYNAREC] Small optim to AND with constant emiter --- src/dynarec/rv64/dynarec_rv64_emit_logic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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)); -- cgit 1.4.1