Beispiel #1
0
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);
}
Beispiel #2
0
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);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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();
}
Beispiel #5
0
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);
}
Beispiel #6
0
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);
}
Beispiel #7
0
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);
}