1 /* 2 * Written by J.T. Conklin, Apr 10, 1995 3 * Public domain. 4 */ 5 6 #include <ieeefp.h> 7 8 fp_rnd 9 fpsetround(rnd_dir) 10 fp_rnd rnd_dir; 11 { 12 fp_rnd old; 13 fp_rnd new; 14 15 __asm__("st %%fsr,%0" : "=m" (*&old)); 16 17 new = old; 18 new &= ~(0x03 << 30); 19 new |= ((rnd_dir & 0x03) << 30); 20 21 __asm__("ld %0,%%fsr" : : "m" (*&new)); 22 23 return (old >> 30) & 0x03; 24 } 25