6 double ceil (double __x
)
8 register double __value
;
10 __volatile
unsigned short int __cw
, __cwtmp
;
12 __asm
__volatile ("fnstcw %0" : "=m" (__cw
));
13 __cwtmp
= (__cw
& 0xf3ff) | 0x0800; /* rounding up */
14 __asm
__volatile ("fldcw %0" : : "m" (__cwtmp
));
15 __asm
__volatile ("frndint" : "=t" (__value
) : "0" (__x
));
16 __asm
__volatile ("fldcw %0" : : "m" (__cw
));
18 __value
= linkme_ceil(__x
);