static void tst_b(struct cpu *cpu, WORD op) { BYTE s; s = ea_read_byte(cpu, op&0x3f, 0); cpu_set_flags_move(cpu, s&0x80, s); ADD_CYCLE(4); }
static void tst_l(struct cpu *cpu, WORD op) { LONG s; s = ea_read_long(cpu, op&0x3f, 0); cpu_set_flags_move(cpu, s&0x80000000, s); ADD_CYCLE(4); }
static void tst_w(struct cpu *cpu, WORD op) { WORD s; s = ea_read_word(cpu, op&0x3f, 0); cpu_set_flags_move(cpu, s&0x8000, s); ADD_CYCLE(4); }
static void swap(struct cpu *cpu, WORD op) { int r; r = op&0x7; cpu->d[r] = ((cpu->d[r]&0xffff0000)>>16)|((cpu->d[r]&0xffff)<<16); ADD_CYCLE(4); cpu_set_flags_move(cpu, cpu->d[r]&0x80000000, cpu->d[r]); cpu_prefetch(); }
static void not_b(struct cpu *cpu, WORD op) { BYTE r; ADD_CYCLE(4); if(op&0x38) { ADD_CYCLE(4); } r = ~ea_read_byte(cpu, op&0x3f, 1); ea_set_prefetch_before_write(); ea_write_byte(cpu, op&0x3f, r); cpu_set_flags_move(cpu, r&0x80, r); }
static void not_l(struct cpu *cpu, WORD op) { LONG r; ADD_CYCLE(6); if(op&0x38) { ADD_CYCLE(6); } r = ~ea_read_long(cpu, op&0x3f, 1); ea_set_prefetch_before_write(); ea_write_long(cpu, op&0x3f, r); cpu_set_flags_move(cpu, r&0x80000000, r); }
static void mulu(struct cpu *cpu, WORD op) { LONG s,d,r; int reg; int i; ENTER; s = ea_read_word(cpu, op&0x3f, 0); reg = (op&0xe00)>>9; d = cpu->d[reg]&0xffff; r = s*d; cpu->d[reg] = r; ADD_CYCLE(38); for(i=0;i<16;i++) { if(s&(1<<i)) { ADD_CYCLE(2); } } cpu_set_flags_move(cpu, r&0x80000000, r); }