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

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel-0-3-0-rc1/] [or1ksim/] [cpu/] [or1k/] [sprs.c] - Diff between revs 450 and 464

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

Rev 450 Rev 464
Line 30... Line 30...
extern int tt_stopped; /* defined in tick.c */
extern int tt_stopped; /* defined in tick.c */
extern int flag;
extern int flag;
 
 
sprword sprs[MAX_SPRS];
sprword sprs[MAX_SPRS];
 
 
int temp_disable_except = 0;
 
int audio_cnt = 0;
int audio_cnt = 0;
 
 
static FILE *fo = 0;
static FILE *fo = 0;
/* Set a specific SPR with a value. */
/* Set a specific SPR with a value. */
inline void
inline void
Line 143... Line 142...
      return pc;
      return pc;
    else if (regno == SPR_PPC)
    else if (regno == SPR_PPC)
      return prevpc;
      return prevpc;
  }
  }
 
 
  /* MM: l.rfe, for example, temporarly disables
 /* Exceptions are allways enabled */
     exceptions.  We will make it appear as SR bit
 if (regno == SPR_SR)
     is set.  */
    return sprs[regno] | SPR_SR_EXR;
  if (regno == SPR_SR && temp_disable_except > 0)
 
    return sprs[regno] & ~SPR_SR_EXR;
 
  /*  printf("mfspr(%x)%x\n", regno, sprs[regno]); */
 
 
 
  if (regno < MAX_SPRS)
  if (regno < MAX_SPRS)
    return sprs[regno];
    return sprs[regno];
  else {
  else {
    printf("\nABORT: read out of SPR range %08X\n", regno);
    printf("\nABORT: read out of SPR range %08X\n", regno);

powered by: WebSVN 2.1.0

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