about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-04-07 12:58:39 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-04-07 12:58:39 +0200
commitf8bdb8bd1647b7932b11292b05155e2844095156 (patch)
treee3ae5e6c5dce3afeab727703c01254e354fdf80c /src
parent2417faa39b1e5e32191eb1156171a59d20cadacc (diff)
downloadbox64-f8bdb8bd1647b7932b11292b05155e2844095156.tar.gz
box64-f8bdb8bd1647b7932b11292b05155e2844095156.zip
[ARM64_DYNAREC] Fixed 66 0F 5B opcode when FASTROUND=0
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_f30f.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_f30f.c b/src/dynarec/arm64/dynarec_arm64_f30f.c
index 028ee7f4..ca5ef767 100755
--- a/src/dynarec/arm64/dynarec_arm64_f30f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f30f.c
@@ -240,15 +240,15 @@ uintptr_t dynarec64_F30F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
         case 0x5B:

             INST_NAME("CVTTPS2DQ Gx, Ex");

             nextop = F8;

-            GETEX(d0, 0, 0) ;

+            GETEX(v1, 0, 0) ;

             GETGX_empty(v0);

             if(box64_dynarec_fastround) {

-                VFCVTZSQS(v0, d0);

+                VFCVTZSQS(v0, v1);

             } else {

                 MRS_fpsr(x5);

                 BFCw(x5, FPSR_IOC, 1);   // reset IOC bit

                 MSR_fpsr(x5);

-                MOV32w(x4, 0x80000000);

+                ORRw_mask(x4, xZR, 1, 0);    //0x80000000

                 d0 = fpu_get_scratch(dyn);

                 for(int i=0; i<4; ++i) {

                     BFCw(x5, FPSR_IOC, 1);   // reset IOC bit