URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
/* This does not work on m68hc11 due to the asm statement which forces
|
/* This does not work on m68hc11 due to the asm statement which forces
|
two 'long' (32-bits) variables to go in registers. */
|
two 'long' (32-bits) variables to go in registers. */
|
/* { dg-do assemble } */
|
/* { dg-do assemble } */
|
/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
|
/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
|
|
|
static inline unsigned long rdfpcr(void)
|
static inline unsigned long rdfpcr(void)
|
{
|
{
|
unsigned long tmp, ret;
|
unsigned long tmp, ret;
|
__asm__ ("" : "=r"(tmp), "=r"(ret));
|
__asm__ ("" : "=r"(tmp), "=r"(ret));
|
return ret;
|
return ret;
|
}
|
}
|
|
|
static inline unsigned long
|
static inline unsigned long
|
swcr_update_status(unsigned long swcr, unsigned long fpcr)
|
swcr_update_status(unsigned long swcr, unsigned long fpcr)
|
{
|
{
|
swcr &= ~0x7e0000ul;
|
swcr &= ~0x7e0000ul;
|
swcr |= (fpcr >> 3) & 0x7e0000ul;
|
swcr |= (fpcr >> 3) & 0x7e0000ul;
|
return swcr;
|
return swcr;
|
}
|
}
|
|
|
unsigned long osf_getsysinfo(unsigned long flags)
|
unsigned long osf_getsysinfo(unsigned long flags)
|
{
|
{
|
unsigned long w;
|
unsigned long w;
|
w = swcr_update_status(flags, rdfpcr());
|
w = swcr_update_status(flags, rdfpcr());
|
return w;
|
return w;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.