xref: /freebsd/contrib/gdtoa/gdtoa_fltrnds.h (revision 7d4b968b0fa6afc6bca132c27e2041c979ee6101)
14848dd08SDavid Schultz 	FPI *fpi, fpi1;
24848dd08SDavid Schultz 	int Rounding;
34848dd08SDavid Schultz #ifdef Trust_FLT_ROUNDS /*{{ only define this if FLT_ROUNDS really works! */
44848dd08SDavid Schultz 	Rounding = Flt_Rounds;
54848dd08SDavid Schultz #else /*}{*/
64848dd08SDavid Schultz 	Rounding = 1;
74848dd08SDavid Schultz 	switch(fegetround()) {
84848dd08SDavid Schultz 	  case FE_TOWARDZERO:	Rounding = 0; break;
94848dd08SDavid Schultz 	  case FE_UPWARD:	Rounding = 2; break;
104848dd08SDavid Schultz 	  case FE_DOWNWARD:	Rounding = 3;
114848dd08SDavid Schultz 	  }
124848dd08SDavid Schultz #endif /*}}*/
134848dd08SDavid Schultz 	fpi = &fpi0;
144848dd08SDavid Schultz 	if (Rounding != 1) {
154848dd08SDavid Schultz 		fpi1 = fpi0;
164848dd08SDavid Schultz 		fpi = &fpi1;
174848dd08SDavid Schultz 		fpi1.rounding = Rounding;
184848dd08SDavid Schultz 		}
19