diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-10-09 20:32:37 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-10-09 20:32:41 +0200 |
| commit | 5e9a9b9867bd300a5b136d9ad7394c4be1d56dc9 (patch) | |
| tree | b393e6fd5cfd8eb6023205145671df92c68ce7c2 /src | |
| parent | 68826baf3bc7a0992c28c9e0909f67adb4034ec8 (diff) | |
| download | box64-5e9a9b9867bd300a5b136d9ad7394c4be1d56dc9.tar.gz box64-5e9a9b9867bd300a5b136d9ad7394c4be1d56dc9.zip | |
Added 64 66 0F 11 opcode (for #418)
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run6664.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/emu/x64run6664.c b/src/emu/x64run6664.c index 25fee5b1..4a4b8a37 100644 --- a/src/emu/x64run6664.c +++ b/src/emu/x64run6664.c @@ -43,13 +43,12 @@ uintptr_t Run6664(x64emu_t *emu, rex_t rex, uintptr_t addr) case 0x0F: opcode = F8; switch(opcode) { - case 0xD6: /* MOVQ Ex,Gx */ + + case 0x11: /* MOVUPD Ex, Gx */ nextop = F8; GETEX_OFFS(0, tlsdata); GETGX; - EX->q[0] = GX->q[0]; - if(MODREG) - EX->q[1] = 0; + memcpy(EX, GX, 16); // unaligned... break; case 0x2E: /* UCOMISD Gx, Ex */ @@ -71,6 +70,15 @@ uintptr_t Run6664(x64emu_t *emu, rex_t rex, uintptr_t addr) CLEAR_FLAG(F_OF); CLEAR_FLAG(F_AF); CLEAR_FLAG(F_SF); break; + case 0xD6: /* MOVQ Ex,Gx */ + nextop = F8; + GETEX_OFFS(0, tlsdata); + GETGX; + EX->q[0] = GX->q[0]; + if(MODREG) + EX->q[1] = 0; + break; + default: return 0; } |