URL
https://opencores.org/ocsvn/or1k/or1k/trunk
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);
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.