about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <seebastien.chev@gmail.com>2023-08-13 14:18:59 +0200
committerptitSeb <seebastien.chev@gmail.com>2023-08-13 14:18:59 +0200
commit69c7ca8bdc23de6fb9e7d637042b6d5e2910ca4d (patch)
treee6ea19f8a45da577e70818d0ab319ceec6948474 /src
parent692eb90dcdffeaf72c8769113a54770163eb3e24 (diff)
downloadbox64-69c7ca8bdc23de6fb9e7d637042b6d5e2910ca4d.tar.gz
box64-69c7ca8bdc23de6fb9e7d637042b6d5e2910ca4d.zip
[32bits] Added 27/2F/37 opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index fb740bd7..1f2f9ddc 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -227,11 +227,34 @@ x64emurun:
             emu->segs_serial[_DS] = 0;
             break;
 
+        case 0x27:                  /* DAA */
+            if(rex.is32bits) {
+                R_AL = daa8(emu, R_AL);
+            } else {
+                unimp = 1;
+                goto fini;
+            }
+            break;
+        case 0x2F:                  /* DAS */
+            if(rex.is32bits) {
+                R_AL = das8(emu, R_AL);
+            } else {
+                unimp = 1;
+                goto fini;
+            }
+            break;
 	    case 0x2E:	    /* segments are ignored */
         case 0x26:
         case 0x36:          /* SS: (ignored) */
             break;
-
+        case 0x37:                  /* AAA */
+            if(rex.is32bits) {
+                R_AX = aaa16(emu, R_AX);
+            } else {
+                unimp = 1;
+                goto fini;
+            }
+            break;
         case 0x38:
             nextop = F8;
             GETEB(0);