about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-06 10:34:08 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-06 10:34:08 +0100
commitc00623929a461a848e9f7889d313922930afbfb8 (patch)
tree3c08552c891d666249b0c74c456c79eb5207540b /src
parent281d1a94f11f50c6bf13fad594f7431a524ac65b (diff)
downloadbox64-c00623929a461a848e9f7889d313922930afbfb8.tar.gz
box64-c00623929a461a848e9f7889d313922930afbfb8.zip
Added REX 80 opcodes
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64run.c15
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;