diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 16:54:29 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 16:54:29 +0100 |
| commit | 1b350d24c30657c8ea8afd4f3aeeda960a0a2357 (patch) | |
| tree | 2686c17ba1cca91369f05527c1176a07c1ec53db /src/emu/modrm.h | |
| parent | 4705ecce1a36ffe29ec894d84cba1299501705ae (diff) | |
| download | box64-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.h | 18 |
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 \ |