diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-06-18 14:28:15 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-06-18 14:28:15 +0200 |
| commit | ed09b87953b4038f13807f77ccc437e818977fa6 (patch) | |
| tree | 25aed64a4357e1e14260e2a92449d721fd41fd6c /src | |
| parent | 8c3fbe26ad7100ed37c6c35aa564cde87a9882a7 (diff) | |
| download | box64-ed09b87953b4038f13807f77ccc437e818977fa6.tar.gz box64-ed09b87953b4038f13807f77ccc437e818977fa6.zip | |
Added 67 63 opcode
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run67.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c index 951ee72e..2d9db866 100644 --- a/src/emu/x64run67.c +++ b/src/emu/x64run67.c @@ -152,6 +152,19 @@ uintptr_t Run67(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr) cmp32(emu, R_EAX, F32); break; + case 0x63: /* MOVSXD Gd,Ed */ + nextop = F8; + GETED32(0); + GETGD; + if(rex.w) + GD->sq[0] = ED->sdword[0]; + else + if(MODREG) + GD->q[0] = ED->dword[0]; // not really a sign extension + else + GD->sdword[0] = ED->sdword[0]; // meh? + break; + case 0x66: #ifdef TEST_INTERPRETER return Test6766(test, rex, rep, addr); |