volatile short __cw, __cwtmp;
__volatile unsigned short int __cw, __cwtmp;
ceil (double __x){  register double __value;  volatile short __cw, __cwtmp;  __asm volatile ("fnstcw %0" : "=m" (__cw));  __cwtmp = (__cw & 0xf3ff) | 0x0800; /* rounding up */  __asm volatile ("fldcw %0" : : "m" (__cwtmp));  __asm volatile ("frndint" : "=t" (__value) : "0" (__x));  __asm volatile ("fldcw %0" : : "m" (__cw));  return __value;}