static void addq_l(struct cpu *cpu, int s, int mode) { LONG d,r; d = ea_read_long(cpu, mode, 1); r = s+d; ea_write_long(cpu, mode, r); ADD_CYCLE(8); cpu_set_flags_add(cpu, 0, d&0x80000000, r&0x80000000, r); }
static void addq_b(struct cpu *cpu, int s, int mode) { BYTE d,r; d = ea_read_byte(cpu, mode, 1); r = s+d; ea_write_byte(cpu, mode, r); ADD_CYCLE(4); cpu_set_flags_add(cpu, 0, d&0x80, r&0x80, r); }
static void addq_w(struct cpu *cpu, int s, int mode) { WORD d,r; d = ea_read_word(cpu, mode, 1); r = s+d; ea_write_word(cpu, mode, r); ADD_CYCLE(4); cpu_set_flags_add(cpu, 0, d&0x8000, r&0x8000, r); }
static void addi_b(struct cpu *cpu, WORD op) { BYTE s,d,r; s = bus_read_word(cpu->pc)&0xff; cpu->pc += 2; if(op&0x38) { ADD_CYCLE(12); } else { ADD_CYCLE(8); } d = ea_read_byte(cpu, op&0x3f, 1); r = d+s; ea_set_prefetch_before_write(); ea_write_byte(cpu, op&0x3f, r); cpu_set_flags_add(cpu, s&0x80, d&0x80, r&0x80, r); }
static void addi_l(struct cpu *cpu, WORD op) { LONG s,d,r; s = bus_read_long(cpu->pc); cpu->pc += 4; if(op&0x38) { ADD_CYCLE(20); } else { ADD_CYCLE(16); } d = ea_read_long(cpu, op&0x3f, 1); r = d+s; ea_set_prefetch_before_write(); ea_write_long(cpu, op&0x3f, r); cpu_set_flags_add(cpu, s&0x80000000, d&0x80000000, r&0x80000000, r); }