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

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_70/] [or1ksim/] [tick/] [tick.c] - Diff between revs 1410 and 1432

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

Rev 1410 Rev 1432
Line 34... Line 34...
#include "port.h"
#include "port.h"
#include "arch.h"
#include "arch.h"
#include "abstract.h"
#include "abstract.h"
#include "except.h"
#include "except.h"
#include "tick.h"
#include "tick.h"
 
#include "opcode/or32.h"
#include "spr_defs.h"
#include "spr_defs.h"
 
#include "execute.h"
#include "pic.h"
#include "pic.h"
#include "sprs.h"
#include "sprs.h"
#include "sim-config.h"
#include "sim-config.h"
#include "sched.h"
#include "sched.h"
#include "debug.h"
#include "debug.h"
Line 70... Line 72...
  TRACE("tick_job param: %i, mode: %i at %lli (%lli)\n", (int)param, mode,
  TRACE("tick_job param: %i, mode: %i at %lli (%lli)\n", (int)param, mode,
        runtime.sim.cycles, runtime.cpu.instructions);
        runtime.sim.cycles, runtime.cpu.instructions);
  switch (mode) {
  switch (mode) {
  case 1:
  case 1:
    if (!param) {
    if (!param) {
      sprs[SPR_TTCR] = ttcr = 0;
      cpu_state.sprs[SPR_TTCR] = ttcr = 0;
      cycles_start = runtime.sim.cycles - ttcr;
      cycles_start = runtime.sim.cycles - ttcr;
      TRACE("Scheduleing timer job for %li\n", (ttmr & SPR_TTMR_PERIOD) - ttcr);
      TRACE("Scheduleing timer job for %li\n", (ttmr & SPR_TTMR_PERIOD) - ttcr);
      SCHED_ADD(tick_job, (void *)0, (ttmr & SPR_TTMR_PERIOD) - ttcr);
      SCHED_ADD(tick_job, (void *)0, (ttmr & SPR_TTMR_PERIOD) - ttcr);
    }
    }
  case 2:
  case 2:
Line 119... Line 121...
      TRACE("Removeing scheduled jobs\n");
      TRACE("Removeing scheduled jobs\n");
      SCHED_FIND_REMOVE(tick_job, (void *)0);
      SCHED_FIND_REMOVE(tick_job, (void *)0);
      SCHED_FIND_REMOVE(tick_job, (void *)1);
      SCHED_FIND_REMOVE(tick_job, (void *)1);
      break;
      break;
    case 1:    /* Timer should auto restart */
    case 1:    /* Timer should auto restart */
      sprs[SPR_TTCR] = ttcr = 0;
      cpu_state.sprs[SPR_TTCR] = ttcr = 0;
      cycles_start = runtime.sim.cycles;
      cycles_start = runtime.sim.cycles;
      TRACE("Removeing scheduled jobs\n");
      TRACE("Removeing scheduled jobs\n");
      SCHED_FIND_REMOVE(tick_job, (void *)0);
      SCHED_FIND_REMOVE(tick_job, (void *)0);
      SCHED_FIND_REMOVE(tick_job, (void *)1);
      SCHED_FIND_REMOVE(tick_job, (void *)1);
      TRACE("Scheduleing timer job for %li\n", (ttmr & SPR_TTMR_PERIOD) - ttcr);
      TRACE("Scheduleing timer job for %li\n", (ttmr & SPR_TTMR_PERIOD) - ttcr);

powered by: WebSVN 2.1.0

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