diff options
| author | xctan <xctan@cirno.icu> | 2023-05-05 23:49:40 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-05 17:49:40 +0200 |
| commit | e444b277f853ff30231678016034c8c2cb52bd0b (patch) | |
| tree | da0392c3ef976ece616ab2185292db792c38045b /src | |
| parent | 49dfbee2119ce52600f7acbf61af690d6c9ef16c (diff) | |
| download | box64-e444b277f853ff30231678016034c8c2cb52bd0b.tar.gz box64-e444b277f853ff30231678016034c8c2cb52bd0b.zip | |
[RV64_DYNAREC] Fixed 66 0F 3A 0B ROUNDSD opcode (#765)
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_660f.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_660f.c b/src/dynarec/rv64/dynarec_rv64_660f.c index 2e79019b..0408aeaa 100644 --- a/src/dynarec/rv64/dynarec_rv64_660f.c +++ b/src/dynarec/rv64/dynarec_rv64_660f.c @@ -411,14 +411,13 @@ uintptr_t dynarec64_660F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int MARK2; if(u8&4) { u8 = sse_setround(dyn, ninst, x4, x2); - FCVTLD(x5, v1, RD_DYN); - FCVTDL(v0, x5, RD_DYN); + FCVTLD(x5, d0, RD_DYN); + FCVTDL(v0, x5, RD_RTZ); x87_restoreround(dyn, ninst, u8); } else { - FCVTLD(x5, v1, round_round[u8&3]); - FCVTDL(v0, x5, round_round[u8&3]); + FCVTLD(x5, d0, round_round[u8&3]); + FCVTDL(v0, x5, RD_RTZ); } - FSGNJD(v0, v0, d0); break; case 0x0E: INST_NAME("PBLENDW Gx, Ex, Ib"); |