blob: bab7b69ca2b7ddebb70b0ad0c8bccb55fb49cf25 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* This does not work on m68hc11 due to the asm statement which forces
two 'long' (32-bits) variables to go in registers. */
/* { dg-do assemble } */
/* { dg-xfail-if "" { m6811-*-* m6812-*-* } { "*" } { "" } } */
static inline unsigned long rdfpcr(void)
{
unsigned long tmp, ret;
__asm__ ("" : "=r"(tmp), "=r"(ret));
return ret;
}
static inline unsigned long
swcr_update_status(unsigned long swcr, unsigned long fpcr)
{
swcr &= ~0x7e0000ul;
swcr |= (fpcr >> 3) & 0x7e0000ul;
return swcr;
}
unsigned long osf_getsysinfo(unsigned long flags)
{
unsigned long w;
w = swcr_update_status(flags, rdfpcr());
return w;
}
|