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 16:54:29 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-06 16:54:29 +0100
commit1b350d24c30657c8ea8afd4f3aeeda960a0a2357 (patch)
tree2686c17ba1cca91369f05527c1176a07c1ec53db /src/emu/modrm.h
parent4705ecce1a36ffe29ec894d84cba1299501705ae (diff)
downloadbox64-1b350d24c30657c8ea8afd4f3aeeda960a0a2357.tar.gz
box64-1b350d24c30657c8ea8afd4f3aeeda960a0a2357.zip
Fixed mod/rm relative computation when opcode have trailing bytes
Diffstat (limited to 'src/emu/modrm.h')
-rw-r--r--src/emu/modrm.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/emu/modrm.h b/src/emu/modrm.h
index b95273b3..af678823 100644
--- a/src/emu/modrm.h
+++ b/src/emu/modrm.h
@@ -13,14 +13,14 @@
 #define STEP

 #endif

 

-#define GETED oped=GetEd(emu, rex, nextop)

-#define GETGD opgd=GetGd(emu, rex, nextop)

-#define GETEB oped=GetEb(emu, rex, nextop)

-#define GETGB opgd=GetGb(emu, rex, nextop)

-#define GETEW oped=GetEw(emu, rex, nextop)

-#define GETGW opgd=GetGw(emu, rex, nextop)

-#define GETEX opex=GetEx(emu, rex, nextop)

-#define GETGX opgx=GetGx(emu, rex, nextop)

+#define GETED(D)    oped=GetEd(emu, rex, nextop, D)

+#define GETGD       opgd=GetGd(emu, rex, nextop)

+#define GETEB(D)    oped=GetEb(emu, rex, nextop, D)

+#define GETGB       opgd=GetGb(emu, rex, nextop)

+#define GETEW(D)    oped=GetEw(emu, rex, nextop, D)

+#define GETGW       opgd=GetGw(emu, rex, nextop)

+#define GETEX(D)    opex=GetEx(emu, rex, nextop, D)

+#define GETGX       opgx=GetGx(emu, rex, nextop)

 #define ED  oped

 #define GD  opgd

 #define EB  oped

@@ -30,6 +30,8 @@
 #define EX  opex

 #define GX  opgx

 

+#define MODREG  ((nextop&0xC0)==0xC0)

+

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

     case BASE+0x0:                              \

         PREFIX                                  \