diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-05-21 10:05:36 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-05-21 10:05:36 +0200 |
| commit | 4be307820bab87e8bcd219b95ac0f5cb9b3acc3e (patch) | |
| tree | 585bde0dee77a5af8a1ffa2ab91176ac0ef82c3d /src/emu | |
| parent | 15227bbc0651b7e16ef082435932eb085c3a9ea4 (diff) | |
| download | box64-4be307820bab87e8bcd219b95ac0f5cb9b3acc3e.tar.gz box64-4be307820bab87e8bcd219b95ac0f5cb9b3acc3e.zip | |
Added 64 80 opcodes ([DYNAREC] too)
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run64.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/emu/x64run64.c b/src/emu/x64run64.c index ae4dbe63..3b6bb4f2 100644 --- a/src/emu/x64run64.c +++ b/src/emu/x64run64.c @@ -217,7 +217,21 @@ int Run64(x64emu_t *emu, rex_t rex) } break; - + case 0x80: /* GRP Eb,Ib */ + nextop = F8; + GETEB_OFFS(1, tlsdata); + tmp8u = F8; + switch((nextop>>3)&7) { + case 0: EB->byte[0] = add8(emu, EB->byte[0], tmp8u); break; + case 1: EB->byte[0] = or8(emu, EB->byte[0], tmp8u); break; + case 2: EB->byte[0] = adc8(emu, EB->byte[0], tmp8u); break; + case 3: EB->byte[0] = sbb8(emu, EB->byte[0], tmp8u); break; + case 4: EB->byte[0] = and8(emu, EB->byte[0], tmp8u); break; + case 5: EB->byte[0] = sub8(emu, EB->byte[0], tmp8u); break; + case 6: EB->byte[0] = xor8(emu, EB->byte[0], tmp8u); break; + case 7: cmp8(emu, EB->byte[0], tmp8u); break; + } + break; case 0x81: /* GRP Ed,Id */ case 0x83: /* GRP Ed,Ib */ nextop = F8; |