diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run64.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/emu/x64run64.c b/src/emu/x64run64.c index 676d6204..f11344f2 100644 --- a/src/emu/x64run64.c +++ b/src/emu/x64run64.c @@ -108,14 +108,20 @@ int Run64(x64emu_t *emu, rex_t rex) opcode = F8; switch(opcode) { - case 0x11: /* MOVSD Ex, Gx */ + case 0x11: switch(rep) { - case 1: + case 1: /* MOVSD Ex, Gx */ nextop = F8; GETEX_OFFS(0, tlsdata); GETGX; EX->q[0] = GX->q[0]; break; + case 2: /* MOVSS FS:Ex, Gx */ + nextop = F8; + GETEX_OFFS(0, tlsdata); + GETGX; + EX->ud[0] = GX->ud[0]; + break; default: return 1; } @@ -134,6 +140,20 @@ int Run64(x64emu_t *emu, rex_t rex) return 1; } break; + + case 0x59: + switch(rep) { + case 2: /* MULSS Gx, Ex */ + nextop = F8; + GETEX_OFFS(0, tlsdata); + GETGX; + GX->f[0] *= EX->f[0]; + break; + + default: + return 1; + } + break; default: return 1; |