diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-07-03 10:58:41 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-07-03 10:58:41 +0200 |
| commit | e38c663dea00999db39aa6747d8ba18cd4806647 (patch) | |
| tree | 3aa85ec95c0207740138bfc7a620bce84861ec7a /src | |
| parent | b1873b21b6caf3855a1344d742b144f80767126e (diff) | |
| download | box64-e38c663dea00999db39aa6747d8ba18cd4806647.tar.gz box64-e38c663dea00999db39aa6747d8ba18cd4806647.zip | |
Added 67 38-3D opcodes (for #323)
Diffstat (limited to 'src')
| -rw-r--r-- | src/emu/x64run67.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/emu/x64run67.c b/src/emu/x64run67.c index f17e5e6d..1075dfa2 100644 --- a/src/emu/x64run67.c +++ b/src/emu/x64run67.c @@ -105,6 +105,45 @@ int Run67(x64emu_t *emu, rex_t rex, int rep) GO(0x28, sub) /* SUB 0x28 -> 0x2D */ GO(0x30, xor) /* XOR 0x30 -> 0x35 */ #undef GO + case 0x38: + nextop = F8; + GETEB32(0); + GETGB; + cmp8(emu, EB->byte[0], GB); + break; + case 0x39: + nextop = F8; + GETED32(0); + GETGD; + if(rex.w) + cmp64(emu, ED->q[0], GD->q[0]); + else + cmp32(emu, ED->dword[0], GD->dword[0]); + break; + case 0x3A: + nextop = F8; + GETEB32(0); + GETGB; + cmp8(emu, GB, EB->byte[0]); + break; + case 0x3B: + nextop = F8; + GETED32(0); + GETGD; + if(rex.w) + cmp64(emu, GD->q[0], ED->q[0]); + else + cmp32(emu, GD->dword[0], ED->dword[0]); + break; + case 0x3C: + R_AL = cmp8(emu, R_AL, F8); + break; + case 0x3D: + if(rex.w) + cmp64(emu, R_RAX, F32S64); + else + cmp32(emu, R_EAX, F32); + break; case 0x66: return Run6766(emu, rex, rep); |