OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1ksim/] [cpu/] [or32/] [insnset.c] - Diff between revs 100 and 104

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 100 Rev 104
Line 105... Line 105...
    int t = runtime.sim.mem_cycles;
    int t = runtime.sim.mem_cycles;
    runtime.sim.mem_cycles = old_cyc;
    runtime.sim.mem_cycles = old_cyc;
    sbuf_store (t - old_cyc);
    sbuf_store (t - old_cyc);
  }
  }
}
}
 
INSTRUCTION (l_lws) {
 
  uint32_t val;
 
  if (config.cpu.sbuf_len) sbuf_load ();
 
  val = eval_mem32(PARAM1, &breakpoint);
 
  /* If eval operand produced exception don't set anything. JPB changed to
 
     trigger on breakpoint, as well as except_pending (seemed to be a bug). */
 
  if (!(except_pending || breakpoint))
 
    SET_PARAM0(val);
 
}
INSTRUCTION (l_lwz) {
INSTRUCTION (l_lwz) {
  uint32_t val;
  uint32_t val;
  if (config.cpu.sbuf_len) sbuf_load ();
  if (config.cpu.sbuf_len) sbuf_load ();
  val = eval_mem32(PARAM1, &breakpoint);
  val = eval_mem32(PARAM1, &breakpoint);
  /* If eval operand produced exception don't set anything. JPB changed to
  /* If eval operand produced exception don't set anything. JPB changed to
Line 575... Line 584...
  } else l_invalid();
  } else l_invalid();
}
}
INSTRUCTION (lf_madd_s) {
INSTRUCTION (lf_madd_s) {
  if (config.cpu.hardfloat) {
  if (config.cpu.hardfloat) {
  FLOAT param0,param1, param2;
  FLOAT param0,param1, param2;
  param0.hval = PARAM0;
  param0.hval = (uorreg_t)PARAM0;
  param1.hval = PARAM1;
  param1.hval = (uorreg_t)PARAM1;
  param2.hval = PARAM2;
  param2.hval = PARAM2;
  param0.fval += param1.fval * param2.fval;
  param0.fval += param1.fval * param2.fval;
  SET_PARAM0(param0.hval);
  SET_PARAM0(param0.hval);
  } else l_invalid();
  } else l_invalid();
}
}
Line 596... Line 605...
INSTRUCTION (lf_rem_s) {
INSTRUCTION (lf_rem_s) {
  if (config.cpu.hardfloat) {
  if (config.cpu.hardfloat) {
  FLOAT param0, param1, param2;
  FLOAT param0, param1, param2;
  param1.hval = PARAM1;
  param1.hval = PARAM1;
  param2.hval = PARAM2;
  param2.hval = PARAM2;
  param0.fval = param1.fval / param2.fval;
  param0.fval = fmodf (param1.fval, param2.fval);
  SET_PARAM0(param0.hval);
  SET_PARAM0(param0.hval);
  } else l_invalid();
  } else l_invalid();
}
}
INSTRUCTION (lf_sfeq_s) {
INSTRUCTION (lf_sfeq_s) {
  if (config.cpu.hardfloat) {
  if (config.cpu.hardfloat) {
Line 690... Line 699...
}
}
INSTRUCTION (l_cust4) {
INSTRUCTION (l_cust4) {
}
}
INSTRUCTION (lf_cust1) {
INSTRUCTION (lf_cust1) {
}
}
INSTRUCTION (lf_cust2) {
 
}
 
INSTRUCTION (lf_cust3) {
 
}
 
INSTRUCTION (lf_cust4) {
 
}
 
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.