1 #include <msvcrt/math.h>
3 double ceil (double __x
)
5 register double __value
;
6 __volatile
unsigned short int __cw
, __cwtmp
;
8 __asm
__volatile ("fnstcw %0" : "=m" (__cw
));
9 __cwtmp
= (__cw
& 0xf3ff) | 0x0800; /* rounding up */
10 __asm
__volatile ("fldcw %0" : : "m" (__cwtmp
));
11 __asm
__volatile ("frndint" : "=t" (__value
) : "0" (__x
));
12 __asm
__volatile ("fldcw %0" : : "m" (__cw
));