about summary refs log tree commit diff stats
path: root/src/emu/modrm.h
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-06 11:53:13 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-06 11:53:13 +0100
commit943eb97f06d5da96e8592dc9edc486c11c09ae67 (patch)
treefe67811306f78170bcdb28d66ad36feaa611a585 /src/emu/modrm.h
parenta26ae4c7ef65429bf7d831c6650671cae1a348b2 (diff)
downloadbox64-943eb97f06d5da96e8592dc9edc486c11c09ae67.tar.gz
box64-943eb97f06d5da96e8592dc9edc486c11c09ae67.zip
Added REX 0F 90..9F SETcc opcode
Diffstat (limited to 'src/emu/modrm.h')
-rw-r--r--src/emu/modrm.h66
1 files changed, 49 insertions, 17 deletions
diff --git a/src/emu/modrm.h b/src/emu/modrm.h
index 78dbddb3..d5479a1d 100644
--- a/src/emu/modrm.h
+++ b/src/emu/modrm.h
@@ -30,100 +30,132 @@
 #define EX  opex

 #define GX  opgx

 

-#define GOCOND(BASE, PREFIX, CONDITIONAL)       \

+#define GOCOND(BASE, PREFIX, COND, NOTCOND)     \

     case BASE+0x0:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_OF)) {                 \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x1:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_OF)) {                \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x2:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_CF)) {                 \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x3:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_CF)) {                \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x4:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_ZF)) {                 \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x5:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_ZF)) {                \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x6:                              \

         PREFIX                                  \

         if((ACCESS_FLAG(F_ZF) || ACCESS_FLAG(F_CF))) {  \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x7:                              \

         PREFIX                                  \

         if(!(ACCESS_FLAG(F_ZF) || ACCESS_FLAG(F_CF))) { \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x8:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_SF)) {                 \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0x9:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_SF)) {                \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xA:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_PF)) {                 \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xB:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_PF)) {                \

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xC:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_SF) != ACCESS_FLAG(F_OF)) {\

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xD:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_SF) == ACCESS_FLAG(F_OF)) {\

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xE:                              \

         PREFIX                                  \

         if(ACCESS_FLAG(F_ZF) || (ACCESS_FLAG(F_SF) != ACCESS_FLAG(F_OF))) {\

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;                                  \

     case BASE+0xF:                              \

         PREFIX                                  \

         if(!ACCESS_FLAG(F_ZF) && (ACCESS_FLAG(F_SF) == ACCESS_FLAG(F_OF))) {\

-            CONDITIONAL                         \

+            COND                                \

+        } else {                                \

+            NOTCOND                             \

         }                                       \

         break;