diff options
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; |