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:28:19 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-06 10:28:19 +0100
commit281d1a94f11f50c6bf13fad594f7431a524ac65b (patch)
tree04d15f34171e8e00636e6ebe0f8876ff5eb61c5a /src
parent7aca60904076314e45d6f6b6916fc22358e93640 (diff)
downloadbox64-281d1a94f11f50c6bf13fad594f7431a524ac65b.tar.gz
box64-281d1a94f11f50c6bf13fad594f7431a524ac65b.zip
Added REX F6 opcodes
Diffstat (limited to 'src')
-rwxr-xr-xsrc/emu/x64run.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index ec88fab1..64982e64 100755
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -523,6 +523,35 @@ x64emurun:
             STEP
             break;
 
+        case 0xF6:                      /* GRP3 Eb(,Ib) */
+            nextop = F8;
+            GETEB;
+            switch((nextop>>3)&7) {
+                case 0: 
+                case 1:                 /* TEST Eb,Ib */
+                    tmp8u = F8;
+                    test8(emu, EB->byte[0], tmp8u);
+                    break;
+                case 2:                 /* NOT Eb */
+                    EB->byte[0] = not8(emu, EB->byte[0]);
+                    break;
+                case 3:                 /* NEG Eb */
+                    EB->byte[0] = neg8(emu, EB->byte[0]);
+                    break;
+                case 4:                 /* MUL AL,Eb */
+                    mul8(emu, EB->byte[0]);
+                    break;
+                case 5:                 /* IMUL AL,Eb */
+                    imul8(emu, EB->byte[0]);
+                    break;
+                case 6:                 /* DIV Eb */
+                    div8(emu, EB->byte[0]);
+                    break;
+                case 7:                 /* IDIV Eb */
+                    idiv8(emu, EB->byte[0]);
+                    break;
+            }
+            break;
         case 0xF7:                      /* GRP3 Ed(,Id) */
             nextop = F8;
             GETED;