From 4187581be52e6cd638c5b2f8f7cf9db44019ea26 Mon Sep 17 00:00:00 2001 From: xctan Date: Sat, 10 Aug 2024 15:17:02 +0800 Subject: [RV64_DYNAREC] Fixed pending flags for large 8 & 16 bit const shifts (#1728) --- src/dynarec/rv64/dynarec_rv64_emit_shift.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dynarec/rv64/dynarec_rv64_emit_shift.c b/src/dynarec/rv64/dynarec_rv64_emit_shift.c index 0c8ee6f7..6a3e917e 100644 --- a/src/dynarec/rv64/dynarec_rv64_emit_shift.c +++ b/src/dynarec/rv64/dynarec_rv64_emit_shift.c @@ -80,6 +80,9 @@ void emit_shl8c(dynarec_rv64_t* dyn, int ninst, int s1, uint32_t c, int s3, int } } MV(s1, xZR); + IFX(X_PEND) { + SB(s1, xEmu, offsetof(x64emu_t, res)); + } // OF nop // SF nop // AF nop @@ -391,6 +394,9 @@ void emit_shl16c(dynarec_rv64_t* dyn, int ninst, int s1, uint32_t c, int s3, int } } MV(s1, xZR); + IFX(X_PEND) { + SH(s1, xEmu, offsetof(x64emu_t, res)); + } // OF nop // SF nop // AF nop -- cgit 1.4.1