diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-05 14:15:15 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-05 14:15:15 +0100 |
| commit | 19fc4401004c0c5f51eb8c8b52ec8f24dcda7222 (patch) | |
| tree | 94f10430b04f33367cf65693d5e8db0b1f8d0ff3 /src | |
| parent | 2009b014259d82d24fdacf30dd5be5ba2ed0c370 (diff) | |
| download | box64-19fc4401004c0c5f51eb8c8b52ec8f24dcda7222.tar.gz box64-19fc4401004c0c5f51eb8c8b52ec8f24dcda7222.zip | |
Added 0F BE/BF MOVSX opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run0f.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index d49f8807..8f40aa5f 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -78,6 +78,29 @@ int Run0F(x64emu_t *emu, rex_t rex) GD->q[0] = EB->byte[0]; break; + case 0xBE: /* MOVSX Gd,Eb */ + nextop = F8; + GETEB; + GETGD; + if(rex.w) + GD->sq[0] = EB->sbyte[0]; + else { + GD->sdword[0] = EB->sbyte[0]; + GD->dword[1] = 0; + } + break; + case 0xBF: /* MOVSX Gd,Ew */ + nextop = F8; + GETEW; + GETGD; + if(rex.w) + GD->sq[0] = EW->sword[0]; + else { + GD->sdword[0] = EW->sword[0]; + GD->dword[1] = 0; + } + break; + default: return 1; } |