about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-07-25 16:53:48 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-07-25 16:53:48 +0200
commit1c1bab8d6b787756bd03baf958b9253dec6e56c3 (patch)
treedd0f0c177691d8dbceb38d9d56d21baf3110ad41 /src
parent8beb818100798b78605c84ff4f9744f40a144e04 (diff)
downloadbox64-1c1bab8d6b787756bd03baf958b9253dec6e56c3.tar.gz
box64-1c1bab8d6b787756bd03baf958b9253dec6e56c3.zip
Added F2 0F 7D opcode
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64runf20f.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/emu/x64runf20f.c b/src/emu/x64runf20f.c
index 1225e07d..e6268fcc 100644
--- a/src/emu/x64runf20f.c
+++ b/src/emu/x64runf20f.c
@@ -239,6 +239,20 @@ int RunF20F(x64emu_t *emu, rex_t rex)
             GX->f[3] = EX->f[2] + EX->f[3];

         }

         break;

+    case 0x7D:  /* HSUBPS Gx, Ex */

+        nextop = F8;

+        GETEX(0);

+        GETGX;

+        GX->f[0] -= GX->f[1];

+        GX->f[1] = GX->f[2] - GX->f[3];

+        if(EX==GX) {

+            GX->f[2] = GX->f[0];

+            GX->f[3] = GX->f[1];

+        } else {

+            GX->f[2] = EX->f[0] - EX->f[1];

+            GX->f[3] = EX->f[2] - EX->f[3];

+        }

+        break;

 

     GOCOND(0x80

         , tmp32s = F32S; CHECK_FLAGS(emu);