diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 10:34:08 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 10:34:08 +0100 |
| commit | c00623929a461a848e9f7889d313922930afbfb8 (patch) | |
| tree | 3c08552c891d666249b0c74c456c79eb5207540b /src | |
| parent | 281d1a94f11f50c6bf13fad594f7431a524ac65b (diff) | |
| download | box64-c00623929a461a848e9f7889d313922930afbfb8.tar.gz box64-c00623929a461a848e9f7889d313922930afbfb8.zip | |
Added REX 80 opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/emu/x64run.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c index 64982e64..fc804bc1 100755 --- a/src/emu/x64run.c +++ b/src/emu/x64run.c @@ -277,6 +277,21 @@ x64emurun: , R_RIP += tmp8s; ) /* Jxx Ib */ + case 0x80: /* GRP Eb,Ib */ + nextop = F8; + GETEB; + 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; |