diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-07-25 16:53:48 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-07-25 16:53:48 +0200 |
| commit | 1c1bab8d6b787756bd03baf958b9253dec6e56c3 (patch) | |
| tree | dd0f0c177691d8dbceb38d9d56d21baf3110ad41 /src | |
| parent | 8beb818100798b78605c84ff4f9744f40a144e04 (diff) | |
| download | box64-1c1bab8d6b787756bd03baf958b9253dec6e56c3.tar.gz box64-1c1bab8d6b787756bd03baf958b9253dec6e56c3.zip | |
Added F2 0F 7D opcode
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64runf20f.c | 14 |
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); |