diff options
| author | xctan <xctan@cirno.icu> | 2024-08-10 15:17:02 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-10 09:17:02 +0200 |
| commit | 4187581be52e6cd638c5b2f8f7cf9db44019ea26 (patch) | |
| tree | c69f8eef780662f87c0edf182919bad17affca7c /src | |
| parent | 2a07636623ac8f384c78db43ca02b5041f61edc5 (diff) | |
| download | box64-4187581be52e6cd638c5b2f8f7cf9db44019ea26.tar.gz box64-4187581be52e6cd638c5b2f8f7cf9db44019ea26.zip | |
[RV64_DYNAREC] Fixed pending flags for large 8 & 16 bit const shifts (#1728)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_emit_shift.c | 6 |
1 files changed, 6 insertions, 0 deletions
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 |