diff options
author | 2008-11-07 14:46:20 +0000 | |
---|---|---|
committer | 2008-11-07 14:46:20 +0000 | |
commit | e1aca15f22b9ec699087174466b5ae358a140f71 (patch) | |
tree | bf25f5bfa3ed077302a8a3d374c3d5f5b4a1560c /src/emu | |
parent | 127f85b5174c4e49cfce9d7e85d4e250a8e14ca2 (diff) |
More 68000 cleanup.
Diffstat (limited to 'src/emu')
-rw-r--r-- | src/emu/cpu/m68000/m68k_in.c | 4156 | ||||
-rw-r--r-- | src/emu/cpu/m68000/m68kcpu.c | 40 | ||||
-rw-r--r-- | src/emu/cpu/m68000/m68kcpu.h | 302 | ||||
-rw-r--r-- | src/emu/cpu/m68000/m68kfpu.c | 22 | ||||
-rw-r--r-- | src/emu/cpu/m68000/m68kmake.c | 4 |
5 files changed, 2258 insertions, 2266 deletions
diff --git a/src/emu/cpu/m68000/m68k_in.c b/src/emu/cpu/m68000/m68k_in.c index e675ccac3ea..c67eb07c972 100644 --- a/src/emu/cpu/m68000/m68k_in.c +++ b/src/emu/cpu/m68000/m68k_in.c @@ -917,22 +917,22 @@ M68KMAKE_OP(abcd, 8, rr, .) UINT32* r_dst = &DX; UINT32 src = DY; UINT32 dst = *r_dst; - UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(m68k); - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if(res > 9) res += 6; res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); - FLAG_X = FLAG_C = (res > 0x99) << 8; - if(FLAG_C) + m68k->x_flag = m68k->c_flag = (res > 0x99) << 8; + if(m68k->c_flag) res -= 0xa0; - FLAG_V &= res; /* Undefined V behavior part II */ - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->v_flag &= res; /* Undefined V behavior part II */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; } @@ -943,22 +943,22 @@ M68KMAKE_OP(abcd, 8, mm, ax7) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(m68k); - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if(res > 9) res += 6; res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); - FLAG_X = FLAG_C = (res > 0x99) << 8; - if(FLAG_C) + m68k->x_flag = m68k->c_flag = (res > 0x99) << 8; + if(m68k->c_flag) res -= 0xa0; - FLAG_V &= res; /* Undefined V behavior part II */ - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->v_flag &= res; /* Undefined V behavior part II */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -969,22 +969,22 @@ M68KMAKE_OP(abcd, 8, mm, ay7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(m68k); - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if(res > 9) res += 6; res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); - FLAG_X = FLAG_C = (res > 0x99) << 8; - if(FLAG_C) + m68k->x_flag = m68k->c_flag = (res > 0x99) << 8; + if(m68k->c_flag) res -= 0xa0; - FLAG_V &= res; /* Undefined V behavior part II */ - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->v_flag &= res; /* Undefined V behavior part II */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -995,22 +995,22 @@ M68KMAKE_OP(abcd, 8, mm, axy7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(m68k); - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if(res > 9) res += 6; res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); - FLAG_X = FLAG_C = (res > 0x99) << 8; - if(FLAG_C) + m68k->x_flag = m68k->c_flag = (res > 0x99) << 8; + if(m68k->c_flag) res -= 0xa0; - FLAG_V &= res; /* Undefined V behavior part II */ - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->v_flag &= res; /* Undefined V behavior part II */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1021,22 +1021,22 @@ M68KMAKE_OP(abcd, 8, mm, .) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(src) + LOW_NIBBLE(dst) + XFLAG_AS_1(m68k); - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if(res > 9) res += 6; res += HIGH_NIBBLE(src) + HIGH_NIBBLE(dst); - FLAG_X = FLAG_C = (res > 0x99) << 8; - if(FLAG_C) + m68k->x_flag = m68k->c_flag = (res > 0x99) << 8; + if(m68k->c_flag) res -= 0xa0; - FLAG_V &= res; /* Undefined V behavior part II */ - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->v_flag &= res; /* Undefined V behavior part II */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1049,12 +1049,12 @@ M68KMAKE_OP(add, 8, er, d) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -1065,12 +1065,12 @@ M68KMAKE_OP(add, 8, er, .) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -1081,12 +1081,12 @@ M68KMAKE_OP(add, 16, er, d) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -1097,12 +1097,12 @@ M68KMAKE_OP(add, 16, er, a) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -1113,12 +1113,12 @@ M68KMAKE_OP(add, 16, er, .) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -1129,12 +1129,12 @@ M68KMAKE_OP(add, 32, er, d) UINT32 dst = *r_dst; UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -1145,12 +1145,12 @@ M68KMAKE_OP(add, 32, er, a) UINT32 dst = *r_dst; UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -1161,12 +1161,12 @@ M68KMAKE_OP(add, 32, er, .) UINT32 dst = *r_dst; UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -1177,12 +1177,12 @@ M68KMAKE_OP(add, 8, re, .) UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -1193,12 +1193,12 @@ M68KMAKE_OP(add, 16, re, .) UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -1209,12 +1209,12 @@ M68KMAKE_OP(add, 32, re, .) UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } @@ -1275,12 +1275,12 @@ M68KMAKE_OP(addi, 8, ., d) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -1291,12 +1291,12 @@ M68KMAKE_OP(addi, 8, ., .) UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -1307,12 +1307,12 @@ M68KMAKE_OP(addi, 16, ., d) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -1323,12 +1323,12 @@ M68KMAKE_OP(addi, 16, ., .) UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -1339,12 +1339,12 @@ M68KMAKE_OP(addi, 32, ., d) UINT32 dst = *r_dst; UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -1355,60 +1355,60 @@ M68KMAKE_OP(addi, 32, ., .) UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(addq, 8, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } M68KMAKE_OP(addq, 8, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(addq, 16, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -1416,39 +1416,39 @@ M68KMAKE_OP(addq, 16, ., a) { UINT32* r_dst = &AY; - *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((REG_IR >> 9) - 1) & 7) + 1); + *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((m68k->ir >> 9) - 1) & 7) + 1); } M68KMAKE_OP(addq, 16, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(addq, 32, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = *r_dst; UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -1456,24 +1456,24 @@ M68KMAKE_OP(addq, 32, ., a) { UINT32* r_dst = &AY; - *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((REG_IR >> 9) - 1) & 7) + 1); + *r_dst = MASK_OUT_ABOVE_32(*r_dst + (((m68k->ir >> 9) - 1) & 7) + 1); } M68KMAKE_OP(addq, 32, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_32; UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = src + dst; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } @@ -1482,14 +1482,14 @@ M68KMAKE_OP(addx, 8, rr, .) UINT32* r_dst = &DX; UINT32 src = MASK_OUT_ABOVE_8(DY); UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; } @@ -1500,14 +1500,14 @@ M68KMAKE_OP(addx, 16, rr, .) UINT32* r_dst = &DX; UINT32 src = MASK_OUT_ABOVE_16(DY); UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; } @@ -1518,14 +1518,14 @@ M68KMAKE_OP(addx, 32, rr, .) UINT32* r_dst = &DX; UINT32 src = DY; UINT32 dst = *r_dst; - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = res; } @@ -1536,14 +1536,14 @@ M68KMAKE_OP(addx, 8, mm, ax7) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1554,14 +1554,14 @@ M68KMAKE_OP(addx, 8, mm, ay7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1572,14 +1572,14 @@ M68KMAKE_OP(addx, 8, mm, axy7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1590,14 +1590,14 @@ M68KMAKE_OP(addx, 8, mm, .) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_V = VFLAG_ADD_8(src, dst, res); - FLAG_X = FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->v_flag = VFLAG_ADD_8(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -1608,14 +1608,14 @@ M68KMAKE_OP(addx, 16, mm, .) UINT32 src = OPER_AY_PD_16(m68k); UINT32 ea = EA_AX_PD_16(m68k); UINT32 dst = m68ki_read_16(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_V = VFLAG_ADD_16(src, dst, res); - FLAG_X = FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->v_flag = VFLAG_ADD_16(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_16(m68k, ea, res); } @@ -1626,14 +1626,14 @@ M68KMAKE_OP(addx, 32, mm, .) UINT32 src = OPER_AY_PD_32(m68k); UINT32 ea = EA_AX_PD_32(m68k); UINT32 dst = m68ki_read_32(m68k, ea); - UINT32 res = src + dst + XFLAG_AS_1(); + UINT32 res = src + dst + XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_ADD_32(src, dst, res); - FLAG_X = FLAG_C = CFLAG_ADD_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_ADD_32(src, dst, res); + m68k->x_flag = m68k->c_flag = CFLAG_ADD_32(src, dst, res); res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_32(m68k, ea, res); } @@ -1641,61 +1641,61 @@ M68KMAKE_OP(addx, 32, mm, .) M68KMAKE_OP(and, 8, er, d) { - FLAG_Z = MASK_OUT_ABOVE_8(DX &= (DY | 0xffffff00)); + m68k->not_z_flag = MASK_OUT_ABOVE_8(DX &= (DY | 0xffffff00)); - FLAG_N = NFLAG_8(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(and, 8, er, .) { - FLAG_Z = MASK_OUT_ABOVE_8(DX &= (M68KMAKE_GET_OPER_AY_8 | 0xffffff00)); + m68k->not_z_flag = MASK_OUT_ABOVE_8(DX &= (M68KMAKE_GET_OPER_AY_8 | 0xffffff00)); - FLAG_N = NFLAG_8(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(and, 16, er, d) { - FLAG_Z = MASK_OUT_ABOVE_16(DX &= (DY | 0xffff0000)); + m68k->not_z_flag = MASK_OUT_ABOVE_16(DX &= (DY | 0xffff0000)); - FLAG_N = NFLAG_16(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(and, 16, er, .) { - FLAG_Z = MASK_OUT_ABOVE_16(DX &= (M68KMAKE_GET_OPER_AY_16 | 0xffff0000)); + m68k->not_z_flag = MASK_OUT_ABOVE_16(DX &= (M68KMAKE_GET_OPER_AY_16 | 0xffff0000)); - FLAG_N = NFLAG_16(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(and, 32, er, d) { - FLAG_Z = DX &= DY; + m68k->not_z_flag = DX &= DY; - FLAG_N = NFLAG_32(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(and, 32, er, .) { - FLAG_Z = DX &= M68KMAKE_GET_OPER_AY_32; + m68k->not_z_flag = DX &= M68KMAKE_GET_OPER_AY_32; - FLAG_N = NFLAG_32(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -1704,12 +1704,12 @@ M68KMAKE_OP(and, 8, re, .) UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 res = DX & m68ki_read_8(m68k, ea); - FLAG_N = NFLAG_8(res); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -1718,12 +1718,12 @@ M68KMAKE_OP(and, 16, re, .) UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 res = DX & m68ki_read_16(m68k, ea); - FLAG_N = NFLAG_16(res); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -1732,10 +1732,10 @@ M68KMAKE_OP(and, 32, re, .) UINT32 ea = M68KMAKE_GET_EA_AY_32; UINT32 res = DX & m68ki_read_32(m68k, ea); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; m68ki_write_32(m68k, ea, res); } @@ -1743,11 +1743,11 @@ M68KMAKE_OP(and, 32, re, .) M68KMAKE_OP(andi, 8, ., d) { - FLAG_Z = MASK_OUT_ABOVE_8(DY &= (OPER_I_8(m68k) | 0xffffff00)); + m68k->not_z_flag = MASK_OUT_ABOVE_8(DY &= (OPER_I_8(m68k) | 0xffffff00)); - FLAG_N = NFLAG_8(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -1757,10 +1757,10 @@ M68KMAKE_OP(andi, 8, ., .) UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 res = src & m68ki_read_8(m68k, ea); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; m68ki_write_8(m68k, ea, res); } @@ -1768,11 +1768,11 @@ M68KMAKE_OP(andi, 8, ., .) M68KMAKE_OP(andi, 16, ., d) { - FLAG_Z = MASK_OUT_ABOVE_16(DY &= (OPER_I_16(m68k) | 0xffff0000)); + m68k->not_z_flag = MASK_OUT_ABOVE_16(DY &= (OPER_I_16(m68k) | 0xffff0000)); - FLAG_N = NFLAG_16(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -1782,10 +1782,10 @@ M68KMAKE_OP(andi, 16, ., .) UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 res = src & m68ki_read_16(m68k, ea); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; m68ki_write_16(m68k, ea, res); } @@ -1793,11 +1793,11 @@ M68KMAKE_OP(andi, 16, ., .) M68KMAKE_OP(andi, 32, ., d) { - FLAG_Z = DY &= (OPER_I_32(m68k)); + m68k->not_z_flag = DY &= (OPER_I_32(m68k)); - FLAG_N = NFLAG_32(FLAG_Z); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(m68k->not_z_flag); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -1807,10 +1807,10 @@ M68KMAKE_OP(andi, 32, ., .) UINT32 ea = M68KMAKE_GET_EA_AY_32; UINT32 res = src & m68ki_read_32(m68k, ea); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; m68ki_write_32(m68k, ea, res); } @@ -1824,7 +1824,7 @@ M68KMAKE_OP(andi, 16, toc, .) M68KMAKE_OP(andi, 16, tos, .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 src = OPER_I_16(m68k); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ @@ -1838,7 +1838,7 @@ M68KMAKE_OP(andi, 16, tos, .) M68KMAKE_OP(asr, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src >> shift; @@ -1850,17 +1850,17 @@ M68KMAKE_OP(asr, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_X = FLAG_C = src << (9-shift); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << (9-shift); } M68KMAKE_OP(asr, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src >> shift; @@ -1872,17 +1872,17 @@ M68KMAKE_OP(asr, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_X = FLAG_C = src << (9-shift); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << (9-shift); } M68KMAKE_OP(asr, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; UINT32 res = src >> shift; @@ -1894,10 +1894,10 @@ M68KMAKE_OP(asr, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_X = FLAG_C = src << (9-shift); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << (9-shift); } @@ -1919,37 +1919,37 @@ M68KMAKE_OP(asr, 8, r, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_X = FLAG_C = src << (9-shift); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << (9-shift); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } if(GET_MSB_8(src)) { *r_dst |= 0xff; - FLAG_C = CFLAG_SET; - FLAG_X = XFLAG_SET; - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_SET; + m68k->x_flag = XFLAG_SET; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffffff00; - FLAG_C = CFLAG_CLEAR; - FLAG_X = XFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -1971,37 +1971,37 @@ M68KMAKE_OP(asr, 16, r, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_C = FLAG_X = (src >> (shift - 1))<<8; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (src >> (shift - 1))<<8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } if(GET_MSB_16(src)) { *r_dst |= 0xffff; - FLAG_C = CFLAG_SET; - FLAG_X = XFLAG_SET; - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_SET; + m68k->x_flag = XFLAG_SET; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffff0000; - FLAG_C = CFLAG_CLEAR; - FLAG_X = XFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -2023,37 +2023,37 @@ M68KMAKE_OP(asr, 32, r, .) *r_dst = res; - FLAG_C = FLAG_X = (src >> (shift - 1))<<8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (src >> (shift - 1))<<8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } if(GET_MSB_32(src)) { *r_dst = 0xffffffff; - FLAG_C = CFLAG_SET; - FLAG_X = XFLAG_SET; - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_SET; + m68k->x_flag = XFLAG_SET; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst = 0; - FLAG_C = CFLAG_CLEAR; - FLAG_X = XFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -2068,17 +2068,17 @@ M68KMAKE_OP(asr, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = FLAG_X = src << 8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = src << 8; } M68KMAKE_OP(asl, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = MASK_OUT_ABOVE_8(src << shift); @@ -2087,18 +2087,18 @@ M68KMAKE_OP(asl, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_X = FLAG_C = src << shift; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; + m68k->x_flag = m68k->c_flag = src << shift; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; src &= m68ki_shift_8_table[shift + 1]; - FLAG_V = (!(src == 0 || (src == m68ki_shift_8_table[shift + 1] && shift < 8)))<<7; + m68k->v_flag = (!(src == 0 || (src == m68ki_shift_8_table[shift + 1] && shift < 8)))<<7; } M68KMAKE_OP(asl, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = MASK_OUT_ABOVE_16(src << shift); @@ -2107,18 +2107,18 @@ M68KMAKE_OP(asl, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> (8-shift); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> (8-shift); src &= m68ki_shift_16_table[shift + 1]; - FLAG_V = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; + m68k->v_flag = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; } M68KMAKE_OP(asl, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; UINT32 res = MASK_OUT_ABOVE_32(src << shift); @@ -2127,11 +2127,11 @@ M68KMAKE_OP(asl, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> (24-shift); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> (24-shift); src &= m68ki_shift_32_table[shift + 1]; - FLAG_V = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; + m68k->v_flag = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; } @@ -2149,26 +2149,26 @@ M68KMAKE_OP(asl, 8, r, .) if(shift < 8) { *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_X = FLAG_C = src << shift; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; + m68k->x_flag = m68k->c_flag = src << shift; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; src &= m68ki_shift_8_table[shift + 1]; - FLAG_V = (!(src == 0 || src == m68ki_shift_8_table[shift + 1]))<<7; + m68k->v_flag = (!(src == 0 || src == m68ki_shift_8_table[shift + 1]))<<7; return; } *r_dst &= 0xffffff00; - FLAG_X = FLAG_C = ((shift == 8 ? src & 1 : 0))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = (!(src == 0))<<7; + m68k->x_flag = m68k->c_flag = ((shift == 8 ? src & 1 : 0))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = (!(src == 0))<<7; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -2186,26 +2186,26 @@ M68KMAKE_OP(asl, 16, r, .) if(shift < 16) { *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_X = FLAG_C = (src << shift) >> 8; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; + m68k->x_flag = m68k->c_flag = (src << shift) >> 8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; src &= m68ki_shift_16_table[shift + 1]; - FLAG_V = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; + m68k->v_flag = (!(src == 0 || src == m68ki_shift_16_table[shift + 1]))<<7; return; } *r_dst &= 0xffff0000; - FLAG_X = FLAG_C = ((shift == 16 ? src & 1 : 0))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = (!(src == 0))<<7; + m68k->x_flag = m68k->c_flag = ((shift == 16 ? src & 1 : 0))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = (!(src == 0))<<7; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -2223,26 +2223,26 @@ M68KMAKE_OP(asl, 32, r, .) if(shift < 32) { *r_dst = res; - FLAG_X = FLAG_C = (src >> (32 - shift)) << 8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; + m68k->x_flag = m68k->c_flag = (src >> (32 - shift)) << 8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; src &= m68ki_shift_32_table[shift + 1]; - FLAG_V = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; + m68k->v_flag = (!(src == 0 || src == m68ki_shift_32_table[shift + 1]))<<7; return; } *r_dst = 0; - FLAG_X = FLAG_C = ((shift == 32 ? src & 1 : 0))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = (!(src == 0))<<7; + m68k->x_flag = m68k->c_flag = ((shift == 32 ? src & 1 : 0))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = (!(src == 0))<<7; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -2254,11 +2254,11 @@ M68KMAKE_OP(asl, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> 7; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> 7; src &= 0xc000; - FLAG_V = (!(src == 0 || src == 0xc000))<<7; + m68k->v_flag = (!(src == 0 || src == 0xc000))<<7; } @@ -2267,7 +2267,7 @@ M68KMAKE_OP(bcc, 8, ., .) if(M68KMAKE_CC) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); return; } USE_CYCLES(m68k, m68k->cyc_bcc_notake_b); @@ -2309,7 +2309,7 @@ M68KMAKE_OP(bcc, 32, ., .) if(M68KMAKE_CC) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); return; } USE_CYCLES(m68k, m68k->cyc_bcc_notake_b); @@ -2322,7 +2322,7 @@ M68KMAKE_OP(bchg, 32, r, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (DX & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst ^= mask; } @@ -2333,7 +2333,7 @@ M68KMAKE_OP(bchg, 8, r, .) UINT32 src = m68ki_read_8(m68k, ea); UINT32 mask = 1 << (DX & 7); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src ^ mask); } @@ -2343,7 +2343,7 @@ M68KMAKE_OP(bchg, 32, s, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (OPER_I_8(m68k) & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst ^= mask; } @@ -2354,7 +2354,7 @@ M68KMAKE_OP(bchg, 8, s, .) UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 src = m68ki_read_8(m68k, ea); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src ^ mask); } @@ -2364,7 +2364,7 @@ M68KMAKE_OP(bclr, 32, r, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (DX & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst &= ~mask; } @@ -2375,7 +2375,7 @@ M68KMAKE_OP(bclr, 8, r, .) UINT32 src = m68ki_read_8(m68k, ea); UINT32 mask = 1 << (DX & 7); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src & ~mask); } @@ -2385,7 +2385,7 @@ M68KMAKE_OP(bclr, 32, s, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (OPER_I_8(m68k) & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst &= ~mask; } @@ -2396,7 +2396,7 @@ M68KMAKE_OP(bclr, 8, s, .) UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 src = m68ki_read_8(m68k, ea); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src & ~mask); } @@ -2423,10 +2423,10 @@ M68KMAKE_OP(bfchg, 32, ., d) mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); mask = ROR_32(mask, offset); - FLAG_N = NFLAG_32(*data<<offset); - FLAG_Z = *data & mask; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*data<<offset); + m68k->not_z_flag = *data & mask; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *data ^= mask; @@ -2470,10 +2470,10 @@ M68KMAKE_OP(bfchg, 32, ., .) mask_long = mask_base >> offset; data_long = m68ki_read_32(m68k, ea); - FLAG_N = NFLAG_32(data_long << offset); - FLAG_Z = data_long & mask_long; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(data_long << offset); + m68k->not_z_flag = data_long & mask_long; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; m68ki_write_32(m68k, ea, data_long ^ mask_long); @@ -2481,7 +2481,7 @@ M68KMAKE_OP(bfchg, 32, ., .) { mask_byte = MASK_OUT_ABOVE_8(mask_base); data_byte = m68ki_read_8(m68k, ea+4); - FLAG_Z |= (data_byte & mask_byte); + m68k->not_z_flag |= (data_byte & mask_byte); m68ki_write_8(m68k, ea+4, data_byte ^ mask_byte); } return; @@ -2514,10 +2514,10 @@ M68KMAKE_OP(bfclr, 32, ., d) mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); mask = ROR_32(mask, offset); - FLAG_N = NFLAG_32(*data<<offset); - FLAG_Z = *data & mask; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*data<<offset); + m68k->not_z_flag = *data & mask; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *data &= ~mask; @@ -2561,10 +2561,10 @@ M68KMAKE_OP(bfclr, 32, ., .) mask_long = mask_base >> offset; data_long = m68ki_read_32(m68k, ea); - FLAG_N = NFLAG_32(data_long << offset); - FLAG_Z = data_long & mask_long; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(data_long << offset); + m68k->not_z_flag = data_long & mask_long; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; m68ki_write_32(m68k, ea, data_long & ~mask_long); @@ -2572,7 +2572,7 @@ M68KMAKE_OP(bfclr, 32, ., .) { mask_byte = MASK_OUT_ABOVE_8(mask_base); data_byte = m68ki_read_8(m68k, ea+4); - FLAG_Z |= (data_byte & mask_byte); + m68k->not_z_flag |= (data_byte & mask_byte); m68ki_write_8(m68k, ea+4, data_byte & ~mask_byte); } return; @@ -2600,12 +2600,12 @@ M68KMAKE_OP(bfexts, 32, ., d) width = ((width-1) & 31) + 1; data = ROL_32(data, offset); - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data = MAKE_INT_32(data) >> (32 - width); - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2>>12)&7] = data; @@ -2648,12 +2648,12 @@ M68KMAKE_OP(bfexts, 32, ., .) if((offset+width) > 32) data |= (m68ki_read_8(m68k, ea+4) << offset) >> 8; - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data = MAKE_INT_32(data) >> (32 - width); - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2 >> 12) & 7] = data; @@ -2682,12 +2682,12 @@ M68KMAKE_OP(bfextu, 32, ., d) width = ((width-1) & 31) + 1; data = ROL_32(data, offset); - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data >>= 32 - width; - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2>>12)&7] = data; @@ -2729,12 +2729,12 @@ M68KMAKE_OP(bfextu, 32, ., .) if((offset+width) > 32) data |= (m68ki_read_8(m68k, ea+4) << offset) >> 8; - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data >>= (32 - width); - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2 >> 12) & 7] = data; @@ -2764,12 +2764,12 @@ M68KMAKE_OP(bfffo, 32, ., d) width = ((width-1) & 31) + 1; data = ROL_32(data, offset); - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data >>= 32 - width; - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) offset++; @@ -2816,12 +2816,12 @@ M68KMAKE_OP(bfffo, 32, ., .) if((local_offset+width) > 32) data |= (m68ki_read_8(m68k, ea+4) << local_offset) >> 8; - FLAG_N = NFLAG_32(data); + m68k->n_flag = NFLAG_32(data); data >>= (32 - width); - FLAG_Z = data; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = data; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; for(bit = 1<<(width-1);bit && !(data & bit);bit>>= 1) offset++; @@ -2860,12 +2860,12 @@ M68KMAKE_OP(bfins, 32, ., d) mask = ROR_32(mask, offset); insert = MASK_OUT_ABOVE_32(insert << (32 - width)); - FLAG_N = NFLAG_32(insert); - FLAG_Z = insert; + m68k->n_flag = NFLAG_32(insert); + m68k->not_z_flag = insert; insert = ROR_32(insert, offset); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *data &= ~mask; *data |= insert; @@ -2913,13 +2913,13 @@ M68KMAKE_OP(bfins, 32, ., .) mask_long = mask_base >> offset; insert_base = MASK_OUT_ABOVE_32(insert_base << (32 - width)); - FLAG_N = NFLAG_32(insert_base); - FLAG_Z = insert_base; + m68k->n_flag = NFLAG_32(insert_base); + m68k->not_z_flag = insert_base; insert_long = insert_base >> offset; data_long = m68ki_read_32(m68k, ea); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; m68ki_write_32(m68k, ea, (data_long & ~mask_long) | insert_long); @@ -2928,7 +2928,7 @@ M68KMAKE_OP(bfins, 32, ., .) mask_byte = MASK_OUT_ABOVE_8(mask_base); insert_byte = MASK_OUT_ABOVE_8(insert_base); data_byte = m68ki_read_8(m68k, ea+4); - FLAG_Z |= (data_byte & mask_byte); + m68k->not_z_flag |= (data_byte & mask_byte); m68ki_write_8(m68k, ea+4, (data_byte & ~mask_byte) | insert_byte); } return; @@ -2961,10 +2961,10 @@ M68KMAKE_OP(bfset, 32, ., d) mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); mask = ROR_32(mask, offset); - FLAG_N = NFLAG_32(*data<<offset); - FLAG_Z = *data & mask; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*data<<offset); + m68k->not_z_flag = *data & mask; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *data |= mask; @@ -3009,10 +3009,10 @@ M68KMAKE_OP(bfset, 32, ., .) mask_long = mask_base >> offset; data_long = m68ki_read_32(m68k, ea); - FLAG_N = NFLAG_32(data_long << offset); - FLAG_Z = data_long & mask_long; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(data_long << offset); + m68k->not_z_flag = data_long & mask_long; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; m68ki_write_32(m68k, ea, data_long | mask_long); @@ -3020,7 +3020,7 @@ M68KMAKE_OP(bfset, 32, ., .) { mask_byte = MASK_OUT_ABOVE_8(mask_base); data_byte = m68ki_read_8(m68k, ea+4); - FLAG_Z |= (data_byte & mask_byte); + m68k->not_z_flag |= (data_byte & mask_byte); m68ki_write_8(m68k, ea+4, data_byte | mask_byte); } return; @@ -3053,10 +3053,10 @@ M68KMAKE_OP(bftst, 32, ., d) mask = MASK_OUT_ABOVE_32(0xffffffff << (32 - width)); mask = ROR_32(mask, offset); - FLAG_N = NFLAG_32(*data<<offset); - FLAG_Z = *data & mask; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*data<<offset); + m68k->not_z_flag = *data & mask; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } @@ -3098,16 +3098,16 @@ M68KMAKE_OP(bftst, 32, ., .) mask_long = mask_base >> offset; data_long = m68ki_read_32(m68k, ea); - FLAG_N = ((data_long & (0x80000000 >> offset))<<offset)>>24; - FLAG_Z = data_long & mask_long; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = ((data_long & (0x80000000 >> offset))<<offset)>>24; + m68k->not_z_flag = data_long & mask_long; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; if((width + offset) > 32) { mask_byte = MASK_OUT_ABOVE_8(mask_base); data_byte = m68ki_read_8(m68k, ea+4); - FLAG_Z |= (data_byte & mask_byte); + m68k->not_z_flag |= (data_byte & mask_byte); } return; } @@ -3119,7 +3119,7 @@ M68KMAKE_OP(bkpt, 0, ., .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - (*m68k->bkpt_ack_callback)(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type) ? REG_IR & 7 : 0); + (*m68k->bkpt_ack_callback)(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type) ? m68k->ir & 7 : 0); } m68ki_exception_illegal(m68k); } @@ -3128,7 +3128,7 @@ M68KMAKE_OP(bkpt, 0, ., .) M68KMAKE_OP(bra, 8, ., .) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); if(REG_PC == REG_PPC) USE_ALL_CYCLES(m68k); } @@ -3160,7 +3160,7 @@ M68KMAKE_OP(bra, 32, ., .) else { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); if(REG_PC == REG_PPC) USE_ALL_CYCLES(m68k); } @@ -3172,7 +3172,7 @@ M68KMAKE_OP(bset, 32, r, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (DX & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst |= mask; } @@ -3183,7 +3183,7 @@ M68KMAKE_OP(bset, 8, r, .) UINT32 src = m68ki_read_8(m68k, ea); UINT32 mask = 1 << (DX & 7); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src | mask); } @@ -3193,7 +3193,7 @@ M68KMAKE_OP(bset, 32, s, d) UINT32* r_dst = &DY; UINT32 mask = 1 << (OPER_I_8(m68k) & 0x1f); - FLAG_Z = *r_dst & mask; + m68k->not_z_flag = *r_dst & mask; *r_dst |= mask; } @@ -3204,7 +3204,7 @@ M68KMAKE_OP(bset, 8, s, .) UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 src = m68ki_read_8(m68k, ea); - FLAG_Z = src & mask; + m68k->not_z_flag = src & mask; m68ki_write_8(m68k, ea, src | mask); } @@ -3213,7 +3213,7 @@ M68KMAKE_OP(bsr, 8, ., .) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ m68ki_push_32(m68k, REG_PC); - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); } @@ -3242,26 +3242,26 @@ M68KMAKE_OP(bsr, 32, ., .) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ m68ki_push_32(m68k, REG_PC); - m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(REG_IR)); + m68ki_branch_8(m68k, MASK_OUT_ABOVE_8(m68k->ir)); } } M68KMAKE_OP(btst, 32, r, d) { - FLAG_Z = DY & (1 << (DX & 0x1f)); + m68k->not_z_flag = DY & (1 << (DX & 0x1f)); } M68KMAKE_OP(btst, 8, r, .) { - FLAG_Z = M68KMAKE_GET_OPER_AY_8 & (1 << (DX & 7)); + m68k->not_z_flag = M68KMAKE_GET_OPER_AY_8 & (1 << (DX & 7)); } M68KMAKE_OP(btst, 32, s, d) { - FLAG_Z = DY & (1 << (OPER_I_8(m68k) & 0x1f)); + m68k->not_z_flag = DY & (1 << (OPER_I_8(m68k) & 0x1f)); } @@ -3269,7 +3269,7 @@ M68KMAKE_OP(btst, 8, s, .) { UINT32 bit = OPER_I_8(m68k) & 7; - FLAG_Z = M68KMAKE_GET_OPER_AY_8 & (1 << bit); + m68k->not_z_flag = M68KMAKE_GET_OPER_AY_8 & (1 << bit); } @@ -3284,8 +3284,8 @@ M68KMAKE_OP(callm, 32, ., .) REG_PC += 2; (void)ea; /* just to avoid an 'unused variable' warning */ M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_illegal(m68k); @@ -3303,12 +3303,12 @@ M68KMAKE_OP(cas, 8, ., .) UINT32 res = dest - MASK_OUT_ABOVE_8(*compare); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(*compare, dest, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(*compare, dest, res); + m68k->c_flag = CFLAG_8(res); - if(COND_NE()) + if(COND_NE(m68k)) *compare = MASK_OUT_BELOW_8(*compare) | dest; else { @@ -3332,12 +3332,12 @@ M68KMAKE_OP(cas, 16, ., .) UINT32 res = dest - MASK_OUT_ABOVE_16(*compare); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(*compare, dest, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(*compare, dest, res); + m68k->c_flag = CFLAG_16(res); - if(COND_NE()) + if(COND_NE(m68k)) *compare = MASK_OUT_BELOW_16(*compare) | dest; else { @@ -3361,12 +3361,12 @@ M68KMAKE_OP(cas, 32, ., .) UINT32 res = dest - *compare; m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(*compare, dest, res); - FLAG_C = CFLAG_SUB_32(*compare, dest, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(*compare, dest, res); + m68k->c_flag = CFLAG_SUB_32(*compare, dest, res); - if(COND_NE()) + if(COND_NE(m68k)) *compare = dest; else { @@ -3394,21 +3394,21 @@ M68KMAKE_OP(cas2, 16, ., .) UINT32 res2; m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_16(res1); - FLAG_Z = MASK_OUT_ABOVE_16(res1); - FLAG_V = VFLAG_SUB_16(*compare1, dest1, res1); - FLAG_C = CFLAG_16(res1); + m68k->n_flag = NFLAG_16(res1); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res1); + m68k->v_flag = VFLAG_SUB_16(*compare1, dest1, res1); + m68k->c_flag = CFLAG_16(res1); - if(COND_EQ()) + if(COND_EQ(m68k)) { res2 = dest2 - MASK_OUT_ABOVE_16(*compare2); - FLAG_N = NFLAG_16(res2); - FLAG_Z = MASK_OUT_ABOVE_16(res2); - FLAG_V = VFLAG_SUB_16(*compare2, dest2, res2); - FLAG_C = CFLAG_16(res2); + m68k->n_flag = NFLAG_16(res2); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res2); + m68k->v_flag = VFLAG_SUB_16(*compare2, dest2, res2); + m68k->c_flag = CFLAG_16(res2); - if(COND_EQ()) + if(COND_EQ(m68k)) { USE_CYCLES(m68k, 3); m68ki_write_16(m68k, ea1, REG_D[(word2 >> 22) & 7]); @@ -3439,21 +3439,21 @@ M68KMAKE_OP(cas2, 32, ., .) UINT32 res2; m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_32(res1); - FLAG_Z = MASK_OUT_ABOVE_32(res1); - FLAG_V = VFLAG_SUB_32(*compare1, dest1, res1); - FLAG_C = CFLAG_SUB_32(*compare1, dest1, res1); + m68k->n_flag = NFLAG_32(res1); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res1); + m68k->v_flag = VFLAG_SUB_32(*compare1, dest1, res1); + m68k->c_flag = CFLAG_SUB_32(*compare1, dest1, res1); - if(COND_EQ()) + if(COND_EQ(m68k)) { res2 = dest2 - *compare2; - FLAG_N = NFLAG_32(res2); - FLAG_Z = MASK_OUT_ABOVE_32(res2); - FLAG_V = VFLAG_SUB_32(*compare2, dest2, res2); - FLAG_C = CFLAG_SUB_32(*compare2, dest2, res2); + m68k->n_flag = NFLAG_32(res2); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res2); + m68k->v_flag = VFLAG_SUB_32(*compare2, dest2, res2); + m68k->c_flag = CFLAG_SUB_32(*compare2, dest2, res2); - if(COND_EQ()) + if(COND_EQ(m68k)) { USE_CYCLES(m68k, 3); m68ki_write_32(m68k, ea1, REG_D[(word2 >> 22) & 7]); @@ -3474,15 +3474,15 @@ M68KMAKE_OP(chk, 16, ., d) INT32 src = MAKE_INT_16(DX); INT32 bound = MAKE_INT_16(DY); - FLAG_Z = ZFLAG_16(src); /* Undocumented */ - FLAG_V = VFLAG_CLEAR; /* Undocumented */ - FLAG_C = CFLAG_CLEAR; /* Undocumented */ + m68k->not_z_flag = ZFLAG_16(src); /* Undocumented */ + m68k->v_flag = VFLAG_CLEAR; /* Undocumented */ + m68k->c_flag = CFLAG_CLEAR; /* Undocumented */ if(src >= 0 && src <= bound) { return; } - FLAG_N = (src < 0)<<7; + m68k->n_flag = (src < 0)<<7; m68ki_exception_trap(m68k, EXCEPTION_CHK); } @@ -3492,15 +3492,15 @@ M68KMAKE_OP(chk, 16, ., .) INT32 src = MAKE_INT_16(DX); INT32 bound = MAKE_INT_16(M68KMAKE_GET_OPER_AY_16); - FLAG_Z = ZFLAG_16(src); /* Undocumented */ - FLAG_V = VFLAG_CLEAR; /* Undocumented */ - FLAG_C = CFLAG_CLEAR; /* Undocumented */ + m68k->not_z_flag = ZFLAG_16(src); /* Undocumented */ + m68k->v_flag = VFLAG_CLEAR; /* Undocumented */ + m68k->c_flag = CFLAG_CLEAR; /* Undocumented */ if(src >= 0 && src <= bound) { return; } - FLAG_N = (src < 0)<<7; + m68k->n_flag = (src < 0)<<7; m68ki_exception_trap(m68k, EXCEPTION_CHK); } @@ -3512,15 +3512,15 @@ M68KMAKE_OP(chk, 32, ., d) INT32 src = MAKE_INT_32(DX); INT32 bound = MAKE_INT_32(DY); - FLAG_Z = ZFLAG_32(src); /* Undocumented */ - FLAG_V = VFLAG_CLEAR; /* Undocumented */ - FLAG_C = CFLAG_CLEAR; /* Undocumented */ + m68k->not_z_flag = ZFLAG_32(src); /* Undocumented */ + m68k->v_flag = VFLAG_CLEAR; /* Undocumented */ + m68k->c_flag = CFLAG_CLEAR; /* Undocumented */ if(src >= 0 && src <= bound) { return; } - FLAG_N = (src < 0)<<7; + m68k->n_flag = (src < 0)<<7; m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3535,15 +3535,15 @@ M68KMAKE_OP(chk, 32, ., .) INT32 src = MAKE_INT_32(DX); INT32 bound = MAKE_INT_32(M68KMAKE_GET_OPER_AY_32); - FLAG_Z = ZFLAG_32(src); /* Undocumented */ - FLAG_V = VFLAG_CLEAR; /* Undocumented */ - FLAG_C = CFLAG_CLEAR; /* Undocumented */ + m68k->not_z_flag = ZFLAG_32(src); /* Undocumented */ + m68k->v_flag = VFLAG_CLEAR; /* Undocumented */ + m68k->c_flag = CFLAG_CLEAR; /* Undocumented */ if(src >= 0 && src <= bound) { return; } - FLAG_N = (src < 0)<<7; + m68k->n_flag = (src < 0)<<7; m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3562,19 +3562,19 @@ M68KMAKE_OP(chk2cmp2, 8, ., pcdi) UINT32 upper_bound = m68ki_read_pcrel_8(m68k, ea + 1); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); + m68k->c_flag = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); else - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3593,19 +3593,19 @@ M68KMAKE_OP(chk2cmp2, 8, ., pcix) UINT32 upper_bound = m68ki_read_pcrel_8(m68k, ea + 1); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); + m68k->c_flag = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); else - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3624,19 +3624,19 @@ M68KMAKE_OP(chk2cmp2, 8, ., .) UINT32 upper_bound = m68ki_read_8(m68k, ea + 1); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); + m68k->c_flag = MAKE_INT_8(compare) - MAKE_INT_8(lower_bound); else - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3655,12 +3655,12 @@ M68KMAKE_OP(chk2cmp2, 16, ., pcdi) UINT32 upper_bound = m68ki_read_pcrel_16(m68k, ea + 2); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); + m68k->c_flag = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); else - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); @@ -3668,11 +3668,11 @@ M68KMAKE_OP(chk2cmp2, 16, ., pcdi) } if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); + m68k->c_flag = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); else - FLAG_C = upper_bound - compare; - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3691,12 +3691,12 @@ M68KMAKE_OP(chk2cmp2, 16, ., pcix) UINT32 upper_bound = m68ki_read_pcrel_16(m68k, ea + 2); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); + m68k->c_flag = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); else - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); @@ -3704,11 +3704,11 @@ M68KMAKE_OP(chk2cmp2, 16, ., pcix) } if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); + m68k->c_flag = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); else - FLAG_C = upper_bound - compare; - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3727,25 +3727,25 @@ M68KMAKE_OP(chk2cmp2, 16, ., .) UINT32 upper_bound = m68ki_read_16(m68k, ea + 2); if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); + m68k->c_flag = MAKE_INT_16(compare) - MAKE_INT_16(lower_bound); else - FLAG_C = compare - lower_bound; + m68k->c_flag = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS()) + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } if(!BIT_F(word2)) - FLAG_C = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); + m68k->c_flag = MAKE_INT_16(upper_bound) - MAKE_INT_16(compare); else - FLAG_C = upper_bound - compare; + m68k->c_flag = upper_bound - compare; - FLAG_C = CFLAG_16(FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = CFLAG_16(m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3763,19 +3763,19 @@ M68KMAKE_OP(chk2cmp2, 32, ., pcdi) UINT32 lower_bound = m68ki_read_pcrel_32(m68k, ea); UINT32 upper_bound = m68ki_read_pcrel_32(m68k, ea + 4); - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_SUB_32(lower_bound, compare, m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + m68k->c_flag = CFLAG_SUB_32(compare, upper_bound, m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3793,19 +3793,19 @@ M68KMAKE_OP(chk2cmp2, 32, ., pcix) UINT32 lower_bound = m68ki_read_pcrel_32(m68k, ea); UINT32 upper_bound = m68ki_read_pcrel_32(m68k, ea + 4); - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_SUB_32(lower_bound, compare, m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + m68k->c_flag = CFLAG_SUB_32(compare, upper_bound, m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3823,19 +3823,19 @@ M68KMAKE_OP(chk2cmp2, 32, ., .) UINT32 lower_bound = m68ki_read_32(m68k, ea); UINT32 upper_bound = m68ki_read_32(m68k, ea + 4); - FLAG_C = compare - lower_bound; - FLAG_Z = !((upper_bound==compare) | (lower_bound==compare)); - FLAG_C = CFLAG_SUB_32(lower_bound, compare, FLAG_C); - if(COND_CS()) + m68k->c_flag = compare - lower_bound; + m68k->not_z_flag = !((upper_bound==compare) | (lower_bound==compare)); + m68k->c_flag = CFLAG_SUB_32(lower_bound, compare, m68k->c_flag); + if(COND_CS(m68k)) { if(BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } - FLAG_C = upper_bound - compare; - FLAG_C = CFLAG_SUB_32(compare, upper_bound, FLAG_C); - if(COND_CS() && BIT_B(word2)) + m68k->c_flag = upper_bound - compare; + m68k->c_flag = CFLAG_SUB_32(compare, upper_bound, m68k->c_flag); + if(COND_CS(m68k) && BIT_B(word2)) m68ki_exception_trap(m68k, EXCEPTION_CHK); return; } @@ -3847,10 +3847,10 @@ M68KMAKE_OP(clr, 8, ., d) { DY &= 0xffffff00; - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3858,10 +3858,10 @@ M68KMAKE_OP(clr, 8, ., .) { m68ki_write_8(m68k, M68KMAKE_GET_EA_AY_8, 0); - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3869,10 +3869,10 @@ M68KMAKE_OP(clr, 16, ., d) { DY &= 0xffff0000; - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3880,10 +3880,10 @@ M68KMAKE_OP(clr, 16, ., .) { m68ki_write_16(m68k, M68KMAKE_GET_EA_AY_16, 0); - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3891,10 +3891,10 @@ M68KMAKE_OP(clr, 32, ., d) { DY = 0; - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3902,10 +3902,10 @@ M68KMAKE_OP(clr, 32, ., .) { m68ki_write_32(m68k, M68KMAKE_GET_EA_AY_32, 0); - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; } @@ -3915,10 +3915,10 @@ M68KMAKE_OP(cmp, 8, ., d) UINT32 dst = MASK_OUT_ABOVE_8(DX); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -3928,10 +3928,10 @@ M68KMAKE_OP(cmp, 8, ., .) UINT32 dst = MASK_OUT_ABOVE_8(DX); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -3941,10 +3941,10 @@ M68KMAKE_OP(cmp, 16, ., d) UINT32 dst = MASK_OUT_ABOVE_16(DX); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -3954,10 +3954,10 @@ M68KMAKE_OP(cmp, 16, ., a) UINT32 dst = MASK_OUT_ABOVE_16(DX); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -3967,10 +3967,10 @@ M68KMAKE_OP(cmp, 16, ., .) UINT32 dst = MASK_OUT_ABOVE_16(DX); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -3980,10 +3980,10 @@ M68KMAKE_OP(cmp, 32, ., d) UINT32 dst = DX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -3993,10 +3993,10 @@ M68KMAKE_OP(cmp, 32, ., a) UINT32 dst = DX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4006,10 +4006,10 @@ M68KMAKE_OP(cmp, 32, ., .) UINT32 dst = DX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4019,10 +4019,10 @@ M68KMAKE_OP(cmpa, 16, ., d) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4032,10 +4032,10 @@ M68KMAKE_OP(cmpa, 16, ., a) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4045,10 +4045,10 @@ M68KMAKE_OP(cmpa, 16, ., .) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4058,10 +4058,10 @@ M68KMAKE_OP(cmpa, 32, ., d) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4071,10 +4071,10 @@ M68KMAKE_OP(cmpa, 32, ., a) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4084,10 +4084,10 @@ M68KMAKE_OP(cmpa, 32, ., .) UINT32 dst = AX; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4097,10 +4097,10 @@ M68KMAKE_OP(cmpi, 8, ., d) UINT32 dst = MASK_OUT_ABOVE_8(DY); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4110,10 +4110,10 @@ M68KMAKE_OP(cmpi, 8, ., .) UINT32 dst = M68KMAKE_GET_OPER_AY_8; UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4125,10 +4125,10 @@ M68KMAKE_OP(cmpi, 8, ., pcdi) UINT32 dst = OPER_PCDI_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); return; } m68ki_exception_illegal(m68k); @@ -4143,10 +4143,10 @@ M68KMAKE_OP(cmpi, 8, ., pcix) UINT32 dst = OPER_PCIX_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); return; } m68ki_exception_illegal(m68k); @@ -4159,10 +4159,10 @@ M68KMAKE_OP(cmpi, 16, ., d) UINT32 dst = MASK_OUT_ABOVE_16(DY); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -4172,10 +4172,10 @@ M68KMAKE_OP(cmpi, 16, ., .) UINT32 dst = M68KMAKE_GET_OPER_AY_16; UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -4187,10 +4187,10 @@ M68KMAKE_OP(cmpi, 16, ., pcdi) UINT32 dst = OPER_PCDI_16(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); return; } m68ki_exception_illegal(m68k); @@ -4205,10 +4205,10 @@ M68KMAKE_OP(cmpi, 16, ., pcix) UINT32 dst = OPER_PCIX_16(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); return; } m68ki_exception_illegal(m68k); @@ -4221,12 +4221,12 @@ M68KMAKE_OP(cmpi, 32, ., d) UINT32 dst = DY; UINT32 res = dst - src; - (*m68k->cmpild_instr_callback)(src, REG_IR & 7); /* auto-disable (see m68kcpu.h) */ + (*m68k->cmpild_instr_callback)(src, m68k->ir & 7); /* auto-disable (see m68kcpu.h) */ - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4236,10 +4236,10 @@ M68KMAKE_OP(cmpi, 32, ., .) UINT32 dst = M68KMAKE_GET_OPER_AY_32; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4251,10 +4251,10 @@ M68KMAKE_OP(cmpi, 32, ., pcdi) UINT32 dst = OPER_PCDI_32(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); return; } m68ki_exception_illegal(m68k); @@ -4269,10 +4269,10 @@ M68KMAKE_OP(cmpi, 32, ., pcix) UINT32 dst = OPER_PCIX_32(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); return; } m68ki_exception_illegal(m68k); @@ -4285,10 +4285,10 @@ M68KMAKE_OP(cmpm, 8, ., ax7) UINT32 dst = OPER_A7_PI_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4298,10 +4298,10 @@ M68KMAKE_OP(cmpm, 8, ., ay7) UINT32 dst = OPER_AX_PI_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4311,10 +4311,10 @@ M68KMAKE_OP(cmpm, 8, ., axy7) UINT32 dst = OPER_A7_PI_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4324,10 +4324,10 @@ M68KMAKE_OP(cmpm, 8, ., .) UINT32 dst = OPER_AX_PI_8(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_C = CFLAG_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->c_flag = CFLAG_8(res); } @@ -4337,10 +4337,10 @@ M68KMAKE_OP(cmpm, 16, ., .) UINT32 dst = OPER_AX_PI_16(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_C = CFLAG_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->c_flag = CFLAG_16(res); } @@ -4350,10 +4350,10 @@ M68KMAKE_OP(cmpm, 32, ., .) UINT32 dst = OPER_AX_PI_32(m68k); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_C = CFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->c_flag = CFLAG_SUB_32(src, dst, res); } @@ -4362,8 +4362,8 @@ M68KMAKE_OP(cpbcc, 32, ., .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_1111(m68k); @@ -4375,8 +4375,8 @@ M68KMAKE_OP(cpdbcc, 32, ., .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_1111(m68k); @@ -4388,8 +4388,8 @@ M68KMAKE_OP(cpgen, 32, ., .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_1111(m68k); @@ -4401,8 +4401,8 @@ M68KMAKE_OP(cpscc, 32, ., .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_1111(m68k); @@ -4414,8 +4414,8 @@ M68KMAKE_OP(cptrapcc, 32, ., .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_1111(m68k); @@ -4484,10 +4484,10 @@ M68KMAKE_OP(divs, 16, ., d) { if((UINT32)*r_dst == 0x80000000 && src == -1) { - FLAG_Z = 0; - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = 0; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = 0; return; } @@ -4497,14 +4497,14 @@ M68KMAKE_OP(divs, 16, ., d) if(quotient == MAKE_INT_16(quotient)) { - FLAG_Z = quotient; - FLAG_N = NFLAG_16(quotient); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = quotient; + m68k->n_flag = NFLAG_16(quotient); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); return; } - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4522,10 +4522,10 @@ M68KMAKE_OP(divs, 16, ., .) { if((UINT32)*r_dst == 0x80000000 && src == -1) { - FLAG_Z = 0; - FLAG_N = NFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = 0; + m68k->n_flag = NFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = 0; return; } @@ -4535,14 +4535,14 @@ M68KMAKE_OP(divs, 16, ., .) if(quotient == MAKE_INT_16(quotient)) { - FLAG_Z = quotient; - FLAG_N = NFLAG_16(quotient); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = quotient; + m68k->n_flag = NFLAG_16(quotient); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); return; } - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4561,14 +4561,14 @@ M68KMAKE_OP(divu, 16, ., d) if(quotient < 0x10000) { - FLAG_Z = quotient; - FLAG_N = NFLAG_16(quotient); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = quotient; + m68k->n_flag = NFLAG_16(quotient); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); return; } - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4587,14 +4587,14 @@ M68KMAKE_OP(divu, 16, ., .) if(quotient < 0x10000) { - FLAG_Z = quotient; - FLAG_N = NFLAG_16(quotient); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = quotient; + m68k->n_flag = NFLAG_16(quotient); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst = MASK_OUT_ABOVE_32(MASK_OUT_ABOVE_16(quotient) | (remainder << 16)); return; } - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4627,7 +4627,7 @@ M68KMAKE_OP(divl, 32, ., d) remainder = (UINT64)((INT64)dividend % (INT64)((INT32)divisor)); if((INT64)quotient != (INT64)((INT32)quotient)) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } } @@ -4636,7 +4636,7 @@ M68KMAKE_OP(divl, 32, ., d) quotient = dividend / divisor; if(quotient > 0xffffffff) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } remainder = dividend % divisor; @@ -4660,10 +4660,10 @@ M68KMAKE_OP(divl, 32, ., d) REG_D[word2 & 7] = remainder; REG_D[(word2 >> 12) & 7] = quotient; - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4699,10 +4699,10 @@ M68KMAKE_OP(divl, 32, ., d) REG_D[word2 & 7] = 0; REG_D[(word2 >> 12) & 7] = 0x80000000; - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } if(GET_MSB_32(dividend_hi)) @@ -4722,7 +4722,7 @@ M68KMAKE_OP(divl, 32, ., d) /* if the upper long is greater than the divisor, we're overflowing. */ if(dividend_hi >= divisor) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } @@ -4752,7 +4752,7 @@ M68KMAKE_OP(divl, 32, ., d) { if(quotient > 0x7fffffff) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } if(dividend_neg) @@ -4767,10 +4767,10 @@ M68KMAKE_OP(divl, 32, ., d) REG_D[word2 & 7] = remainder; REG_D[(word2 >> 12) & 7] = quotient; - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } @@ -4780,10 +4780,10 @@ M68KMAKE_OP(divl, 32, ., d) /* Special case in divide */ if(dividend_lo == 0x80000000 && divisor == 0xffffffff) { - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2 >> 12) & 7] = 0x80000000; REG_D[word2 & 7] = 0; return; @@ -4797,10 +4797,10 @@ M68KMAKE_OP(divl, 32, ., d) quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); } - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4838,7 +4838,7 @@ M68KMAKE_OP(divl, 32, ., .) remainder = (UINT64)((INT64)dividend % (INT64)((INT32)divisor)); if((INT64)quotient != (INT64)((INT32)quotient)) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } } @@ -4847,7 +4847,7 @@ M68KMAKE_OP(divl, 32, ., .) quotient = dividend / divisor; if(quotient > 0xffffffff) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } remainder = dividend % divisor; @@ -4871,10 +4871,10 @@ M68KMAKE_OP(divl, 32, ., .) REG_D[word2 & 7] = remainder; REG_D[(word2 >> 12) & 7] = quotient; - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -4910,10 +4910,10 @@ M68KMAKE_OP(divl, 32, ., .) REG_D[word2 & 7] = 0; REG_D[(word2 >> 12) & 7] = 0x80000000; - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } if(GET_MSB_32(dividend_hi)) @@ -4933,7 +4933,7 @@ M68KMAKE_OP(divl, 32, ., .) /* if the upper long is greater than the divisor, we're overflowing. */ if(dividend_hi >= divisor) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } @@ -4963,7 +4963,7 @@ M68KMAKE_OP(divl, 32, ., .) { if(quotient > 0x7fffffff) { - FLAG_V = VFLAG_SET; + m68k->v_flag = VFLAG_SET; return; } if(dividend_neg) @@ -4978,10 +4978,10 @@ M68KMAKE_OP(divl, 32, ., .) REG_D[word2 & 7] = remainder; REG_D[(word2 >> 12) & 7] = quotient; - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } @@ -4991,10 +4991,10 @@ M68KMAKE_OP(divl, 32, ., .) /* Special case in divide */ if(dividend_lo == 0x80000000 && divisor == 0xffffffff) { - FLAG_N = NFLAG_SET; - FLAG_Z = ZFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_SET; + m68k->not_z_flag = ZFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; REG_D[(word2 >> 12) & 7] = 0x80000000; REG_D[word2 & 7] = 0; return; @@ -5008,10 +5008,10 @@ M68KMAKE_OP(divl, 32, ., .) quotient = REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(dividend_lo) / MASK_OUT_ABOVE_32(divisor); } - FLAG_N = NFLAG_32(quotient); - FLAG_Z = quotient; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(quotient); + m68k->not_z_flag = quotient; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_trap(m68k, EXCEPTION_ZERO_DIVIDE); @@ -5027,10 +5027,10 @@ M68KMAKE_OP(eor, 8, ., d) { UINT32 res = MASK_OUT_ABOVE_8(DY ^= MASK_OUT_ABOVE_8(DX)); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5041,10 +5041,10 @@ M68KMAKE_OP(eor, 8, ., .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5052,10 +5052,10 @@ M68KMAKE_OP(eor, 16, ., d) { UINT32 res = MASK_OUT_ABOVE_16(DY ^= MASK_OUT_ABOVE_16(DX)); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5066,10 +5066,10 @@ M68KMAKE_OP(eor, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5077,10 +5077,10 @@ M68KMAKE_OP(eor, 32, ., d) { UINT32 res = DY ^= DX; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5091,10 +5091,10 @@ M68KMAKE_OP(eor, 32, ., .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5102,10 +5102,10 @@ M68KMAKE_OP(eori, 8, ., d) { UINT32 res = MASK_OUT_ABOVE_8(DY ^= OPER_I_8(m68k)); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5117,10 +5117,10 @@ M68KMAKE_OP(eori, 8, ., .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5128,10 +5128,10 @@ M68KMAKE_OP(eori, 16, ., d) { UINT32 res = MASK_OUT_ABOVE_16(DY ^= OPER_I_16(m68k)); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5143,10 +5143,10 @@ M68KMAKE_OP(eori, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5154,10 +5154,10 @@ M68KMAKE_OP(eori, 32, ., d) { UINT32 res = DY ^= OPER_I_32(m68k); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5169,10 +5169,10 @@ M68KMAKE_OP(eori, 32, ., .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -5184,7 +5184,7 @@ M68KMAKE_OP(eori, 16, toc, .) M68KMAKE_OP(eori, 16, tos, .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 src = OPER_I_16(m68k); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ @@ -5231,10 +5231,10 @@ M68KMAKE_OP(ext, 16, ., .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | MASK_OUT_ABOVE_8(*r_dst) | (GET_MSB_8(*r_dst) ? 0xff00 : 0); - FLAG_N = NFLAG_16(*r_dst); - FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(*r_dst); + m68k->not_z_flag = MASK_OUT_ABOVE_16(*r_dst); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5244,10 +5244,10 @@ M68KMAKE_OP(ext, 32, ., .) *r_dst = MASK_OUT_ABOVE_16(*r_dst) | (GET_MSB_16(*r_dst) ? 0xffff0000 : 0); - FLAG_N = NFLAG_32(*r_dst); - FLAG_Z = *r_dst; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*r_dst); + m68k->not_z_flag = *r_dst; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5259,10 +5259,10 @@ M68KMAKE_OP(extb, 32, ., .) *r_dst = MASK_OUT_ABOVE_8(*r_dst) | (GET_MSB_8(*r_dst) ? 0xffffff00 : 0); - FLAG_N = NFLAG_32(*r_dst); - FLAG_Z = *r_dst; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(*r_dst); + m68k->not_z_flag = *r_dst; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -5347,7 +5347,7 @@ M68KMAKE_OP(link, 32, ., .) M68KMAKE_OP(lsr, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = src >> shift; @@ -5356,17 +5356,17 @@ M68KMAKE_OP(lsr, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_X = FLAG_C = src << (9-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src << (9-shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(lsr, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = src >> shift; @@ -5375,17 +5375,17 @@ M68KMAKE_OP(lsr, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_X = FLAG_C = src << (9-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src << (9-shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(lsr, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; UINT32 res = src >> shift; @@ -5394,10 +5394,10 @@ M68KMAKE_OP(lsr, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_X = FLAG_C = src << (9-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src << (9-shift); + m68k->v_flag = VFLAG_CLEAR; } @@ -5415,26 +5415,26 @@ M68KMAKE_OP(lsr, 8, r, .) if(shift <= 8) { *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_X = FLAG_C = src << (9-shift); - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << (9-shift); + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffffff00; - FLAG_X = XFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5452,26 +5452,26 @@ M68KMAKE_OP(lsr, 16, r, .) if(shift <= 16) { *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_C = FLAG_X = (src >> (shift - 1))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (src >> (shift - 1))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffff0000; - FLAG_X = XFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5489,25 +5489,25 @@ M68KMAKE_OP(lsr, 32, r, .) if(shift < 32) { *r_dst = res; - FLAG_C = FLAG_X = (src >> (shift - 1))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (src >> (shift - 1))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst = 0; - FLAG_X = FLAG_C = (shift == 32 ? GET_MSB_32(src)>>23 : 0); - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = (shift == 32 ? GET_MSB_32(src)>>23 : 0); + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5519,17 +5519,17 @@ M68KMAKE_OP(lsr, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_CLEAR; - FLAG_Z = res; - FLAG_C = FLAG_X = src << 8; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->c_flag = m68k->x_flag = src << 8; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(lsl, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = MASK_OUT_ABOVE_8(src << shift); @@ -5538,17 +5538,17 @@ M68KMAKE_OP(lsl, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src << shift; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src << shift; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(lsl, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = MASK_OUT_ABOVE_16(src << shift); @@ -5557,17 +5557,17 @@ M68KMAKE_OP(lsl, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> (8-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> (8-shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(lsl, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; UINT32 res = MASK_OUT_ABOVE_32(src << shift); @@ -5576,10 +5576,10 @@ M68KMAKE_OP(lsl, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> (24-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> (24-shift); + m68k->v_flag = VFLAG_CLEAR; } @@ -5597,26 +5597,26 @@ M68KMAKE_OP(lsl, 8, r, .) if(shift <= 8) { *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_X = FLAG_C = src << shift; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = src << shift; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffffff00; - FLAG_X = XFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5634,26 +5634,26 @@ M68KMAKE_OP(lsl, 16, r, .) if(shift <= 16) { *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_X = FLAG_C = (src << shift) >> 8; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = (src << shift) >> 8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst &= 0xffff0000; - FLAG_X = XFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5671,25 +5671,25 @@ M68KMAKE_OP(lsl, 32, r, .) if(shift < 32) { *r_dst = res; - FLAG_X = FLAG_C = (src >> (32 - shift)) << 8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = (src >> (32 - shift)) << 8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } *r_dst = 0; - FLAG_X = FLAG_C = ((shift == 32 ? src & 1 : 0))<<8; - FLAG_N = NFLAG_CLEAR; - FLAG_Z = ZFLAG_SET; - FLAG_V = VFLAG_CLEAR; + m68k->x_flag = m68k->c_flag = ((shift == 32 ? src & 1 : 0))<<8; + m68k->n_flag = NFLAG_CLEAR; + m68k->not_z_flag = ZFLAG_SET; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -5701,10 +5701,10 @@ M68KMAKE_OP(lsl, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_X = FLAG_C = src >> 7; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->x_flag = m68k->c_flag = src >> 7; + m68k->v_flag = VFLAG_CLEAR; } @@ -5715,10 +5715,10 @@ M68KMAKE_OP(move, 8, d, d) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5729,10 +5729,10 @@ M68KMAKE_OP(move, 8, d, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5743,10 +5743,10 @@ M68KMAKE_OP(move, 8, ai, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5757,10 +5757,10 @@ M68KMAKE_OP(move, 8, ai, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5771,10 +5771,10 @@ M68KMAKE_OP(move, 8, pi7, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5785,10 +5785,10 @@ M68KMAKE_OP(move, 8, pi, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5799,10 +5799,10 @@ M68KMAKE_OP(move, 8, pi7, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5813,10 +5813,10 @@ M68KMAKE_OP(move, 8, pi, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5827,10 +5827,10 @@ M68KMAKE_OP(move, 8, pd7, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5841,10 +5841,10 @@ M68KMAKE_OP(move, 8, pd, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5855,10 +5855,10 @@ M68KMAKE_OP(move, 8, pd7, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5869,10 +5869,10 @@ M68KMAKE_OP(move, 8, pd, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5883,10 +5883,10 @@ M68KMAKE_OP(move, 8, di, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5897,10 +5897,10 @@ M68KMAKE_OP(move, 8, di, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5911,10 +5911,10 @@ M68KMAKE_OP(move, 8, ix, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5925,10 +5925,10 @@ M68KMAKE_OP(move, 8, ix, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5939,10 +5939,10 @@ M68KMAKE_OP(move, 8, aw, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5953,10 +5953,10 @@ M68KMAKE_OP(move, 8, aw, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5967,10 +5967,10 @@ M68KMAKE_OP(move, 8, al, d) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5981,10 +5981,10 @@ M68KMAKE_OP(move, 8, al, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -5995,10 +5995,10 @@ M68KMAKE_OP(move, 16, d, d) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6009,10 +6009,10 @@ M68KMAKE_OP(move, 16, d, a) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6023,10 +6023,10 @@ M68KMAKE_OP(move, 16, d, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6037,10 +6037,10 @@ M68KMAKE_OP(move, 16, ai, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6051,10 +6051,10 @@ M68KMAKE_OP(move, 16, ai, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6065,10 +6065,10 @@ M68KMAKE_OP(move, 16, ai, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6079,10 +6079,10 @@ M68KMAKE_OP(move, 16, pi, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6093,10 +6093,10 @@ M68KMAKE_OP(move, 16, pi, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6107,10 +6107,10 @@ M68KMAKE_OP(move, 16, pi, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6121,10 +6121,10 @@ M68KMAKE_OP(move, 16, pd, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6135,10 +6135,10 @@ M68KMAKE_OP(move, 16, pd, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6149,10 +6149,10 @@ M68KMAKE_OP(move, 16, pd, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6163,10 +6163,10 @@ M68KMAKE_OP(move, 16, di, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6177,10 +6177,10 @@ M68KMAKE_OP(move, 16, di, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6191,10 +6191,10 @@ M68KMAKE_OP(move, 16, di, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6205,10 +6205,10 @@ M68KMAKE_OP(move, 16, ix, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6219,10 +6219,10 @@ M68KMAKE_OP(move, 16, ix, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6233,10 +6233,10 @@ M68KMAKE_OP(move, 16, ix, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6247,10 +6247,10 @@ M68KMAKE_OP(move, 16, aw, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6261,10 +6261,10 @@ M68KMAKE_OP(move, 16, aw, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6275,10 +6275,10 @@ M68KMAKE_OP(move, 16, aw, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6289,10 +6289,10 @@ M68KMAKE_OP(move, 16, al, d) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6303,10 +6303,10 @@ M68KMAKE_OP(move, 16, al, a) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6317,10 +6317,10 @@ M68KMAKE_OP(move, 16, al, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6331,10 +6331,10 @@ M68KMAKE_OP(move, 32, d, d) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6345,10 +6345,10 @@ M68KMAKE_OP(move, 32, d, a) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6359,10 +6359,10 @@ M68KMAKE_OP(move, 32, d, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6373,10 +6373,10 @@ M68KMAKE_OP(move, 32, ai, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6387,10 +6387,10 @@ M68KMAKE_OP(move, 32, ai, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6401,10 +6401,10 @@ M68KMAKE_OP(move, 32, ai, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6415,10 +6415,10 @@ M68KMAKE_OP(move, 32, pi, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6429,10 +6429,10 @@ M68KMAKE_OP(move, 32, pi, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6443,10 +6443,10 @@ M68KMAKE_OP(move, 32, pi, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6458,10 +6458,10 @@ M68KMAKE_OP(move, 32, pd, d) m68ki_write_16(m68k, ea+2, res & 0xFFFF ); m68ki_write_16(m68k, ea, (res >> 16) & 0xFFFF ); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6473,10 +6473,10 @@ M68KMAKE_OP(move, 32, pd, a) m68ki_write_16(m68k, ea+2, res & 0xFFFF ); m68ki_write_16(m68k, ea, (res >> 16) & 0xFFFF ); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6488,10 +6488,10 @@ M68KMAKE_OP(move, 32, pd, .) m68ki_write_16(m68k, ea+2, res & 0xFFFF ); m68ki_write_16(m68k, ea, (res >> 16) & 0xFFFF ); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6502,10 +6502,10 @@ M68KMAKE_OP(move, 32, di, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6516,10 +6516,10 @@ M68KMAKE_OP(move, 32, di, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6530,10 +6530,10 @@ M68KMAKE_OP(move, 32, di, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6544,10 +6544,10 @@ M68KMAKE_OP(move, 32, ix, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6558,10 +6558,10 @@ M68KMAKE_OP(move, 32, ix, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6572,10 +6572,10 @@ M68KMAKE_OP(move, 32, ix, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6586,10 +6586,10 @@ M68KMAKE_OP(move, 32, aw, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6600,10 +6600,10 @@ M68KMAKE_OP(move, 32, aw, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6614,10 +6614,10 @@ M68KMAKE_OP(move, 32, aw, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6628,10 +6628,10 @@ M68KMAKE_OP(move, 32, al, d) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6642,10 +6642,10 @@ M68KMAKE_OP(move, 32, al, a) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6656,10 +6656,10 @@ M68KMAKE_OP(move, 32, al, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -6735,7 +6735,7 @@ M68KMAKE_OP(move, 16, toc, .) M68KMAKE_OP(move, 16, frs, d) { - if(CPU_TYPE_IS_000(m68k->cpu_type) || FLAG_S) /* NS990408 */ + if(CPU_TYPE_IS_000(m68k->cpu_type) || m68k->s_flag) /* NS990408 */ { DY = MASK_OUT_BELOW_16(DY) | m68ki_get_sr(m68k); return; @@ -6746,7 +6746,7 @@ M68KMAKE_OP(move, 16, frs, d) M68KMAKE_OP(move, 16, frs, .) { - if(CPU_TYPE_IS_000(m68k->cpu_type) || FLAG_S) /* NS990408 */ + if(CPU_TYPE_IS_000(m68k->cpu_type) || m68k->s_flag) /* NS990408 */ { UINT32 ea = M68KMAKE_GET_EA_AY_16; m68ki_write_16(m68k, ea, m68ki_get_sr(m68k)); @@ -6758,7 +6758,7 @@ M68KMAKE_OP(move, 16, frs, .) M68KMAKE_OP(move, 16, tos, d) { - if(FLAG_S) + if(m68k->s_flag) { m68ki_set_sr(m68k, DY); return; @@ -6769,7 +6769,7 @@ M68KMAKE_OP(move, 16, tos, d) M68KMAKE_OP(move, 16, tos, .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 new_sr = M68KMAKE_GET_OPER_AY_16; m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ @@ -6782,7 +6782,7 @@ M68KMAKE_OP(move, 16, tos, .) M68KMAKE_OP(move, 32, fru, .) { - if(FLAG_S) + if(m68k->s_flag) { AY = REG_USP; return; @@ -6793,7 +6793,7 @@ M68KMAKE_OP(move, 32, fru, .) M68KMAKE_OP(move, 32, tou, .) { - if(FLAG_S) + if(m68k->s_flag) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ REG_USP = AY; @@ -6807,7 +6807,7 @@ M68KMAKE_OP(movec, 32, cr, .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 word2 = OPER_I_16(m68k); @@ -6815,15 +6815,15 @@ M68KMAKE_OP(movec, 32, cr, .) switch (word2 & 0xfff) { case 0x000: /* SFC */ - REG_DA[(word2 >> 12) & 15] = REG_SFC; + REG_DA[(word2 >> 12) & 15] = m68k->sfc; return; case 0x001: /* DFC */ - REG_DA[(word2 >> 12) & 15] = REG_DFC; + REG_DA[(word2 >> 12) & 15] = m68k->dfc; return; case 0x002: /* CACR */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - REG_DA[(word2 >> 12) & 15] = REG_CACR; + REG_DA[(word2 >> 12) & 15] = m68k->cacr; return; } return; @@ -6831,12 +6831,12 @@ M68KMAKE_OP(movec, 32, cr, .) REG_DA[(word2 >> 12) & 15] = REG_USP; return; case 0x801: /* VBR */ - REG_DA[(word2 >> 12) & 15] = REG_VBR; + REG_DA[(word2 >> 12) & 15] = m68k->vbr; return; case 0x802: /* CAAR */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - REG_DA[(word2 >> 12) & 15] = REG_CAAR; + REG_DA[(word2 >> 12) & 15] = m68k->caar; return; } m68ki_exception_illegal(m68k); @@ -6844,7 +6844,7 @@ M68KMAKE_OP(movec, 32, cr, .) case 0x803: /* MSP */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - REG_DA[(word2 >> 12) & 15] = FLAG_M ? REG_SP : REG_MSP; + REG_DA[(word2 >> 12) & 15] = m68k->m_flag ? REG_SP : REG_MSP; return; } m68ki_exception_illegal(m68k); @@ -6852,7 +6852,7 @@ M68KMAKE_OP(movec, 32, cr, .) case 0x804: /* ISP */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - REG_DA[(word2 >> 12) & 15] = FLAG_M ? REG_ISP : REG_SP; + REG_DA[(word2 >> 12) & 15] = m68k->m_flag ? REG_ISP : REG_SP; return; } m68ki_exception_illegal(m68k); @@ -6937,7 +6937,7 @@ M68KMAKE_OP(movec, 32, rc, .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 word2 = OPER_I_16(m68k); @@ -6945,22 +6945,22 @@ M68KMAKE_OP(movec, 32, rc, .) switch (word2 & 0xfff) { case 0x000: /* SFC */ - REG_SFC = REG_DA[(word2 >> 12) & 15] & 7; + m68k->sfc = REG_DA[(word2 >> 12) & 15] & 7; return; case 0x001: /* DFC */ - REG_DFC = REG_DA[(word2 >> 12) & 15] & 7; + m68k->dfc = REG_DA[(word2 >> 12) & 15] & 7; return; case 0x002: /* CACR */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { if (CPU_TYPE_IS_040_PLUS(m68k->cpu_type)) { - REG_CACR = REG_DA[(word2 >> 12) & 15]; + m68k->cacr = REG_DA[(word2 >> 12) & 15]; } else { /* non 68040 can only set the lower 4 bits (C,CE,F,E) */ - REG_CACR = REG_DA[(word2 >> 12) & 15] & 0x0f; + m68k->cacr = REG_DA[(word2 >> 12) & 15] & 0x0f; } return; } @@ -6970,12 +6970,12 @@ M68KMAKE_OP(movec, 32, rc, .) REG_USP = REG_DA[(word2 >> 12) & 15]; return; case 0x801: /* VBR */ - REG_VBR = REG_DA[(word2 >> 12) & 15]; + m68k->vbr = REG_DA[(word2 >> 12) & 15]; return; case 0x802: /* CAAR */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - REG_CAAR = REG_DA[(word2 >> 12) & 15]; + m68k->caar = REG_DA[(word2 >> 12) & 15]; return; } m68ki_exception_illegal(m68k); @@ -6984,7 +6984,7 @@ M68KMAKE_OP(movec, 32, rc, .) if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { /* we are in supervisor mode so just check for M flag */ - if(!FLAG_M) + if(!m68k->m_flag) { REG_MSP = REG_DA[(word2 >> 12) & 15]; return; @@ -6997,7 +6997,7 @@ M68KMAKE_OP(movec, 32, rc, .) case 0x804: /* ISP */ if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - if(!FLAG_M) + if(!m68k->m_flag) { REG_SP = REG_DA[(word2 >> 12) & 15]; return; @@ -7360,7 +7360,7 @@ M68KMAKE_OP(moves, 8, ., .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 word2 = OPER_I_16(m68k); UINT32 ea = M68KMAKE_GET_EA_AY_8; @@ -7368,18 +7368,18 @@ M68KMAKE_OP(moves, 8, ., .) m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ if(BIT_B(word2)) /* Register to memory */ { - m68ki_write_8_fc(m68k, ea, REG_DFC, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); + m68ki_write_8_fc(m68k, ea, m68k->dfc, MASK_OUT_ABOVE_8(REG_DA[(word2 >> 12) & 15])); return; } if(BIT_F(word2)) /* Memory to address register */ { - REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(m68k, ea, REG_SFC)); + REG_A[(word2 >> 12) & 7] = MAKE_INT_8(m68ki_read_8_fc(m68k, ea, m68k->sfc)); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; } /* Memory to data register */ - REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(m68k, ea, REG_SFC); + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_8(REG_D[(word2 >> 12) & 7]) | m68ki_read_8_fc(m68k, ea, m68k->sfc); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; @@ -7395,7 +7395,7 @@ M68KMAKE_OP(moves, 16, ., .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 word2 = OPER_I_16(m68k); UINT32 ea = M68KMAKE_GET_EA_AY_16; @@ -7403,18 +7403,18 @@ M68KMAKE_OP(moves, 16, ., .) m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ if(BIT_B(word2)) /* Register to memory */ { - m68ki_write_16_fc(m68k, ea, REG_DFC, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); + m68ki_write_16_fc(m68k, ea, m68k->dfc, MASK_OUT_ABOVE_16(REG_DA[(word2 >> 12) & 15])); return; } if(BIT_F(word2)) /* Memory to address register */ { - REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(m68k, ea, REG_SFC)); + REG_A[(word2 >> 12) & 7] = MAKE_INT_16(m68ki_read_16_fc(m68k, ea, m68k->sfc)); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; } /* Memory to data register */ - REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(m68k, ea, REG_SFC); + REG_D[(word2 >> 12) & 7] = MASK_OUT_BELOW_16(REG_D[(word2 >> 12) & 7]) | m68ki_read_16_fc(m68k, ea, m68k->sfc); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; @@ -7430,7 +7430,7 @@ M68KMAKE_OP(moves, 32, ., .) { if(CPU_TYPE_IS_010_PLUS(m68k->cpu_type)) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 word2 = OPER_I_16(m68k); UINT32 ea = M68KMAKE_GET_EA_AY_32; @@ -7438,13 +7438,13 @@ M68KMAKE_OP(moves, 32, ., .) m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ if(BIT_B(word2)) /* Register to memory */ { - m68ki_write_32_fc(m68k, ea, REG_DFC, REG_DA[(word2 >> 12) & 15]); + m68ki_write_32_fc(m68k, ea, m68k->dfc, REG_DA[(word2 >> 12) & 15]); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; } /* Memory to register */ - REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(m68k, ea, REG_SFC); + REG_DA[(word2 >> 12) & 15] = m68ki_read_32_fc(m68k, ea, m68k->sfc); if(CPU_TYPE_IS_020_VARIANT(m68k->cpu_type)) USE_CYCLES(m68k, 2); return; @@ -7458,19 +7458,19 @@ M68KMAKE_OP(moves, 32, ., .) M68KMAKE_OP(moveq, 32, ., .) { - UINT32 res = DX = MAKE_INT_8(MASK_OUT_ABOVE_8(REG_IR)); + UINT32 res = DX = MAKE_INT_8(MASK_OUT_ABOVE_8(m68k->ir)); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } M68KMAKE_OP(move16, 32, ., .) { UINT16 w2 = OPER_I_16(m68k); - int ax = REG_IR & 7; + int ax = m68k->ir & 7; int ay = (w2 >> 12) & 7; m68ki_write_32(m68k, REG_A[ay], m68ki_read_32(m68k, REG_A[ax])); @@ -7490,10 +7490,10 @@ M68KMAKE_OP(muls, 16, ., d) *r_dst = res; - FLAG_Z = res; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -7504,10 +7504,10 @@ M68KMAKE_OP(muls, 16, ., .) *r_dst = res; - FLAG_Z = res; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -7518,10 +7518,10 @@ M68KMAKE_OP(mulu, 16, ., d) *r_dst = res; - FLAG_Z = res; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -7532,10 +7532,10 @@ M68KMAKE_OP(mulu, 16, ., .) *r_dst = res; - FLAG_Z = res; - FLAG_N = NFLAG_32(res); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = res; + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -7550,22 +7550,22 @@ M68KMAKE_OP(mull, 32, ., d) UINT64 dst = REG_D[(word2 >> 12) & 7]; UINT64 res; - FLAG_C = CFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; if(BIT_B(word2)) /* signed */ { res = (INT64)((INT32)src) * (INT64)((INT32)dst); if(!BIT_A(word2)) { - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_N = NFLAG_32(res); - FLAG_V = ((INT64)res != (INT32)res)<<7; - REG_D[(word2 >> 12) & 7] = FLAG_Z; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = ((INT64)res != (INT32)res)<<7; + REG_D[(word2 >> 12) & 7] = m68k->not_z_flag; return; } - FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); - FLAG_N = NFLAG_64(res); - FLAG_V = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res) | (res>>32); + m68k->n_flag = NFLAG_64(res); + m68k->v_flag = VFLAG_CLEAR; REG_D[word2 & 7] = (res >> 32); REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); return; @@ -7574,15 +7574,15 @@ M68KMAKE_OP(mull, 32, ., d) res = src * dst; if(!BIT_A(word2)) { - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_N = NFLAG_32(res); - FLAG_V = (res > 0xffffffff)<<7; - REG_D[(word2 >> 12) & 7] = FLAG_Z; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = m68k->not_z_flag; return; } - FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); - FLAG_N = NFLAG_64(res); - FLAG_V = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res) | (res>>32); + m68k->n_flag = NFLAG_64(res); + m68k->v_flag = VFLAG_CLEAR; REG_D[word2 & 7] = (res >> 32); REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); return; @@ -7608,7 +7608,7 @@ M68KMAKE_OP(mull, 32, ., d) UINT32 lo; UINT32 hi; - FLAG_C = CFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; if(BIT_B(word2)) /* signed */ { @@ -7642,19 +7642,19 @@ M68KMAKE_OP(mull, 32, ., d) { REG_D[word2 & 7] = hi; REG_D[(word2 >> 12) & 7] = lo; - FLAG_N = NFLAG_32(hi); - FLAG_Z = hi | lo; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(hi); + m68k->not_z_flag = hi | lo; + m68k->v_flag = VFLAG_CLEAR; return; } REG_D[(word2 >> 12) & 7] = lo; - FLAG_N = NFLAG_32(lo); - FLAG_Z = lo; + m68k->n_flag = NFLAG_32(lo); + m68k->not_z_flag = lo; if(BIT_B(word2)) - FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + m68k->v_flag = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; else - FLAG_V = (hi != 0) << 7; + m68k->v_flag = (hi != 0) << 7; return; } m68ki_exception_illegal(m68k); @@ -7674,22 +7674,22 @@ M68KMAKE_OP(mull, 32, ., .) UINT64 dst = REG_D[(word2 >> 12) & 7]; UINT64 res; - FLAG_C = CFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; if(BIT_B(word2)) /* signed */ { res = (INT64)((INT32)src) * (INT64)((INT32)dst); if(!BIT_A(word2)) { - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_N = NFLAG_32(res); - FLAG_V = ((INT64)res != (INT32)res)<<7; - REG_D[(word2 >> 12) & 7] = FLAG_Z; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = ((INT64)res != (INT32)res)<<7; + REG_D[(word2 >> 12) & 7] = m68k->not_z_flag; return; } - FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); - FLAG_N = NFLAG_64(res); - FLAG_V = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res) | (res>>32); + m68k->n_flag = NFLAG_64(res); + m68k->v_flag = VFLAG_CLEAR; REG_D[word2 & 7] = (res >> 32); REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); return; @@ -7698,15 +7698,15 @@ M68KMAKE_OP(mull, 32, ., .) res = src * dst; if(!BIT_A(word2)) { - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_N = NFLAG_32(res); - FLAG_V = (res > 0xffffffff)<<7; - REG_D[(word2 >> 12) & 7] = FLAG_Z; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->v_flag = (res > 0xffffffff)<<7; + REG_D[(word2 >> 12) & 7] = m68k->not_z_flag; return; } - FLAG_Z = MASK_OUT_ABOVE_32(res) | (res>>32); - FLAG_N = NFLAG_64(res); - FLAG_V = VFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res) | (res>>32); + m68k->n_flag = NFLAG_64(res); + m68k->v_flag = VFLAG_CLEAR; REG_D[word2 & 7] = (res >> 32); REG_D[(word2 >> 12) & 7] = MASK_OUT_ABOVE_32(res); return; @@ -7732,7 +7732,7 @@ M68KMAKE_OP(mull, 32, ., .) UINT32 lo; UINT32 hi; - FLAG_C = CFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; if(BIT_B(word2)) /* signed */ { @@ -7766,19 +7766,19 @@ M68KMAKE_OP(mull, 32, ., .) { REG_D[word2 & 7] = hi; REG_D[(word2 >> 12) & 7] = lo; - FLAG_N = NFLAG_32(hi); - FLAG_Z = hi | lo; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(hi); + m68k->not_z_flag = hi | lo; + m68k->v_flag = VFLAG_CLEAR; return; } REG_D[(word2 >> 12) & 7] = lo; - FLAG_N = NFLAG_32(lo); - FLAG_Z = lo; + m68k->n_flag = NFLAG_32(lo); + m68k->not_z_flag = lo; if(BIT_B(word2)) - FLAG_V = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; + m68k->v_flag = (!((GET_MSB_32(lo) && hi == 0xffffffff) || (!GET_MSB_32(lo) && !hi)))<<7; else - FLAG_V = (hi != 0) << 7; + m68k->v_flag = (hi != 0) << 7; return; } m68ki_exception_illegal(m68k); @@ -7791,32 +7791,32 @@ M68KMAKE_OP(nbcd, 8, ., d) { UINT32* r_dst = &DY; UINT32 dst = *r_dst; - UINT32 res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + UINT32 res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1(m68k)); if(res != 0x9a) { - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res = MASK_OUT_ABOVE_8(res); - FLAG_V &= res; /* Undefined V behavior part II */ + m68k->v_flag &= res; /* Undefined V behavior part II */ *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_Z |= res; - FLAG_C = CFLAG_SET; - FLAG_X = XFLAG_SET; + m68k->not_z_flag |= res; + m68k->c_flag = CFLAG_SET; + m68k->x_flag = XFLAG_SET; } else { - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_X = XFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; } - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ } @@ -7824,32 +7824,32 @@ M68KMAKE_OP(nbcd, 8, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1()); + UINT32 res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1(m68k)); if(res != 0x9a) { - FLAG_V = ~res; /* Undefined V behavior */ + m68k->v_flag = ~res; /* Undefined V behavior */ if((res & 0x0f) == 0xa) res = (res & 0xf0) + 0x10; res = MASK_OUT_ABOVE_8(res); - FLAG_V &= res; /* Undefined V behavior part II */ + m68k->v_flag &= res; /* Undefined V behavior part II */ m68ki_write_8(m68k, ea, MASK_OUT_ABOVE_8(res)); - FLAG_Z |= res; - FLAG_C = CFLAG_SET; - FLAG_X = XFLAG_SET; + m68k->not_z_flag |= res; + m68k->c_flag = CFLAG_SET; + m68k->x_flag = XFLAG_SET; } else { - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; - FLAG_X = XFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->x_flag = XFLAG_CLEAR; } - FLAG_N = NFLAG_8(res); /* Undefined N behavior */ + m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ } @@ -7858,12 +7858,12 @@ M68KMAKE_OP(neg, 8, ., d) UINT32* r_dst = &DY; UINT32 res = 0 - MASK_OUT_ABOVE_8(*r_dst); - FLAG_N = NFLAG_8(res); - FLAG_C = FLAG_X = CFLAG_8(res); - FLAG_V = *r_dst & res; - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->c_flag = m68k->x_flag = CFLAG_8(res); + m68k->v_flag = *r_dst & res; + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -7873,12 +7873,12 @@ M68KMAKE_OP(neg, 8, ., .) UINT32 src = m68ki_read_8(m68k, ea); UINT32 res = 0 - src; - FLAG_N = NFLAG_8(res); - FLAG_C = FLAG_X = CFLAG_8(res); - FLAG_V = src & res; - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->c_flag = m68k->x_flag = CFLAG_8(res); + m68k->v_flag = src & res; + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -7887,12 +7887,12 @@ M68KMAKE_OP(neg, 16, ., d) UINT32* r_dst = &DY; UINT32 res = 0 - MASK_OUT_ABOVE_16(*r_dst); - FLAG_N = NFLAG_16(res); - FLAG_C = FLAG_X = CFLAG_16(res); - FLAG_V = (*r_dst & res)>>8; - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->c_flag = m68k->x_flag = CFLAG_16(res); + m68k->v_flag = (*r_dst & res)>>8; + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -7902,12 +7902,12 @@ M68KMAKE_OP(neg, 16, ., .) UINT32 src = m68ki_read_16(m68k, ea); UINT32 res = 0 - src; - FLAG_N = NFLAG_16(res); - FLAG_C = FLAG_X = CFLAG_16(res); - FLAG_V = (src & res)>>8; - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->c_flag = m68k->x_flag = CFLAG_16(res); + m68k->v_flag = (src & res)>>8; + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -7916,12 +7916,12 @@ M68KMAKE_OP(neg, 32, ., d) UINT32* r_dst = &DY; UINT32 res = 0 - *r_dst; - FLAG_N = NFLAG_32(res); - FLAG_C = FLAG_X = CFLAG_SUB_32(*r_dst, 0, res); - FLAG_V = (*r_dst & res)>>24; - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->c_flag = m68k->x_flag = CFLAG_SUB_32(*r_dst, 0, res); + m68k->v_flag = (*r_dst & res)>>24; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -7931,26 +7931,26 @@ M68KMAKE_OP(neg, 32, ., .) UINT32 src = m68ki_read_32(m68k, ea); UINT32 res = 0 - src; - FLAG_N = NFLAG_32(res); - FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res); - FLAG_V = (src & res)>>24; - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->c_flag = m68k->x_flag = CFLAG_SUB_32(src, 0, res); + m68k->v_flag = (src & res)>>24; + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(negx, 8, ., d) { UINT32* r_dst = &DY; - UINT32 res = 0 - MASK_OUT_ABOVE_8(*r_dst) - XFLAG_AS_1(); + UINT32 res = 0 - MASK_OUT_ABOVE_8(*r_dst) - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = *r_dst & res; + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = *r_dst & res; res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; } @@ -7960,14 +7960,14 @@ M68KMAKE_OP(negx, 8, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 src = m68ki_read_8(m68k, ea); - UINT32 res = 0 - src - XFLAG_AS_1(); + UINT32 res = 0 - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = src & res; + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = src & res; res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -7976,14 +7976,14 @@ M68KMAKE_OP(negx, 8, ., .) M68KMAKE_OP(negx, 16, ., d) { UINT32* r_dst = &DY; - UINT32 res = 0 - MASK_OUT_ABOVE_16(*r_dst) - XFLAG_AS_1(); + UINT32 res = 0 - MASK_OUT_ABOVE_16(*r_dst) - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = (*r_dst & res)>>8; + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = (*r_dst & res)>>8; res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; } @@ -7993,14 +7993,14 @@ M68KMAKE_OP(negx, 16, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 src = m68ki_read_16(m68k, ea); - UINT32 res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(); + UINT32 res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = (src & res)>>8; + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = (src & res)>>8; res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_16(m68k, ea, res); } @@ -8009,14 +8009,14 @@ M68KMAKE_OP(negx, 16, ., .) M68KMAKE_OP(negx, 32, ., d) { UINT32* r_dst = &DY; - UINT32 res = 0 - MASK_OUT_ABOVE_32(*r_dst) - XFLAG_AS_1(); + UINT32 res = 0 - MASK_OUT_ABOVE_32(*r_dst) - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(*r_dst, 0, res); - FLAG_V = (*r_dst & res)>>24; + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(*r_dst, 0, res); + m68k->v_flag = (*r_dst & res)>>24; res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = res; } @@ -8026,14 +8026,14 @@ M68KMAKE_OP(negx, 32, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_32; UINT32 src = m68ki_read_32(m68k, ea); - UINT32 res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(); + UINT32 res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res); - FLAG_V = (src & res)>>24; + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, 0, res); + m68k->v_flag = (src & res)>>24; res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_32(m68k, ea, res); } @@ -8052,10 +8052,10 @@ M68KMAKE_OP(not, 8, ., d) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8066,10 +8066,10 @@ M68KMAKE_OP(not, 8, ., .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8080,10 +8080,10 @@ M68KMAKE_OP(not, 16, ., d) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8094,10 +8094,10 @@ M68KMAKE_OP(not, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8106,10 +8106,10 @@ M68KMAKE_OP(not, 32, ., d) UINT32* r_dst = &DY; UINT32 res = *r_dst = MASK_OUT_ABOVE_32(~*r_dst); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8120,10 +8120,10 @@ M68KMAKE_OP(not, 32, ., .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8131,10 +8131,10 @@ M68KMAKE_OP(or, 8, er, d) { UINT32 res = MASK_OUT_ABOVE_8((DX |= MASK_OUT_ABOVE_8(DY))); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8142,10 +8142,10 @@ M68KMAKE_OP(or, 8, er, .) { UINT32 res = MASK_OUT_ABOVE_8((DX |= M68KMAKE_GET_OPER_AY_8)); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8153,10 +8153,10 @@ M68KMAKE_OP(or, 16, er, d) { UINT32 res = MASK_OUT_ABOVE_16((DX |= MASK_OUT_ABOVE_16(DY))); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8164,10 +8164,10 @@ M68KMAKE_OP(or, 16, er, .) { UINT32 res = MASK_OUT_ABOVE_16((DX |= M68KMAKE_GET_OPER_AY_16)); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8175,10 +8175,10 @@ M68KMAKE_OP(or, 32, er, d) { UINT32 res = DX |= DY; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8186,10 +8186,10 @@ M68KMAKE_OP(or, 32, er, .) { UINT32 res = DX |= M68KMAKE_GET_OPER_AY_32; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8200,10 +8200,10 @@ M68KMAKE_OP(or, 8, re, .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8214,10 +8214,10 @@ M68KMAKE_OP(or, 16, re, .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8228,10 +8228,10 @@ M68KMAKE_OP(or, 32, re, .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8239,10 +8239,10 @@ M68KMAKE_OP(ori, 8, ., d) { UINT32 res = MASK_OUT_ABOVE_8((DY |= OPER_I_8(m68k))); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8254,10 +8254,10 @@ M68KMAKE_OP(ori, 8, ., .) m68ki_write_8(m68k, ea, res); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8265,10 +8265,10 @@ M68KMAKE_OP(ori, 16, ., d) { UINT32 res = MASK_OUT_ABOVE_16(DY |= OPER_I_16(m68k)); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8280,10 +8280,10 @@ M68KMAKE_OP(ori, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8291,10 +8291,10 @@ M68KMAKE_OP(ori, 32, ., d) { UINT32 res = DY |= OPER_I_32(m68k); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8306,10 +8306,10 @@ M68KMAKE_OP(ori, 32, ., .) m68ki_write_32(m68k, ea, res); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -8321,7 +8321,7 @@ M68KMAKE_OP(ori, 16, toc, .) M68KMAKE_OP(ori, 16, tos, .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 src = OPER_I_16(m68k); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ @@ -8435,7 +8435,7 @@ M68KMAKE_OP(pflush, 32, ., .) M68KMAKE_OP(reset, 0, ., .) { - if(FLAG_S) + if(m68k->s_flag) { (*m68k->reset_instr_callback)(); USE_CYCLES(m68k, m68k->cyc_reset); @@ -8448,7 +8448,7 @@ M68KMAKE_OP(reset, 0, ., .) M68KMAKE_OP(ror, 8, s, .) { UINT32* r_dst = &DY; - UINT32 orig_shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 orig_shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 shift = orig_shift & 7; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = ROR_8(src, shift); @@ -8458,17 +8458,17 @@ M68KMAKE_OP(ror, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = src << (9-orig_shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = src << (9-orig_shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(ror, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = ROR_16(src, shift); @@ -8477,17 +8477,17 @@ M68KMAKE_OP(ror, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = src << (9-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = src << (9-shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(ror, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT64 src = *r_dst; UINT32 res = ROR_32(src, shift); @@ -8496,10 +8496,10 @@ M68KMAKE_OP(ror, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = src << (9-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = src << (9-shift); + m68k->v_flag = VFLAG_CLEAR; } @@ -8516,17 +8516,17 @@ M68KMAKE_OP(ror, 8, r, .) USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_C = src << (8-((shift-1)&7)); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = src << (8-((shift-1)&7)); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8543,17 +8543,17 @@ M68KMAKE_OP(ror, 16, r, .) USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_C = (src >> ((shift - 1) & 15)) << 8; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src >> ((shift - 1) & 15)) << 8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8570,17 +8570,17 @@ M68KMAKE_OP(ror, 32, r, .) USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); *r_dst = res; - FLAG_C = (src >> ((shift - 1) & 31)) << 8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src >> ((shift - 1) & 31)) << 8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8592,17 +8592,17 @@ M68KMAKE_OP(ror, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = src << 8; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = src << 8; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(rol, 8, s, .) { UINT32* r_dst = &DY; - UINT32 orig_shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 orig_shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 shift = orig_shift & 7; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = ROL_8(src, shift); @@ -8612,17 +8612,17 @@ M68KMAKE_OP(rol, 8, s, .) *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_C = src << orig_shift; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->c_flag = src << orig_shift; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(rol, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = ROL_16(src, shift); @@ -8631,17 +8631,17 @@ M68KMAKE_OP(rol, 16, s, .) *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = src >> (8-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = src >> (8-shift); + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(rol, 32, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT64 src = *r_dst; UINT32 res = ROL_32(src, shift); @@ -8650,10 +8650,10 @@ M68KMAKE_OP(rol, 32, s, .) *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_C = src >> (24-shift); - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->c_flag = src >> (24-shift); + m68k->v_flag = VFLAG_CLEAR; } @@ -8672,23 +8672,23 @@ M68KMAKE_OP(rol, 8, r, .) if(shift != 0) { *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_C = src << shift; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = src << shift; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = (src & 1)<<8; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src & 1)<<8; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_8(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8707,23 +8707,23 @@ M68KMAKE_OP(rol, 16, r, .) if(shift != 0) { *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_C = (src << shift) >> 8; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src << shift) >> 8; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = (src & 1)<<8; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src & 1)<<8; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_16(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8741,17 +8741,17 @@ M68KMAKE_OP(rol, 32, r, .) *r_dst = res; - FLAG_C = (src >> ((32 - shift) & 0x1f)) << 8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = (src >> ((32 - shift) & 0x1f)) << 8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = CFLAG_CLEAR; - FLAG_N = NFLAG_32(src); - FLAG_Z = src; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(src); + m68k->not_z_flag = src; + m68k->v_flag = VFLAG_CLEAR; } @@ -8763,52 +8763,52 @@ M68KMAKE_OP(rol, 16, ., .) m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_C = src >> 7; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->c_flag = src >> 7; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(roxr, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = ROR_9(src | (XFLAG_AS_1() << 8), shift); + UINT32 res = ROR_9(src | (XFLAG_AS_1(m68k) << 8), shift); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res; + m68k->c_flag = m68k->x_flag = res; res = MASK_OUT_ABOVE_8(res); *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(roxr, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = ROR_17(src | (XFLAG_AS_1() << 16), shift); + UINT32 res = ROR_17(src | (XFLAG_AS_1(m68k) << 16), shift); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } @@ -8817,30 +8817,30 @@ M68KMAKE_OP(roxr, 32, s, .) #if M68K_USE_64_BIT UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT64 src = *r_dst; - UINT64 res = src | (((UINT64)XFLAG_AS_1()) << 32); + UINT64 res = src | (((UINT64)XFLAG_AS_1(m68k)) << 32); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); res = ROR_33_64(res, shift); - FLAG_C = FLAG_X = res >> 24; + m68k->c_flag = m68k->x_flag = res >> 24; res = MASK_OUT_ABOVE_32(res); *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #else UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; - UINT32 res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift))); + UINT32 res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1(m68k) << (32 - shift))); UINT32 new_x_flag = src & (1 << (shift - 1)); if(shift != 0) @@ -8848,10 +8848,10 @@ M68KMAKE_OP(roxr, 32, s, .) *r_dst = res; - FLAG_C = FLAG_X = (new_x_flag != 0)<<8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (new_x_flag != 0)<<8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #endif } @@ -8866,24 +8866,24 @@ M68KMAKE_OP(roxr, 8, r, .) { UINT32 shift = orig_shift % 9; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = ROR_9(src | (XFLAG_AS_1() << 8), shift); + UINT32 res = ROR_9(src | (XFLAG_AS_1(m68k) << 8), shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res; + m68k->c_flag = m68k->x_flag = res; res = MASK_OUT_ABOVE_8(res); *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_8(*r_dst); - FLAG_Z = MASK_OUT_ABOVE_8(*r_dst); - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_8(*r_dst); + m68k->not_z_flag = MASK_OUT_ABOVE_8(*r_dst); + m68k->v_flag = VFLAG_CLEAR; } @@ -8896,24 +8896,24 @@ M68KMAKE_OP(roxr, 16, r, .) { UINT32 shift = orig_shift % 17; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = ROR_17(src | (XFLAG_AS_1() << 16), shift); + UINT32 res = ROR_17(src | (XFLAG_AS_1(m68k) << 16), shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_16(*r_dst); - FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_16(*r_dst); + m68k->not_z_flag = MASK_OUT_ABOVE_16(*r_dst); + m68k->v_flag = VFLAG_CLEAR; } @@ -8928,26 +8928,26 @@ M68KMAKE_OP(roxr, 32, r, .) { UINT32 shift = orig_shift % 33; UINT64 src = *r_dst; - UINT64 res = src | (((UINT64)XFLAG_AS_1()) << 32); + UINT64 res = src | (((UINT64)XFLAG_AS_1(m68k)) << 32); res = ROR_33_64(res, shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 24; + m68k->c_flag = m68k->x_flag = res >> 24; res = MASK_OUT_ABOVE_32(res); *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_32(*r_dst); - FLAG_Z = *r_dst; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_32(*r_dst); + m68k->not_z_flag = *r_dst; + m68k->v_flag = VFLAG_CLEAR; #else @@ -8955,7 +8955,7 @@ M68KMAKE_OP(roxr, 32, r, .) UINT32 orig_shift = DX & 0x3f; UINT32 shift = orig_shift % 33; UINT32 src = *r_dst; - UINT32 res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift))); + UINT32 res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1(m68k) << (32 - shift))); UINT32 new_x_flag = src & (1 << (shift - 1)); if(orig_shift != 0) @@ -8964,14 +8964,14 @@ M68KMAKE_OP(roxr, 32, r, .) if(shift != 0) { *r_dst = res; - FLAG_X = (new_x_flag != 0)<<8; + m68k->x_flag = (new_x_flag != 0)<<8; } else res = src; - FLAG_C = FLAG_X; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #endif } @@ -8981,58 +8981,58 @@ M68KMAKE_OP(roxr, 16, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 src = m68ki_read_16(m68k, ea); - UINT32 res = ROR_17(src | (XFLAG_AS_1() << 16), 1); + UINT32 res = ROR_17(src | (XFLAG_AS_1(m68k) << 16), 1); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(roxl, 8, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = ROL_9(src | (XFLAG_AS_1() << 8), shift); + UINT32 res = ROL_9(src | (XFLAG_AS_1(m68k) << 8), shift); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res; + m68k->c_flag = m68k->x_flag = res; res = MASK_OUT_ABOVE_8(res); *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } M68KMAKE_OP(roxl, 16, s, .) { UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = ROL_17(src | (XFLAG_AS_1() << 16), shift); + UINT32 res = ROL_17(src | (XFLAG_AS_1(m68k) << 16), shift); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } @@ -9041,30 +9041,30 @@ M68KMAKE_OP(roxl, 32, s, .) #if M68K_USE_64_BIT UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT64 src = *r_dst; - UINT64 res = src | (((UINT64)XFLAG_AS_1()) << 32); + UINT64 res = src | (((UINT64)XFLAG_AS_1(m68k)) << 32); if(shift != 0) USE_CYCLES(m68k, shift<<m68k->cyc_shift); res = ROL_33_64(res, shift); - FLAG_C = FLAG_X = res >> 24; + m68k->c_flag = m68k->x_flag = res >> 24; res = MASK_OUT_ABOVE_32(res); *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #else UINT32* r_dst = &DY; - UINT32 shift = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 shift = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 src = *r_dst; - UINT32 res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1))); + UINT32 res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1(m68k) << (shift - 1))); UINT32 new_x_flag = src & (1 << (32 - shift)); if(shift != 0) @@ -9072,10 +9072,10 @@ M68KMAKE_OP(roxl, 32, s, .) *r_dst = res; - FLAG_C = FLAG_X = (new_x_flag != 0)<<8; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag = (new_x_flag != 0)<<8; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #endif } @@ -9091,24 +9091,24 @@ M68KMAKE_OP(roxl, 8, r, .) { UINT32 shift = orig_shift % 9; UINT32 src = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = ROL_9(src | (XFLAG_AS_1() << 8), shift); + UINT32 res = ROL_9(src | (XFLAG_AS_1(m68k) << 8), shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res; + m68k->c_flag = m68k->x_flag = res; res = MASK_OUT_ABOVE_8(res); *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_8(*r_dst); - FLAG_Z = MASK_OUT_ABOVE_8(*r_dst); - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_8(*r_dst); + m68k->not_z_flag = MASK_OUT_ABOVE_8(*r_dst); + m68k->v_flag = VFLAG_CLEAR; } @@ -9121,24 +9121,24 @@ M68KMAKE_OP(roxl, 16, r, .) { UINT32 shift = orig_shift % 17; UINT32 src = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = ROL_17(src | (XFLAG_AS_1() << 16), shift); + UINT32 res = ROL_17(src | (XFLAG_AS_1(m68k) << 16), shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_16(*r_dst); - FLAG_Z = MASK_OUT_ABOVE_16(*r_dst); - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_16(*r_dst); + m68k->not_z_flag = MASK_OUT_ABOVE_16(*r_dst); + m68k->v_flag = VFLAG_CLEAR; } @@ -9153,26 +9153,26 @@ M68KMAKE_OP(roxl, 32, r, .) { UINT32 shift = orig_shift % 33; UINT64 src = *r_dst; - UINT64 res = src | (((UINT64)XFLAG_AS_1()) << 32); + UINT64 res = src | (((UINT64)XFLAG_AS_1(m68k)) << 32); res = ROL_33_64(res, shift); USE_CYCLES(m68k, orig_shift<<m68k->cyc_shift); - FLAG_C = FLAG_X = res >> 24; + m68k->c_flag = m68k->x_flag = res >> 24; res = MASK_OUT_ABOVE_32(res); *r_dst = res; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; return; } - FLAG_C = FLAG_X; - FLAG_N = NFLAG_32(*r_dst); - FLAG_Z = *r_dst; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_32(*r_dst); + m68k->not_z_flag = *r_dst; + m68k->v_flag = VFLAG_CLEAR; #else @@ -9180,7 +9180,7 @@ M68KMAKE_OP(roxl, 32, r, .) UINT32 orig_shift = DX & 0x3f; UINT32 shift = orig_shift % 33; UINT32 src = *r_dst; - UINT32 res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1))); + UINT32 res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1(m68k) << (shift - 1))); UINT32 new_x_flag = src & (1 << (32 - shift)); if(orig_shift != 0) @@ -9189,14 +9189,14 @@ M68KMAKE_OP(roxl, 32, r, .) if(shift != 0) { *r_dst = res; - FLAG_X = (new_x_flag != 0)<<8; + m68k->x_flag = (new_x_flag != 0)<<8; } else res = src; - FLAG_C = FLAG_X; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->c_flag = m68k->x_flag; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; #endif } @@ -9206,16 +9206,16 @@ M68KMAKE_OP(roxl, 16, ., .) { UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 src = m68ki_read_16(m68k, ea); - UINT32 res = ROL_17(src | (XFLAG_AS_1() << 16), 1); + UINT32 res = ROL_17(src | (XFLAG_AS_1(m68k) << 16), 1); - FLAG_C = FLAG_X = res >> 8; + m68k->c_flag = m68k->x_flag = res >> 8; res = MASK_OUT_ABOVE_16(res); m68ki_write_16(m68k, ea, res); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; } @@ -9236,7 +9236,7 @@ M68KMAKE_OP(rtd, 32, ., .) M68KMAKE_OP(rte, 32, ., .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 new_sr; UINT32 new_pc; @@ -9326,8 +9326,8 @@ M68KMAKE_OP(rtm, 32, ., .) { m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC - 2), REG_IR, - m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC - 2), m68k->ir, + m68k_disassemble_quick(ADDRESS_68K(m68k, REG_PC - 2)))); return; } m68ki_exception_illegal(m68k); @@ -9354,10 +9354,10 @@ M68KMAKE_OP(sbcd, 8, rr, .) UINT32* r_dst = &DX; UINT32 src = DY; UINT32 dst = *r_dst; - UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(m68k); -// FLAG_V = ~res; /* Undefined V behavior */ - FLAG_V = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to assume cleared. */ +// m68k->v_flag = ~res; /* Undefined V behavior */ + m68k->v_flag = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to assume cleared. */ if(res > 9) res -= 6; @@ -9365,17 +9365,17 @@ M68KMAKE_OP(sbcd, 8, rr, .) if(res > 0x99) { res += 0xa0; - FLAG_X = FLAG_C = CFLAG_SET; - FLAG_N = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ + m68k->x_flag = m68k->c_flag = CFLAG_SET; + m68k->n_flag = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ } else - FLAG_N = FLAG_X = FLAG_C = 0; + m68k->n_flag = m68k->x_flag = m68k->c_flag = 0; res = MASK_OUT_ABOVE_8(res); -// FLAG_V &= res; /* Undefined V behavior part II */ -// FLAG_N = NFLAG_8(res); /* Undefined N behavior */ - FLAG_Z |= res; +// m68k->v_flag &= res; /* Undefined V behavior part II */ +// m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; } @@ -9386,10 +9386,10 @@ M68KMAKE_OP(sbcd, 8, mm, ax7) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(m68k); -// FLAG_V = ~res; /* Undefined V behavior */ - FLAG_V = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ +// m68k->v_flag = ~res; /* Undefined V behavior */ + m68k->v_flag = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ if(res > 9) res -= 6; @@ -9397,17 +9397,17 @@ M68KMAKE_OP(sbcd, 8, mm, ax7) if(res > 0x99) { res += 0xa0; - FLAG_X = FLAG_C = CFLAG_SET; - FLAG_N = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ + m68k->x_flag = m68k->c_flag = CFLAG_SET; + m68k->n_flag = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ } else - FLAG_N = FLAG_X = FLAG_C = 0; + m68k->n_flag = m68k->x_flag = m68k->c_flag = 0; res = MASK_OUT_ABOVE_8(res); -// FLAG_V &= res; /* Undefined V behavior part II */ -// FLAG_N = NFLAG_8(res); /* Undefined N behavior */ - FLAG_Z |= res; +// m68k->v_flag &= res; /* Undefined V behavior part II */ +// m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -9418,10 +9418,10 @@ M68KMAKE_OP(sbcd, 8, mm, ay7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(m68k); -// FLAG_V = ~res; /* Undefined V behavior */ - FLAG_V = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ +// m68k->v_flag = ~res; /* Undefined V behavior */ + m68k->v_flag = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ if(res > 9) res -= 6; @@ -9429,17 +9429,17 @@ M68KMAKE_OP(sbcd, 8, mm, ay7) if(res > 0x99) { res += 0xa0; - FLAG_X = FLAG_C = CFLAG_SET; - FLAG_N = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ + m68k->x_flag = m68k->c_flag = CFLAG_SET; + m68k->n_flag = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ } else - FLAG_N = FLAG_X = FLAG_C = 0; + m68k->n_flag = m68k->x_flag = m68k->c_flag = 0; res = MASK_OUT_ABOVE_8(res); -// FLAG_V &= res; /* Undefined V behavior part II */ -// FLAG_N = NFLAG_8(res); /* Undefined N behavior */ - FLAG_Z |= res; +// m68k->v_flag &= res; /* Undefined V behavior part II */ +// m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -9450,10 +9450,10 @@ M68KMAKE_OP(sbcd, 8, mm, axy7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(m68k); -// FLAG_V = ~res; /* Undefined V behavior */ - FLAG_V = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ +// m68k->v_flag = ~res; /* Undefined V behavior */ + m68k->v_flag = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ if(res > 9) res -= 6; @@ -9461,17 +9461,17 @@ M68KMAKE_OP(sbcd, 8, mm, axy7) if(res > 0x99) { res += 0xa0; - FLAG_X = FLAG_C = CFLAG_SET; - FLAG_N = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ + m68k->x_flag = m68k->c_flag = CFLAG_SET; + m68k->n_flag = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ } else - FLAG_N = FLAG_X = FLAG_C = 0; + m68k->n_flag = m68k->x_flag = m68k->c_flag = 0; res = MASK_OUT_ABOVE_8(res); -// FLAG_V &= res; /* Undefined V behavior part II */ -// FLAG_N = NFLAG_8(res); /* Undefined N behavior */ - FLAG_Z |= res; +// m68k->v_flag &= res; /* Undefined V behavior part II */ +// m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -9482,10 +9482,10 @@ M68KMAKE_OP(sbcd, 8, mm, .) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(); + UINT32 res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1(m68k); -// FLAG_V = ~res; /* Undefined V behavior */ - FLAG_V = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ +// m68k->v_flag = ~res; /* Undefined V behavior */ + m68k->v_flag = VFLAG_CLEAR; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */ if(res > 9) res -= 6; @@ -9493,17 +9493,17 @@ M68KMAKE_OP(sbcd, 8, mm, .) if(res > 0x99) { res += 0xa0; - FLAG_X = FLAG_C = CFLAG_SET; - FLAG_N = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ + m68k->x_flag = m68k->c_flag = CFLAG_SET; + m68k->n_flag = NFLAG_SET; /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */ } else - FLAG_N = FLAG_X = FLAG_C = 0; + m68k->n_flag = m68k->x_flag = m68k->c_flag = 0; res = MASK_OUT_ABOVE_8(res); -// FLAG_V &= res; /* Undefined V behavior part II */ -// FLAG_N = NFLAG_8(res); /* Undefined N behavior */ - FLAG_Z |= res; +// m68k->v_flag &= res; /* Undefined V behavior part II */ +// m68k->n_flag = NFLAG_8(res); /* Undefined N behavior */ + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -9553,7 +9553,7 @@ M68KMAKE_OP(scc, 8, ., .) M68KMAKE_OP(stop, 0, ., .) { - if(FLAG_S) + if(m68k->s_flag) { UINT32 new_sr = OPER_I_16(m68k); m68ki_trace_t0(); /* auto-disable (see m68kcpu.h) */ @@ -9573,12 +9573,12 @@ M68KMAKE_OP(sub, 8, er, d) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -9589,12 +9589,12 @@ M68KMAKE_OP(sub, 8, er, .) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_8(res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -9605,12 +9605,12 @@ M68KMAKE_OP(sub, 16, er, d) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -9621,12 +9621,12 @@ M68KMAKE_OP(sub, 16, er, a) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -9637,12 +9637,12 @@ M68KMAKE_OP(sub, 16, er, .) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_16(res); + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -9653,12 +9653,12 @@ M68KMAKE_OP(sub, 32, er, d) UINT32 dst = *r_dst; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -9669,12 +9669,12 @@ M68KMAKE_OP(sub, 32, er, a) UINT32 dst = *r_dst; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -9685,12 +9685,12 @@ M68KMAKE_OP(sub, 32, er, .) UINT32 dst = *r_dst; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); - FLAG_Z = MASK_OUT_ABOVE_32(res); + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -9701,12 +9701,12 @@ M68KMAKE_OP(sub, 8, re, .) UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -9717,12 +9717,12 @@ M68KMAKE_OP(sub, 16, re, .) UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -9733,12 +9733,12 @@ M68KMAKE_OP(sub, 32, re, .) UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } @@ -9799,12 +9799,12 @@ M68KMAKE_OP(subi, 8, ., d) UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } @@ -9815,12 +9815,12 @@ M68KMAKE_OP(subi, 8, ., .) UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } @@ -9831,12 +9831,12 @@ M68KMAKE_OP(subi, 16, ., d) UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -9847,12 +9847,12 @@ M68KMAKE_OP(subi, 16, ., .) UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } @@ -9863,12 +9863,12 @@ M68KMAKE_OP(subi, 32, ., d) UINT32 dst = *r_dst; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -9879,60 +9879,60 @@ M68KMAKE_OP(subi, 32, ., .) UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(subq, 8, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); - *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_8(*r_dst) | m68k->not_z_flag; } M68KMAKE_OP(subq, 8, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_8; UINT32 dst = m68ki_read_8(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_8(res); - FLAG_Z = MASK_OUT_ABOVE_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = MASK_OUT_ABOVE_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); - m68ki_write_8(m68k, ea, FLAG_Z); + m68ki_write_8(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(subq, 16, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); - *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z; + *r_dst = MASK_OUT_BELOW_16(*r_dst) | m68k->not_z_flag; } @@ -9940,39 +9940,39 @@ M68KMAKE_OP(subq, 16, ., a) { UINT32* r_dst = &AY; - *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1)); + *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((m68k->ir >> 9) - 1) & 7) + 1)); } M68KMAKE_OP(subq, 16, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_16; UINT32 dst = m68ki_read_16(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_16(res); - FLAG_Z = MASK_OUT_ABOVE_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = MASK_OUT_ABOVE_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); - m68ki_write_16(m68k, ea, FLAG_Z); + m68ki_write_16(m68k, ea, m68k->not_z_flag); } M68KMAKE_OP(subq, 32, ., d) { UINT32* r_dst = &DY; - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 dst = *r_dst; UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); - *r_dst = FLAG_Z; + *r_dst = m68k->not_z_flag; } @@ -9980,23 +9980,23 @@ M68KMAKE_OP(subq, 32, ., a) { UINT32* r_dst = &AY; - *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1)); + *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((m68k->ir >> 9) - 1) & 7) + 1)); } M68KMAKE_OP(subq, 32, ., .) { - UINT32 src = (((REG_IR >> 9) - 1) & 7) + 1; + UINT32 src = (((m68k->ir >> 9) - 1) & 7) + 1; UINT32 ea = M68KMAKE_GET_EA_AY_32; UINT32 dst = m68ki_read_32(m68k, ea); UINT32 res = dst - src; - FLAG_N = NFLAG_32(res); - FLAG_Z = MASK_OUT_ABOVE_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = MASK_OUT_ABOVE_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); - m68ki_write_32(m68k, ea, FLAG_Z); + m68ki_write_32(m68k, ea, m68k->not_z_flag); } @@ -10005,14 +10005,14 @@ M68KMAKE_OP(subx, 8, rr, .) UINT32* r_dst = &DX; UINT32 src = MASK_OUT_ABOVE_8(DY); UINT32 dst = MASK_OUT_ABOVE_8(*r_dst); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_8(*r_dst) | res; } @@ -10023,14 +10023,14 @@ M68KMAKE_OP(subx, 16, rr, .) UINT32* r_dst = &DX; UINT32 src = MASK_OUT_ABOVE_16(DY); UINT32 dst = MASK_OUT_ABOVE_16(*r_dst); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = MASK_OUT_BELOW_16(*r_dst) | res; } @@ -10041,14 +10041,14 @@ M68KMAKE_OP(subx, 32, rr, .) UINT32* r_dst = &DX; UINT32 src = DY; UINT32 dst = *r_dst; - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; *r_dst = res; } @@ -10059,14 +10059,14 @@ M68KMAKE_OP(subx, 8, mm, ax7) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -10077,14 +10077,14 @@ M68KMAKE_OP(subx, 8, mm, ay7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -10095,14 +10095,14 @@ M68KMAKE_OP(subx, 8, mm, axy7) UINT32 src = OPER_A7_PD_8(m68k); UINT32 ea = EA_A7_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -10113,14 +10113,14 @@ M68KMAKE_OP(subx, 8, mm, .) UINT32 src = OPER_AY_PD_8(m68k); UINT32 ea = EA_AX_PD_8(m68k); UINT32 dst = m68ki_read_8(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_8(res); - FLAG_X = FLAG_C = CFLAG_8(res); - FLAG_V = VFLAG_SUB_8(src, dst, res); + m68k->n_flag = NFLAG_8(res); + m68k->x_flag = m68k->c_flag = CFLAG_8(res); + m68k->v_flag = VFLAG_SUB_8(src, dst, res); res = MASK_OUT_ABOVE_8(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_8(m68k, ea, res); } @@ -10131,14 +10131,14 @@ M68KMAKE_OP(subx, 16, mm, .) UINT32 src = OPER_AY_PD_16(m68k); UINT32 ea = EA_AX_PD_16(m68k); UINT32 dst = m68ki_read_16(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_16(res); - FLAG_X = FLAG_C = CFLAG_16(res); - FLAG_V = VFLAG_SUB_16(src, dst, res); + m68k->n_flag = NFLAG_16(res); + m68k->x_flag = m68k->c_flag = CFLAG_16(res); + m68k->v_flag = VFLAG_SUB_16(src, dst, res); res = MASK_OUT_ABOVE_16(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_16(m68k, ea, res); } @@ -10149,14 +10149,14 @@ M68KMAKE_OP(subx, 32, mm, .) UINT32 src = OPER_AY_PD_32(m68k); UINT32 ea = EA_AX_PD_32(m68k); UINT32 dst = m68ki_read_32(m68k, ea); - UINT32 res = dst - src - XFLAG_AS_1(); + UINT32 res = dst - src - XFLAG_AS_1(m68k); - FLAG_N = NFLAG_32(res); - FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res); - FLAG_V = VFLAG_SUB_32(src, dst, res); + m68k->n_flag = NFLAG_32(res); + m68k->x_flag = m68k->c_flag = CFLAG_SUB_32(src, dst, res); + m68k->v_flag = VFLAG_SUB_32(src, dst, res); res = MASK_OUT_ABOVE_32(res); - FLAG_Z |= res; + m68k->not_z_flag |= res; m68ki_write_32(m68k, ea, res); } @@ -10166,13 +10166,13 @@ M68KMAKE_OP(swap, 32, ., .) { UINT32* r_dst = &DY; - FLAG_Z = MASK_OUT_ABOVE_32(*r_dst<<16); - *r_dst = (*r_dst>>16) | FLAG_Z; + m68k->not_z_flag = MASK_OUT_ABOVE_32(*r_dst<<16); + *r_dst = (*r_dst>>16) | m68k->not_z_flag; - FLAG_Z = *r_dst; - FLAG_N = NFLAG_32(*r_dst); - FLAG_C = CFLAG_CLEAR; - FLAG_V = VFLAG_CLEAR; + m68k->not_z_flag = *r_dst; + m68k->n_flag = NFLAG_32(*r_dst); + m68k->c_flag = CFLAG_CLEAR; + m68k->v_flag = VFLAG_CLEAR; } @@ -10180,10 +10180,10 @@ M68KMAKE_OP(tas, 8, ., d) { UINT32* r_dst = &DY; - FLAG_Z = MASK_OUT_ABOVE_8(*r_dst); - FLAG_N = NFLAG_8(*r_dst); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = MASK_OUT_ABOVE_8(*r_dst); + m68k->n_flag = NFLAG_8(*r_dst); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; *r_dst |= 0x80; } @@ -10194,10 +10194,10 @@ M68KMAKE_OP(tas, 8, ., .) UINT32 dst = m68ki_read_8(m68k, ea); UINT32 allow_writeback; - FLAG_Z = dst; - FLAG_N = NFLAG_8(dst); - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->not_z_flag = dst; + m68k->n_flag = NFLAG_8(dst); + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; /* The Genesis/Megadrive games Gargoyles and Ex-Mutants need the TAS writeback disabled in order to function properly. Some Amiga software may also rely @@ -10212,7 +10212,7 @@ M68KMAKE_OP(tas, 8, ., .) M68KMAKE_OP(trap, 0, ., .) { /* Trap#n stacks exception frame type 0 */ - m68ki_exception_trapN(m68k, EXCEPTION_TRAP_BASE + (REG_IR & 0xf)); /* HJB 990403 */ + m68ki_exception_trapN(m68k, EXCEPTION_TRAP_BASE + (m68k->ir & 0xf)); /* HJB 990403 */ } @@ -10327,7 +10327,7 @@ M68KMAKE_OP(trapcc, 32, ., .) M68KMAKE_OP(trapv, 0, ., .) { - if(COND_VC()) + if(COND_VC(m68k)) { return; } @@ -10339,10 +10339,10 @@ M68KMAKE_OP(tst, 8, ., d) { UINT32 res = MASK_OUT_ABOVE_8(DY); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10350,10 +10350,10 @@ M68KMAKE_OP(tst, 8, ., .) { UINT32 res = M68KMAKE_GET_OPER_AY_8; - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10363,10 +10363,10 @@ M68KMAKE_OP(tst, 8, ., pcdi) { UINT32 res = OPER_PCDI_8(m68k); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10379,10 +10379,10 @@ M68KMAKE_OP(tst, 8, ., pcix) { UINT32 res = OPER_PCIX_8(m68k); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10395,10 +10395,10 @@ M68KMAKE_OP(tst, 8, ., i) { UINT32 res = OPER_I_8(m68k); - FLAG_N = NFLAG_8(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_8(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10409,10 +10409,10 @@ M68KMAKE_OP(tst, 16, ., d) { UINT32 res = MASK_OUT_ABOVE_16(DY); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10422,10 +10422,10 @@ M68KMAKE_OP(tst, 16, ., a) { UINT32 res = MAKE_INT_16(AY); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10436,10 +10436,10 @@ M68KMAKE_OP(tst, 16, ., .) { UINT32 res = M68KMAKE_GET_OPER_AY_16; - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10449,10 +10449,10 @@ M68KMAKE_OP(tst, 16, ., pcdi) { UINT32 res = OPER_PCDI_16(m68k); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10465,10 +10465,10 @@ M68KMAKE_OP(tst, 16, ., pcix) { UINT32 res = OPER_PCIX_16(m68k); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10481,10 +10481,10 @@ M68KMAKE_OP(tst, 16, ., i) { UINT32 res = OPER_I_16(m68k); - FLAG_N = NFLAG_16(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_16(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10495,10 +10495,10 @@ M68KMAKE_OP(tst, 32, ., d) { UINT32 res = DY; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10508,10 +10508,10 @@ M68KMAKE_OP(tst, 32, ., a) { UINT32 res = AY; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10522,10 +10522,10 @@ M68KMAKE_OP(tst, 32, ., .) { UINT32 res = M68KMAKE_GET_OPER_AY_32; - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; } @@ -10535,10 +10535,10 @@ M68KMAKE_OP(tst, 32, ., pcdi) { UINT32 res = OPER_PCDI_32(m68k); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10551,10 +10551,10 @@ M68KMAKE_OP(tst, 32, ., pcix) { UINT32 res = OPER_PCIX_32(m68k); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); @@ -10567,10 +10567,10 @@ M68KMAKE_OP(tst, 32, ., i) { UINT32 res = OPER_I_32(m68k); - FLAG_N = NFLAG_32(res); - FLAG_Z = res; - FLAG_V = VFLAG_CLEAR; - FLAG_C = CFLAG_CLEAR; + m68k->n_flag = NFLAG_32(res); + m68k->not_z_flag = res; + m68k->v_flag = VFLAG_CLEAR; + m68k->c_flag = CFLAG_CLEAR; return; } m68ki_exception_illegal(m68k); diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/emu/cpu/m68000/m68kcpu.c index 7e7ea1848ab..8a8e9e2ddf8 100644 --- a/src/emu/cpu/m68000/m68kcpu.c +++ b/src/emu/cpu/m68000/m68kcpu.c @@ -576,28 +576,28 @@ void m68k_set_reg(m68ki_cpu_core *m68k, m68k_register_t regnum, unsigned int val case M68K_REG_PC: m68ki_jump(m68k, MASK_OUT_ABOVE_32(value)); return; case M68K_REG_SR: m68ki_set_sr(m68k, value); return; case M68K_REG_SP: REG_SP = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_USP: if(FLAG_S) + case M68K_REG_USP: if(m68k->s_flag) REG_USP = MASK_OUT_ABOVE_32(value); else REG_SP = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_ISP: if(FLAG_S && !FLAG_M) + case M68K_REG_ISP: if(m68k->s_flag && !m68k->m_flag) REG_SP = MASK_OUT_ABOVE_32(value); else REG_ISP = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_MSP: if(FLAG_S && FLAG_M) + case M68K_REG_MSP: if(m68k->s_flag && m68k->m_flag) REG_SP = MASK_OUT_ABOVE_32(value); else REG_MSP = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_VBR: REG_VBR = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_SFC: REG_SFC = value & 7; return; - case M68K_REG_DFC: REG_DFC = value & 7; return; - case M68K_REG_CACR: REG_CACR = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_CAAR: REG_CAAR = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_VBR: m68k->vbr = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_SFC: m68k->sfc = value & 7; return; + case M68K_REG_DFC: m68k->dfc = value & 7; return; + case M68K_REG_CACR: m68k->cacr = MASK_OUT_ABOVE_32(value); return; + case M68K_REG_CAAR: m68k->caar = MASK_OUT_ABOVE_32(value); return; case M68K_REG_PPC: REG_PPC = MASK_OUT_ABOVE_32(value); return; - case M68K_REG_IR: REG_IR = MASK_OUT_ABOVE_16(value); return; + case M68K_REG_IR: m68k->ir = MASK_OUT_ABOVE_16(value); return; case M68K_REG_PREF_ADDR: m68k->pref_addr = MASK_OUT_ABOVE_32(value); return; case M68K_REG_CPU_TYPE: m68k_set_cpu_type(m68k, value); return; default: return; @@ -789,9 +789,9 @@ int m68k_execute(m68ki_cpu_core *m68k, int num_cycles) REG_PPC = REG_PC; /* Read an instruction and call its handler */ - REG_IR = m68ki_read_imm_16(m68k); - m68ki_instruction_jump_table[REG_IR](m68k); - USE_CYCLES(m68k, m68k->cyc_instruction[REG_IR]); + m68k->ir = m68ki_read_imm_16(m68k); + m68ki_instruction_jump_table[m68k->ir](m68k); + USE_CYCLES(m68k, m68k->cyc_instruction[m68k->ir]); /* Trace m68k_exception, if necessary */ m68ki_exception_if_trace(); /* auto-disable (see m68kcpu.h) */ @@ -902,14 +902,14 @@ void m68k_pulse_reset(m68ki_cpu_core *m68k) m68k->run_mode = RUN_MODE_BERR_AERR_RESET; /* Turn off tracing */ - FLAG_T1 = FLAG_T0 = 0; + m68k->t1_flag = m68k->t0_flag = 0; m68ki_clear_trace(); /* Interrupt mask to level 7 */ - FLAG_INT_MASK = 0x0700; + m68k->int_mask = 0x0700; m68k->int_level = 0; m68k->virq_state = 0; /* Reset VBR */ - REG_VBR = 0; + m68k->vbr = 0; /* Go to supervisor mode */ m68ki_set_sm_flag(m68k, SFLAG_SET | MFLAG_CLEAR); @@ -980,11 +980,11 @@ void m68k_state_register(m68ki_cpu_core *m68k, const char *type, int index) state_save_register_item(type, index, REG_USP); state_save_register_item(type, index, REG_ISP); state_save_register_item(type, index, REG_MSP); - state_save_register_item(type, index, REG_VBR); - state_save_register_item(type, index, REG_SFC); - state_save_register_item(type, index, REG_DFC); - state_save_register_item(type, index, REG_CACR); - state_save_register_item(type, index, REG_CAAR); + state_save_register_item(type, index, m68k->vbr); + state_save_register_item(type, index, m68k->sfc); + state_save_register_item(type, index, m68k->dfc); + state_save_register_item(type, index, m68k->cacr); + state_save_register_item(type, index, m68k->caar); state_save_register_item(type, index, m68k_substate.sr); state_save_register_item(type, index, m68k->int_level); state_save_register_item(type, index, m68k_substate.stopped); diff --git a/src/emu/cpu/m68000/m68kcpu.h b/src/emu/cpu/m68000/m68kcpu.h index 632127e1da3..ea0fa72f06f 100644 --- a/src/emu/cpu/m68000/m68kcpu.h +++ b/src/emu/cpu/m68000/m68kcpu.h @@ -168,7 +168,7 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; #endif /* M68K_INT_GT_32_BIT || M68K_USE_64_BIT */ /* Simulate address lines of 68k family */ -#define ADDRESS_68K(A) ((A)&m68k->address_mask) +#define ADDRESS_68K(M, A) ((A) & (M)->address_mask) /* Shift & Rotate Macros. */ @@ -224,29 +224,12 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; #define REG_ISP m68k->sp[4] #define REG_MSP m68k->sp[6] #define REG_SP m68k->dar[15] -#define REG_VBR m68k->vbr -#define REG_SFC m68k->sfc -#define REG_DFC m68k->dfc -#define REG_CACR m68k->cacr -#define REG_CAAR m68k->caar -#define REG_IR m68k->ir #define REG_FP m68k->fpr #define REG_FPCR m68k->fpcr #define REG_FPSR m68k->fpsr #define REG_FPIAR m68k->fpiar -#define FLAG_T1 m68k->t1_flag -#define FLAG_T0 m68k->t0_flag -#define FLAG_S m68k->s_flag -#define FLAG_M m68k->m_flag -#define FLAG_X m68k->x_flag -#define FLAG_N m68k->n_flag -#define FLAG_Z m68k->not_z_flag -#define FLAG_V m68k->v_flag -#define FLAG_C m68k->c_flag -#define FLAG_INT_MASK m68k->int_mask - /* ----------------------------- Configuration ---------------------------- */ @@ -331,9 +314,9 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; /* Enable or disable trace emulation */ #if M68K_EMULATE_TRACE /* Initiates trace checking before each instruction (t1) */ - #define m68ki_trace_t1() m68ki_tracing = FLAG_T1 + #define m68ki_trace_t1() m68ki_tracing = m68k->t1_flag /* adds t0 to trace checking if we encounter change of flow */ - #define m68ki_trace_t0() m68ki_tracing |= FLAG_T0 + #define m68ki_trace_t0() m68ki_tracing |= m68k->t0_flag /* Clear all tracing */ #define m68ki_clear_trace() m68ki_tracing = 0 /* Cause a trace exception if we are tracing */ @@ -368,12 +351,6 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; longjmp(m68k->aerr_trap, 1); \ } -#define m68ki_check_address_error_010_less(m68k, ADDR, WRITE_MODE, FC) \ - if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) \ - { \ - m68ki_check_address_error(m68k, ADDR, WRITE_MODE, FC) \ - } - /* Logging */ #if M68K_LOG_ENABLE #include <stdio.h> @@ -401,11 +378,11 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; * where XXX is register X and YYY is register Y */ /* Data Register Isolation */ -#define DX (REG_D[(REG_IR >> 9) & 7]) -#define DY (REG_D[REG_IR & 7]) +#define DX (REG_D[(m68k->ir >> 9) & 7]) +#define DY (REG_D[m68k->ir & 7]) /* Address Register Isolation */ -#define AX (REG_A[(REG_IR >> 9) & 7]) -#define AY (REG_A[REG_IR & 7]) +#define AX (REG_A[(m68k->ir >> 9) & 7]) +#define AY (REG_A[m68k->ir & 7]) /* Effective Address Calculations */ @@ -514,64 +491,64 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; #define MFLAG_CLEAR 0 /* Turn flag values into 1 or 0 */ -#define XFLAG_AS_1() ((FLAG_X>>8)&1) -#define NFLAG_AS_1() ((FLAG_N>>7)&1) -#define VFLAG_AS_1() ((FLAG_V>>7)&1) -#define ZFLAG_AS_1() (!FLAG_Z) -#define CFLAG_AS_1() ((FLAG_C>>8)&1) +#define XFLAG_AS_1(M) (((M)->x_flag>>8)&1) +#define NFLAG_AS_1(M) (((M)->n_flag>>7)&1) +#define VFLAG_AS_1(M) (((M)->v_flag>>7)&1) +#define ZFLAG_AS_1(M) (!(M)->not_z_flag) +#define CFLAG_AS_1(M) (((M)->c_flag>>8)&1) /* Conditions */ -#define COND_CS() (FLAG_C&0x100) -#define COND_CC() (!COND_CS()) -#define COND_VS() (FLAG_V&0x80) -#define COND_VC() (!COND_VS()) -#define COND_NE() FLAG_Z -#define COND_EQ() (!COND_NE()) -#define COND_MI() (FLAG_N&0x80) -#define COND_PL() (!COND_MI()) -#define COND_LT() ((FLAG_N^FLAG_V)&0x80) -#define COND_GE() (!COND_LT()) -#define COND_HI() (COND_CC() && COND_NE()) -#define COND_LS() (COND_CS() || COND_EQ()) -#define COND_GT() (COND_GE() && COND_NE()) -#define COND_LE() (COND_LT() || COND_EQ()) +#define COND_CS(M) ((M)->c_flag&0x100) +#define COND_CC(M) (!COND_CS(M)) +#define COND_VS(M) ((M)->v_flag&0x80) +#define COND_VC(M) (!COND_VS(M)) +#define COND_NE(M) (M)->not_z_flag +#define COND_EQ(M) (!COND_NE(M)) +#define COND_MI(M) ((M)->n_flag&0x80) +#define COND_PL(M) (!COND_MI(M)) +#define COND_LT(M) (((M)->n_flag^(M)->v_flag)&0x80) +#define COND_GE(M) (!COND_LT(M)) +#define COND_HI(M) (COND_CC(M) && COND_NE(M)) +#define COND_LS(M) (COND_CS(M) || COND_EQ(M)) +#define COND_GT(M) (COND_GE(M) && COND_NE(M)) +#define COND_LE(M) (COND_LT(M) || COND_EQ(M)) /* Reversed conditions */ -#define COND_NOT_CS() COND_CC() -#define COND_NOT_CC() COND_CS() -#define COND_NOT_VS() COND_VC() -#define COND_NOT_VC() COND_VS() -#define COND_NOT_NE() COND_EQ() -#define COND_NOT_EQ() COND_NE() -#define COND_NOT_MI() COND_PL() -#define COND_NOT_PL() COND_MI() -#define COND_NOT_LT() COND_GE() -#define COND_NOT_GE() COND_LT() -#define COND_NOT_HI() COND_LS() -#define COND_NOT_LS() COND_HI() -#define COND_NOT_GT() COND_LE() -#define COND_NOT_LE() COND_GT() +#define COND_NOT_CS(M) COND_CC(M) +#define COND_NOT_CC(M) COND_CS(M) +#define COND_NOT_VS(M) COND_VC(M) +#define COND_NOT_VC(M) COND_VS(M) +#define COND_NOT_NE(M) COND_EQ(M) +#define COND_NOT_EQ(M) COND_NE(M) +#define COND_NOT_MI(M) COND_PL(M) +#define COND_NOT_PL(M) COND_MI(M) +#define COND_NOT_LT(M) COND_GE(M) +#define COND_NOT_GE(M) COND_LT(M) +#define COND_NOT_HI(M) COND_LS(M) +#define COND_NOT_LS(M) COND_HI(M) +#define COND_NOT_GT(M) COND_LE(M) +#define COND_NOT_LE(M) COND_GT(M) /* Not real conditions, but here for convenience */ -#define COND_XS() (FLAG_X&0x100) -#define COND_XC() (!COND_XS) +#define COND_XS(M) ((M)->x_flag&0x100) +#define COND_XC(M) (!COND_XS) /* Get the condition code register */ -#define m68ki_get_ccr(m68k) ((COND_XS() >> 4) | \ - (COND_MI() >> 4) | \ - (COND_EQ() << 2) | \ - (COND_VS() >> 6) | \ - (COND_CS() >> 8)) +#define m68ki_get_ccr(M) ((COND_XS(M) >> 4) | \ + (COND_MI(M) >> 4) | \ + (COND_EQ(M) << 2) | \ + (COND_VS(M) >> 6) | \ + (COND_CS(M) >> 8)) /* Get the status register */ -#define m68ki_get_sr(m68k) ( FLAG_T1 | \ - FLAG_T0 | \ - (FLAG_S << 11) | \ - (FLAG_M << 11) | \ - FLAG_INT_MASK | \ - m68ki_get_ccr(m68k)) +#define m68ki_get_sr(M) ((M)->t1_flag | \ + (M)->t0_flag | \ + ((M)->s_flag << 11) | \ + ((M)->m_flag << 11) | \ + (M)->int_mask | \ + m68ki_get_ccr(M)) @@ -588,15 +565,15 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; /* ----------------------------- Read / Write ----------------------------- */ /* Read from the current address space */ -#define m68ki_read_8(M, A) m68ki_read_8_fc (M, A, FLAG_S | m68ki_get_address_space(M)) -#define m68ki_read_16(M, A) m68ki_read_16_fc(M, A, FLAG_S | m68ki_get_address_space(M)) -#define m68ki_read_32(M, A) m68ki_read_32_fc(M, A, FLAG_S | m68ki_get_address_space(M)) +#define m68ki_read_8(M, A) m68ki_read_8_fc (M, A, m68k->s_flag | m68ki_get_address_space(M)) +#define m68ki_read_16(M, A) m68ki_read_16_fc(M, A, m68k->s_flag | m68ki_get_address_space(M)) +#define m68ki_read_32(M, A) m68ki_read_32_fc(M, A, m68k->s_flag | m68ki_get_address_space(M)) /* Write to the current data space */ -#define m68ki_write_8(M, A, V) m68ki_write_8_fc (M, A, FLAG_S | FUNCTION_CODE_USER_DATA, V) -#define m68ki_write_16(M, A, V) m68ki_write_16_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA, V) -#define m68ki_write_32(M, A, V) m68ki_write_32_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA, V) -#define m68ki_write_32_pd(M, A, V) m68ki_write_32_pd_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_8(M, A, V) m68ki_write_8_fc (M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_16(M, A, V) m68ki_write_16_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_32(M, A, V) m68ki_write_32_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA, V) +#define m68ki_write_32_pd(M, A, V) m68ki_write_32_pd_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA, V) /* map read immediate 8 to read immediate 16 */ #define m68ki_read_imm_8(M) MASK_OUT_ABOVE_8(m68ki_read_imm_16(M)) @@ -607,14 +584,14 @@ typedef struct _m68ki_cpu_core m68ki_cpu_core; #define m68ki_read_pcrel_32(M, A) m68k_read_pcrelative_32(M, A) /* Read from the program space */ -#define m68ki_read_program_8(M, A) m68ki_read_8_fc(M, A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) -#define m68ki_read_program_16(M, A) m68ki_read_16_fc(M, A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) -#define m68ki_read_program_32(M, A) m68ki_read_32_fc(M, A, FLAG_S | FUNCTION_CODE_USER_PROGRAM) +#define m68ki_read_program_8(M, A) m68ki_read_8_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_PROGRAM) +#define m68ki_read_program_16(M, A) m68ki_read_16_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_PROGRAM) +#define m68ki_read_program_32(M, A) m68ki_read_32_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_PROGRAM) /* Read from the data space */ -#define m68ki_read_data_8(M, A) m68ki_read_8_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA) -#define m68ki_read_data_16(M, A) m68ki_read_16_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA) -#define m68ki_read_data_32(M, A) m68ki_read_32_fc(M, A, FLAG_S | FUNCTION_CODE_USER_DATA) +#define m68ki_read_data_8(M, A) m68ki_read_8_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA) +#define m68ki_read_data_16(M, A) m68ki_read_16_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA) +#define m68ki_read_data_32(M, A) m68ki_read_32_fc(M, A, m68k->s_flag | FUNCTION_CODE_USER_DATA) @@ -847,18 +824,18 @@ INLINE UINT32 m68ki_read_imm_16(m68ki_cpu_core *m68k) { UINT32 result; - m68ki_set_fc(FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error(m68k, REG_PC, MODE_READ, FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_set_fc(m68k->s_flag | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(m68k, REG_PC, MODE_READ, m68k->s_flag | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ if(REG_PC != m68k->pref_addr) { m68k->pref_addr = REG_PC; - m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k->pref_addr)); + m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k, m68k->pref_addr)); } result = MASK_OUT_ABOVE_16(m68k->pref_data); REG_PC += 2; m68k->pref_addr = REG_PC; - m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k->pref_addr)); + m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k, m68k->pref_addr)); return result; } @@ -866,23 +843,23 @@ INLINE UINT32 m68ki_read_imm_32(m68ki_cpu_core *m68k) { UINT32 temp_val; - m68ki_set_fc(FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error(m68k, REG_PC, MODE_READ, FLAG_S | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_set_fc(m68k->s_flag | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ + m68ki_check_address_error(m68k, REG_PC, MODE_READ, m68k->s_flag | FUNCTION_CODE_USER_PROGRAM); /* auto-disable (see m68kcpu.h) */ if(REG_PC != m68k->pref_addr) { m68k->pref_addr = REG_PC; - m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k->pref_addr)); + m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k, m68k->pref_addr)); } temp_val = MASK_OUT_ABOVE_16(m68k->pref_data); REG_PC += 2; m68k->pref_addr = REG_PC; - m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k->pref_addr)); + m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k, m68k->pref_addr)); temp_val = MASK_OUT_ABOVE_32((temp_val << 16) | MASK_OUT_ABOVE_16(m68k->pref_data)); REG_PC += 2; m68k->pref_addr = REG_PC; - m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k->pref_addr)); + m68k->pref_data = m68k_read_immediate_16(m68k, ADDRESS_68K(m68k, m68k->pref_addr)); return temp_val; } @@ -900,44 +877,59 @@ INLINE UINT32 m68ki_read_imm_32(m68ki_cpu_core *m68k) INLINE UINT32 m68ki_read_8_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - return m68k_read_memory_8(m68k, ADDRESS_68K(address)); + return m68k_read_memory_8(m68k, ADDRESS_68K(m68k, address)); } INLINE UINT32 m68ki_read_16_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error_010_less(m68k, address, MODE_READ, fc); /* auto-disable (see m68kcpu.h) */ - return m68k_read_memory_16(m68k, ADDRESS_68K(address)); + if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) + { + m68ki_check_address_error(m68k, address, MODE_READ, fc); + } + return m68k_read_memory_16(m68k, ADDRESS_68K(m68k, address)); } INLINE UINT32 m68ki_read_32_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error_010_less(m68k, address, MODE_READ, fc); /* auto-disable (see m68kcpu.h) */ - return m68k_read_memory_32(m68k, ADDRESS_68K(address)); + if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) + { + m68ki_check_address_error(m68k, address, MODE_READ, fc); + } + return m68k_read_memory_32(m68k, ADDRESS_68K(m68k, address)); } INLINE void m68ki_write_8_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc, UINT32 value) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68k_write_memory_8(m68k, ADDRESS_68K(address), value); + m68k_write_memory_8(m68k, ADDRESS_68K(m68k, address), value); } INLINE void m68ki_write_16_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc, UINT32 value) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error_010_less(m68k, address, MODE_WRITE, fc); /* auto-disable (see m68kcpu.h) */ - m68k_write_memory_16(m68k, ADDRESS_68K(address), value); + if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) + { + m68ki_check_address_error(m68k, address, MODE_WRITE, fc); + } + m68k_write_memory_16(m68k, ADDRESS_68K(m68k, address), value); } INLINE void m68ki_write_32_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc, UINT32 value) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error_010_less(m68k, address, MODE_WRITE, fc); /* auto-disable (see m68kcpu.h) */ - m68k_write_memory_32(m68k, ADDRESS_68K(address), value); + if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) + { + m68ki_check_address_error(m68k, address, MODE_WRITE, fc); + } + m68k_write_memory_32(m68k, ADDRESS_68K(m68k, address), value); } INLINE void m68ki_write_32_pd_fc(m68ki_cpu_core *m68k, UINT32 address, UINT32 fc, UINT32 value) { m68ki_set_fc(fc); /* auto-disable (see m68kcpu.h) */ - m68ki_check_address_error_010_less(m68k, address, MODE_WRITE, fc); /* auto-disable (see m68kcpu.h) */ - m68k_write_memory_32_pd(m68k, ADDRESS_68K(address), value); + if (CPU_TYPE_IS_010_LESS(m68k->cpu_type)) + { + m68ki_check_address_error(m68k, address, MODE_WRITE, fc); + } + m68k_write_memory_32_pd(m68k, ADDRESS_68K(m68k, address), value); } @@ -1186,14 +1178,14 @@ INLINE void m68ki_fake_pull_32(m68ki_cpu_core *m68k) INLINE void m68ki_jump(m68ki_cpu_core *m68k, UINT32 new_pc) { REG_PC = new_pc; - change_pc(ADDRESS_68K(REG_PC)); + change_pc(ADDRESS_68K(m68k, REG_PC)); } INLINE void m68ki_jump_vector(m68ki_cpu_core *m68k, UINT32 vector) { - REG_PC = (vector<<2) + REG_VBR; + REG_PC = (vector<<2) + m68k->vbr; REG_PC = m68ki_read_data_32(m68k, REG_PC); - change_pc(ADDRESS_68K(REG_PC)); + change_pc(ADDRESS_68K(m68k, REG_PC)); } @@ -1215,7 +1207,7 @@ INLINE void m68ki_branch_16(m68ki_cpu_core *m68k, UINT32 offset) INLINE void m68ki_branch_32(m68ki_cpu_core *m68k, UINT32 offset) { REG_PC += offset; - change_pc(ADDRESS_68K(REG_PC)); + change_pc(ADDRESS_68K(m68k, REG_PC)); } @@ -1228,11 +1220,11 @@ INLINE void m68ki_branch_32(m68ki_cpu_core *m68k, UINT32 offset) INLINE void m68ki_set_s_flag(m68ki_cpu_core *m68k, UINT32 value) { /* Backup the old stack pointer */ - REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)] = REG_SP; + REG_SP_BASE[m68k->s_flag | ((m68k->s_flag>>1) & m68k->m_flag)] = REG_SP; /* Set the S flag */ - FLAG_S = value; + m68k->s_flag = value; /* Set the new stack pointer */ - REG_SP = REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)]; + REG_SP = REG_SP_BASE[m68k->s_flag | ((m68k->s_flag>>1) & m68k->m_flag)]; } /* Set the S and M flags and change the active stack pointer. @@ -1241,31 +1233,31 @@ INLINE void m68ki_set_s_flag(m68ki_cpu_core *m68k, UINT32 value) INLINE void m68ki_set_sm_flag(m68ki_cpu_core *m68k, UINT32 value) { /* Backup the old stack pointer */ - REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)] = REG_SP; + REG_SP_BASE[m68k->s_flag | ((m68k->s_flag>>1) & m68k->m_flag)] = REG_SP; /* Set the S and M flags */ - FLAG_S = value & SFLAG_SET; - FLAG_M = value & MFLAG_SET; + m68k->s_flag = value & SFLAG_SET; + m68k->m_flag = value & MFLAG_SET; /* Set the new stack pointer */ - REG_SP = REG_SP_BASE[FLAG_S | ((FLAG_S>>1) & FLAG_M)]; + REG_SP = REG_SP_BASE[m68k->s_flag | ((m68k->s_flag>>1) & m68k->m_flag)]; } /* Set the S and M flags. Don't touch the stack pointer. */ INLINE void m68ki_set_sm_flag_nosp(m68ki_cpu_core *m68k, UINT32 value) { /* Set the S and M flags */ - FLAG_S = value & SFLAG_SET; - FLAG_M = value & MFLAG_SET; + m68k->s_flag = value & SFLAG_SET; + m68k->m_flag = value & MFLAG_SET; } /* Set the condition code register */ INLINE void m68ki_set_ccr(m68ki_cpu_core *m68k, UINT32 value) { - FLAG_X = BIT_4(value) << 4; - FLAG_N = BIT_3(value) << 4; - FLAG_Z = !BIT_2(value); - FLAG_V = BIT_1(value) << 6; - FLAG_C = BIT_0(value) << 8; + m68k->x_flag = BIT_4(value) << 4; + m68k->n_flag = BIT_3(value) << 4; + m68k->not_z_flag = !BIT_2(value); + m68k->v_flag = BIT_1(value) << 6; + m68k->c_flag = BIT_0(value) << 8; } /* Set the status register but don't check for interrupts */ @@ -1275,9 +1267,9 @@ INLINE void m68ki_set_sr_noint(m68ki_cpu_core *m68k, UINT32 value) value &= m68k->sr_mask; /* Now set the status register */ - FLAG_T1 = BIT_F(value); - FLAG_T0 = BIT_E(value); - FLAG_INT_MASK = value & 0x0700; + m68k->t1_flag = BIT_F(value); + m68k->t0_flag = BIT_E(value); + m68k->int_mask = value & 0x0700; m68ki_set_ccr(m68k, value); m68ki_set_sm_flag(m68k, (value >> 11) & 6); } @@ -1291,9 +1283,9 @@ INLINE void m68ki_set_sr_noint_nosp(m68ki_cpu_core *m68k, UINT32 value) value &= m68k->sr_mask; /* Now set the status register */ - FLAG_T1 = BIT_F(value); - FLAG_T0 = BIT_E(value); - FLAG_INT_MASK = value & 0x0700; + m68k->t1_flag = BIT_F(value); + m68k->t0_flag = BIT_E(value); + m68k->int_mask = value & 0x0700; m68ki_set_ccr(m68k, value); m68ki_set_sm_flag_nosp(m68k, (value >> 11) & 6); } @@ -1315,7 +1307,7 @@ INLINE UINT32 m68ki_init_exception(m68ki_cpu_core *m68k) UINT32 sr = m68ki_get_sr(m68k); /* Turn off trace flag, clear pending traces */ - FLAG_T1 = FLAG_T0 = 0; + m68k->t1_flag = m68k->t0_flag = 0; m68ki_clear_trace(); /* Enter supervisor mode */ m68ki_set_s_flag(m68k, SFLAG_SET); @@ -1374,7 +1366,7 @@ INLINE void m68ki_stack_frame_buserr(m68ki_cpu_core *m68k, UINT32 sr) { m68ki_push_32(m68k, REG_PC); m68ki_push_16(m68k, sr); - m68ki_push_16(m68k, REG_IR); + m68ki_push_16(m68k, m68k->ir); m68ki_push_32(m68k, m68k->aerr_address); /* access address */ /* 0 0 0 0 0 0 0 0 0 0 0 R/W I/N FC * R/W 0 = write, 1 = read @@ -1624,7 +1616,7 @@ INLINE void m68ki_exception_privilege_violation(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_PRIVILEGE_VIOLATION); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_PRIVILEGE_VIOLATION] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_PRIVILEGE_VIOLATION] - m68k->cyc_instruction[m68k->ir]); } /* Exception for A-Line instructions */ @@ -1633,8 +1625,8 @@ INLINE void m68ki_exception_1010(m68ki_cpu_core *m68k) UINT32 sr; #if M68K_LOG_1010_1111 == OPT_ON M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: called 1010 instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PPC), REG_IR, - m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PPC), m68k->ir, + m68ki_disassemble_quick(ADDRESS_68K(m68k, REG_PPC)))); #endif sr = m68ki_init_exception(m68k); @@ -1642,7 +1634,7 @@ INLINE void m68ki_exception_1010(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_1010); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_1010] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_1010] - m68k->cyc_instruction[m68k->ir]); } /* Exception for F-Line instructions */ @@ -1652,8 +1644,8 @@ INLINE void m68ki_exception_1111(m68ki_cpu_core *m68k) #if M68K_LOG_1010_1111 == OPT_ON M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: called 1111 instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PPC), REG_IR, - m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PPC), m68k->ir, + m68ki_disassemble_quick(ADDRESS_68K(m68k, REG_PPC)))); #endif sr = m68ki_init_exception(m68k); @@ -1661,7 +1653,7 @@ INLINE void m68ki_exception_1111(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_1111); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_1111] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_1111] - m68k->cyc_instruction[m68k->ir]); } /* Exception for illegal instructions */ @@ -1670,8 +1662,8 @@ INLINE void m68ki_exception_illegal(m68ki_cpu_core *m68k) UINT32 sr; M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: illegal instruction %04x (%s)\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PPC), REG_IR, - m68ki_disassemble_quick(ADDRESS_68K(REG_PPC)))); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PPC), m68k->ir, + m68ki_disassemble_quick(ADDRESS_68K(m68k, REG_PPC)))); sr = m68ki_init_exception(m68k); @@ -1684,7 +1676,7 @@ INLINE void m68ki_exception_illegal(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_ILLEGAL_INSTRUCTION); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_ILLEGAL_INSTRUCTION] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_ILLEGAL_INSTRUCTION] - m68k->cyc_instruction[m68k->ir]); } /* Exception for format errror in RTE */ @@ -1695,7 +1687,7 @@ INLINE void m68ki_exception_format_error(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_FORMAT_ERROR); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_FORMAT_ERROR] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_FORMAT_ERROR] - m68k->cyc_instruction[m68k->ir]); } /* Exception for address error */ @@ -1721,7 +1713,7 @@ INLINE void m68ki_exception_address_error(m68ki_cpu_core *m68k) m68ki_jump_vector(m68k, EXCEPTION_ADDRESS_ERROR); /* Use up some clock cycles and undo the instruction's cycles */ - USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_ADDRESS_ERROR] - m68k->cyc_instruction[REG_IR]); + USE_CYCLES(m68k, m68k->cyc_exception[EXCEPTION_ADDRESS_ERROR] - m68k->cyc_instruction[m68k->ir]); } @@ -1757,7 +1749,7 @@ void m68ki_exception_interrupt(m68ki_cpu_core *m68k, UINT32 int_level) else if(vector > 255) { M68K_DO_LOG_EMU((M68K_LOG_FILEHANDLE "%s at %08x: Interrupt acknowledge returned invalid vector $%x\n", - m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(REG_PC), vector)); + m68ki_cpu_names[m68k->cpu_type], ADDRESS_68K(m68k, REG_PC), vector)); return; } @@ -1765,21 +1757,21 @@ void m68ki_exception_interrupt(m68ki_cpu_core *m68k, UINT32 int_level) sr = m68ki_init_exception(m68k); /* Set the interrupt mask to the level of the one being serviced */ - FLAG_INT_MASK = int_level<<8; + m68k->int_mask = int_level<<8; /* Get the new PC */ - new_pc = m68ki_read_data_32(m68k, (vector<<2) + REG_VBR); + new_pc = m68ki_read_data_32(m68k, (vector<<2) + m68k->vbr); /* If vector is uninitialized, call the uninitialized interrupt vector */ if(new_pc == 0) - new_pc = m68ki_read_data_32(m68k, (EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + REG_VBR); + new_pc = m68ki_read_data_32(m68k, (EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + m68k->vbr); /* Generate a stack frame */ m68ki_stack_frame_0000(m68k, REG_PC, sr, vector); - if(FLAG_M && CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) + if(m68k->m_flag && CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { /* Create throwaway frame */ - m68ki_set_sm_flag(m68k, FLAG_S); /* clear M */ + m68ki_set_sm_flag(m68k, m68k->s_flag); /* clear M */ sr |= 0x2000; /* Same as SR in master stack frame except S is forced high */ m68ki_stack_frame_0001(m68k, REG_PC, sr, vector); } @@ -1799,7 +1791,7 @@ INLINE void m68ki_check_interrupts(m68ki_cpu_core *m68k) m68k->nmi_pending = FALSE; m68ki_exception_interrupt(m68k, 7); } - else if(m68k->int_level > FLAG_INT_MASK) + else if(m68k->int_level > m68k->int_mask) m68ki_exception_interrupt(m68k, m68k->int_level>>8); } diff --git a/src/emu/cpu/m68000/m68kfpu.c b/src/emu/cpu/m68000/m68kfpu.c index d7950ff2e2b..e818260b2fc 100644 --- a/src/emu/cpu/m68000/m68kfpu.c +++ b/src/emu/cpu/m68000/m68kfpu.c @@ -435,7 +435,7 @@ static void WRITE_EA_FPE(m68ki_cpu_core *m68k, int ea, fp_reg fpr) static void fpgen_rm_reg(m68ki_cpu_core *m68k, UINT16 w2) { - int ea = REG_IR & 0x3f; + int ea = m68k->ir & 0x3f; int rm = (w2 >> 14) & 0x1; int src = (w2 >> 10) & 0x7; int dst = (w2 >> 7) & 0x7; @@ -573,7 +573,7 @@ static void fpgen_rm_reg(m68ki_cpu_core *m68k, UINT16 w2) static void fmove_reg_mem(m68ki_cpu_core *m68k, UINT16 w2) { - int ea = REG_IR & 0x3f; + int ea = m68k->ir & 0x3f; int src = (w2 >> 7) & 0x7; int dst = (w2 >> 10) & 0x7; //int kfactor = w2 & 0x7f; @@ -631,7 +631,7 @@ static void fmove_reg_mem(m68ki_cpu_core *m68k, UINT16 w2) static void fmove_fpcr(m68ki_cpu_core *m68k, UINT16 w2) { - int ea = REG_IR & 0x3f; + int ea = m68k->ir & 0x3f; int dir = (w2 >> 13) & 0x1; int reg = (w2 >> 10) & 0x7; @@ -662,7 +662,7 @@ static void fmove_fpcr(m68ki_cpu_core *m68k, UINT16 w2) static void fmovem(m68ki_cpu_core *m68k, UINT16 w2) { int i; - int ea = REG_IR & 0x3f; + int ea = m68k->ir & 0x3f; int dir = (w2 >> 13) & 0x1; int mode = (w2 >> 11) & 0x3; int reglist = w2 & 0xff; @@ -712,7 +712,7 @@ static void fmovem(m68ki_cpu_core *m68k, UINT16 w2) static void fbcc16(m68ki_cpu_core *m68k) { INT32 offset; - int condition = REG_IR & 0x3f; + int condition = m68k->ir & 0x3f; offset = (INT16)(OPER_I_16(m68k)); @@ -729,7 +729,7 @@ static void fbcc16(m68ki_cpu_core *m68k) static void fbcc32(m68ki_cpu_core *m68k) { INT32 offset; - int condition = REG_IR & 0x3f; + int condition = m68k->ir & 0x3f; offset = OPER_I_32(m68k); @@ -746,7 +746,7 @@ static void fbcc32(m68ki_cpu_core *m68k) void m68040_fpu_op0(m68ki_cpu_core *m68k) { - switch ((REG_IR >> 6) & 0x3) + switch ((m68k->ir >> 6) & 0x3) { case 0: { @@ -796,15 +796,15 @@ void m68040_fpu_op0(m68ki_cpu_core *m68k) break; } - default: fatalerror("m68040_fpu_op0: unimplemented main op %d\n", (REG_IR >> 6) & 0x3); + default: fatalerror("m68040_fpu_op0: unimplemented main op %d\n", (m68k->ir >> 6) & 0x3); } } void m68040_fpu_op1(m68ki_cpu_core *m68k) { - int ea = REG_IR & 0x3f; + int ea = m68k->ir & 0x3f; - switch ((REG_IR >> 6) & 0x3) + switch ((m68k->ir >> 6) & 0x3) { case 0: // FSAVE <ea> { @@ -820,7 +820,7 @@ void m68040_fpu_op1(m68ki_cpu_core *m68k) break; } - default: fatalerror("m68040_fpu_op1: unimplemented op %d at %08X\n", (REG_IR >> 6) & 0x3, REG_PC-2); + default: fatalerror("m68040_fpu_op1: unimplemented op %d at %08X\n", (m68k->ir >> 6) & 0x3, REG_PC-2); } } diff --git a/src/emu/cpu/m68000/m68kmake.c b/src/emu/cpu/m68000/m68kmake.c index 1a82b5e118f..a64c9ef3a29 100644 --- a/src/emu/cpu/m68000/m68kmake.c +++ b/src/emu/cpu/m68000/m68kmake.c @@ -962,8 +962,8 @@ void generate_opcode_cc_variants(FILE* filep, body_struct* body, replace_struct* for(i=2;i<16;i++) { /* Add replace strings for this condition code */ - sprintf(repl, "COND_%s()", g_cc_table[i][1]); - sprintf(replnot, "COND_NOT_%s()", g_cc_table[i][1]); + sprintf(repl, "COND_%s(m68k)", g_cc_table[i][1]); + sprintf(replnot, "COND_NOT_%s(m68k)", g_cc_table[i][1]); add_replace_string(replace, ID_OPHANDLER_CC, repl); add_replace_string(replace, ID_OPHANDLER_NOT_CC, replnot); |