diff options
| author | phorcys <phorcys@126.com> | 2025-10-14 15:12:45 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-14 09:12:45 +0200 |
| commit | 524c5ad47a3aa1fc7320e43fa4b82f7506d6d6cb (patch) | |
| tree | 7638ce230f15a3c1ed82614eece7007c3dd0b8e2 | |
| parent | 3d0423acf703be7e0e7b004ee85630f6684bf72e (diff) | |
| download | box64-524c5ad47a3aa1fc7320e43fa4b82f7506d6d6cb.tar.gz box64-524c5ad47a3aa1fc7320e43fa4b82f7506d6d6cb.zip | |
[LA64_DYNAREC] Fix SSE CMPPD, wrong reg operand for cUN cOR. (#3068)
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_660f.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dynarec/la64/dynarec_la64_660f.c b/src/dynarec/la64/dynarec_la64_660f.c index 8b3558d9..abbaa0a5 100644 --- a/src/dynarec/la64/dynarec_la64_660f.c +++ b/src/dynarec/la64/dynarec_la64_660f.c @@ -2152,11 +2152,11 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int case 0: VFCMP_D(v0, v0, v1, cEQ); break; // Equal => cEQ True if EQ case 1: VFCMP_D(v0, v0, v1, cLT); break; // Less than => cLT True if EQ LT case 2: VFCMP_D(v0, v0, v1, cLE); break; // Less or equal => CLE True if LT EQ - case 3: VFCMP_D(v0, v0, v0, cUN); break; // unordered => CUN True if UN + case 3: VFCMP_D(v0, v0, v1, cUN); break; // unordered => CUN True if UN case 4: VFCMP_D(v0, v0, v1, cUNE); break; // Not Equal or unordered True if UN LT GT case 5: VFCMP_D(v0, v1, v0, cULE); break; // grether or equal or un True if UN EQ GT, use cULE UN LT, swap v0 v1 case 6: VFCMP_D(v0, v1, v0, cULT); break; // Greater or unordered True if UN GT, use cULE UN EQ LT, swap v0 v1 - case 7: VFCMP_D(v0, v0, v0, cOR); break; // not NaN(ordered) True if LT EQ GT + case 7: VFCMP_D(v0, v0, v1, cOR); break; // not NaN(ordered) True if LT EQ GT } break; case 0xC4: |