diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-08-02 01:44:02 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-01 19:44:02 +0200 |
| commit | f7302ecb1b08831037cb067bd62863b90768604a (patch) | |
| tree | 98056b17d8a081d11aff400f2fbef91f35300d74 | |
| parent | 4c30838448b74ea34e51dd684c5753fb388f212f (diff) | |
| download | box64-f7302ecb1b08831037cb067bd62863b90768604a.tar.gz box64-f7302ecb1b08831037cb067bd62863b90768604a.zip | |
[ARM64_DYNAREC] Fixed PCMPESTRI fastpath SF flag computation (#2876)
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_660f.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 0c3a02cb..5200e5b7 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -1388,10 +1388,10 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n CMPSw_REG(x3, x4); CSELw(x3, x3, x4, cLT); // x3 is lmem CMPSw_REG(x2, x4); - CSELw(x2, x2, x4, cLT); // x2 is lreg - CMPSw_REG(x2, x3); - CSELw(x5, x3, x2, cLT); // x5 is max(lmem, lreg) - CSELw(x2, x2, x3, cLT); // x2 is min(lmem, lreg) + CSELw(x6, x2, x4, cLT); // x6 is lreg + CMPSw_REG(x6, x3); + CSELw(x5, x3, x6, cLT); // x5 is max(lmem, lreg) + CSELw(x2, x6, x3, cLT); // x2 is min(lmem, lreg) // x2 is min length 0-n_packed MVNw_REG(x4, xZR); LSLw_REG(x87pc, x4, x2); @@ -1427,7 +1427,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n BFIw(xFlags, x5, F_ZF, 1); } IFX(X_SF) { - CMPSw_REG(x2, x4); + CMPSw_REG(x6, x4); CSETw(x5, cLT); BFIw(xFlags, x5, F_SF, 1); } |