about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-23 11:30:48 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-23 11:30:48 +0100
commitf88f59926eb6f61a7c71aeea2462681dc78d6cd9 (patch)
tree5cdc04eed1a95ad52687dde3e90fbf1612932b2f /src
parentc9d593fa17916b0a542a801cafa4ea2a0d8c59bc (diff)
downloadbox64-f88f59926eb6f61a7c71aeea2462681dc78d6cd9.tar.gz
box64-f88f59926eb6f61a7c71aeea2462681dc78d6cd9.zip
[DYNAREC] Added F3 0F 5D opcode
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_f30f.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_arm64_f30f.c b/src/dynarec/dynarec_arm64_f30f.c
index 3ff24d0a..a0aa0d7f 100755
--- a/src/dynarec/dynarec_arm64_f30f.c
+++ b/src/dynarec/dynarec_arm64_f30f.c
@@ -148,7 +148,16 @@ uintptr_t dynarec64_F30F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             FSUBS(d1, v0, d0);

             VMOVeS(v0, 0, d1, 0);

             break;

-

+        case 0x5D:

+            INST_NAME("MINSS Gx, Ex");

+            nextop = F8;

+            GETGX(v0);

+            GETEX(v1, 0);

+            // MINSS: if any input is NaN, or Ex[0]<Gx[0], copy Ex[0] -> Gx[0]

+            d0 = fpu_get_scratch(dyn);

+            FMINNMS(d0, v0, v1);    // NaN handling may be slightly different, is that a problem?

+            VMOVeS(v0, 0, d0, 0);   // to not erase uper part

+            break;

         case 0x5E:

             INST_NAME("DIVSS Gx, Ex");

             nextop = F8;