diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 11:53:13 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-06 11:53:13 +0100 |
| commit | 943eb97f06d5da96e8592dc9edc486c11c09ae67 (patch) | |
| tree | fe67811306f78170bcdb28d66ad36feaa611a585 /src/emu/modrm.h | |
| parent | a26ae4c7ef65429bf7d831c6650671cae1a348b2 (diff) | |
| download | box64-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.h | 66 |
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; |