about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index 9f2ba58a..9b890f63 100644
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -1081,9 +1081,10 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
         case 0x52:

             INST_NAME("RSQRTPS Gx, Ex");

             nextop = F8;

-            SKIPTEST(x1);

             GETEX(q0, 0, 0);

             GETGX_empty(q1);

+            #if 0

+            SKIPTEST(x1);

             v0 = fpu_get_scratch(dyn, ninst);

             // more precise

             if(q1==q0)

@@ -1094,6 +1095,12 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             VFMULQS(v1, v0, q0);

             VFRSQRTSQS(v1, v1, v0);

             VFMULQS(q1, v1, v0);

+            #else

+            v0 = fpu_get_scratch(dyn, ninst);

+            VFMOVSQ_8(v0, 0b01110000);    //1.0f

+            VFSQRTQS(q1, q0);

+            VFDIVQS(q1, v0, q1);

+            #endif

             break;

         case 0x53:

             INST_NAME("RCPPS Gx, Ex");