diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-11-23 23:27:14 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-11-23 23:27:14 +0100 |
| commit | 239ef8951d3a3620becbf1e2382cc5559aa66ffb (patch) | |
| tree | 1724a581d5e320a2bb592415760ff656a2833641 /src | |
| parent | 6dd899df22f336fe1faee5be414af9973e054656 (diff) | |
| parent | 494510e2a89ebbbccb6b18324234843b2661d012 (diff) | |
| download | box64-239ef8951d3a3620becbf1e2382cc5559aa66ffb.tar.gz box64-239ef8951d3a3620becbf1e2382cc5559aa66ffb.zip | |
Merge branch 'main' of https://github.com/ptitSeb/box64
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_d8.c | 18 | ||||
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_dc.c | 10 |
2 files changed, 14 insertions, 14 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_d8.c b/src/dynarec/rv64/dynarec_rv64_d8.c index e293236e..88fbc105 100644 --- a/src/dynarec/rv64/dynarec_rv64_d8.c +++ b/src/dynarec/rv64/dynarec_rv64_d8.c @@ -53,7 +53,7 @@ uintptr_t dynarec64_D8(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni v1 = x87_get_st(dyn, ninst, x1, x2, 0, X87_COMBINE(0, nextop&7)); v2 = x87_get_st(dyn, ninst, x1, x2, nextop&7, X87_COMBINE(0, nextop&7)); LHU(x3, xEmu, offsetof(x64emu_t, sw)); - MOV32w(x1, 0b1110100011111111); // mask off c0,c1,c2,c3 + MOV32w(x1, 0b1011100011111111); // mask off c0,c1,c2,c3 AND(x3, x3, x1); if(ST_IS_F(0)) { FEQS(x5, v1, v1); @@ -62,15 +62,15 @@ uintptr_t dynarec64_D8(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni BEQZ(x5, 24); // undefined/NaN FEQS(x5, v1, v2); BNEZ(x5, 28); // equal - FLTS(x3, v1, v2); // x3 = (v1<v2)?1:0 - SLLI(x1, x3, 8); + FLTS(x2, v1, v2); // x2 = (v1<v2)?1:0 + SLLI(x1, x2, 8); J(20); // end // undefined/NaN - LUI(x1, 1); + LUI(x1, 4); ADDI(x1, x1, 0b010100000000); J(8); // end // equal - LUI(x1, 1); + LUI(x1, 4); // end } else { FEQD(x5, v1, v1); @@ -79,15 +79,15 @@ uintptr_t dynarec64_D8(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni BEQZ(x5, 24); // undefined/NaN FEQD(x5, v1, v2); BNEZ(x5, 28); // equal - FLTD(x3, v1, v2); // x3 = (v1<v2)?1:0 - SLLI(x1, x3, 8); + FLTD(x2, v1, v2); // x2 = (v1<v2)?1:0 + SLLI(x1, x2, 8); J(20); // end // undefined/NaN - LUI(x1, 1); + LUI(x1, 4); ADDI(x1, x1, 0b010100000000); J(8); // end // equal - LUI(x1, 1); + LUI(x1, 4); // end } OR(x3, x3, x1); diff --git a/src/dynarec/rv64/dynarec_rv64_dc.c b/src/dynarec/rv64/dynarec_rv64_dc.c index 6a84c603..3cca69a2 100644 --- a/src/dynarec/rv64/dynarec_rv64_dc.c +++ b/src/dynarec/rv64/dynarec_rv64_dc.c @@ -80,7 +80,7 @@ uintptr_t dynarec64_DC(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni FLD(v2, wback, fixedaddress); LHU(x3, xEmu, offsetof(x64emu_t, sw)); - MOV32w(x1, 0b1110100011111111); // mask off c0,c1,c2,c3 + MOV32w(x1, 0b1011100011111111); // mask off c0,c1,c2,c3 AND(x3, x3, x1); FEQD(x5, v1, v1); FEQD(x4, v2, v2); @@ -88,15 +88,15 @@ uintptr_t dynarec64_DC(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni BEQZ(x5, 24); // undefined/NaN FEQD(x5, v1, v2); BNEZ(x5, 28); // equal - FLTD(x3, v1, v2); // x3 = (v1<v2)?1:0 - SLLI(x1, x3, 8); + FLTD(x2, v1, v2); // x3 = (v1<v2)?1:0 + SLLI(x1, x2, 8); J(20); // end // undefined/NaN - LUI(x1, 1); + LUI(x1, 4); ADDI(x1, x1, 0b010100000000); J(8); // end // equal - LUI(x1, 1); + LUI(x1, 4); // end OR(x3, x3, x1); SH(x3, xEmu, offsetof(x64emu_t, sw)); |