URL
https://opencores.org/ocsvn/aemb/aemb/trunk
[/] [aemb/] [trunk/] [sw/] [cc/] [aemb/] [msr.hh] - Diff between revs 107 and 109
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 107 |
Rev 109 |
Line 1... |
Line 1... |
/* $Id: msr.hh,v 1.1 2008-04-09 19:48:37 sybreon Exp $
|
/* $Id: msr.hh,v 1.2 2008-04-11 11:48:37 sybreon Exp $
|
**
|
**
|
** AEMB2 HI-PERFORMANCE CPU
|
** AEMB2 HI-PERFORMANCE CPU
|
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap
|
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap
|
**
|
**
|
** This file is part of AEMB.
|
** This file is part of AEMB.
|
Line 52... |
Line 52... |
*/
|
*/
|
|
|
inline int getMSR()
|
inline int getMSR()
|
{
|
{
|
int rmsr;
|
int rmsr;
|
asm ("mfs %0, rmsr":"=r"(rmsr));
|
asm volatile ("mfs %0, rmsr":"=r"(rmsr));
|
return rmsr;
|
return rmsr;
|
}
|
}
|
|
|
/**
|
/**
|
Write a value to the MSR register
|
Write a value to the MSR register
|
@param rmsr value to write
|
@param rmsr value to write
|
*/
|
*/
|
|
|
inline void setMSR(int rmsr)
|
inline void setMSR(int rmsr)
|
{
|
{
|
asm ("mts rmsr, %0"::"r"(rmsr));
|
asm volatile ("mts rmsr, %0"::"r"(rmsr));
|
}
|
}
|
|
|
|
/**
|
|
Enable global interrupts
|
|
*/
|
|
inline void enableInterrupts()
|
|
{
|
|
int rmsr = getMSR();
|
|
rmsr |= MSR_IE;
|
|
setMSR(rmsr);
|
|
}
|
|
|
|
/**
|
|
Disable global interrupts
|
|
*/
|
|
inline void disableInterrupts()
|
|
{
|
|
int rmsr = getMSR();
|
|
rmsr &= ~MSR_IE;
|
|
setMSR(rmsr);
|
|
}
|
|
|
|
|
};
|
};
|
#endif
|
#endif
|
|
|
/*
|
/*
|
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
|
Revision 1.1 2008/04/09 19:48:37 sybreon
|
|
Added new C++ files
|
|
|
*/
|
*/
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.