112,113c112
< #if defined(__sun) || defined (__OpenBSD__)
< fp_rnd newrnd = FP_RN;
---
> int newrnd = M5_FE_TONEAREST;
115,118c114,117
< case 0: newrnd = FP_RN; break;
< case 1: newrnd = FP_RZ; break;
< case 2: newrnd = FP_RP; break;
< case 3: newrnd = FP_RM; break;
---
> case 0: newrnd = M5_FE_TONEAREST; break;
> case 1: newrnd = M5_FE_TOWARDZERO; break;
> case 2: newrnd = M5_FE_UPWARD; break;
> case 3: newrnd = M5_FE_DOWNWARD; break;
120,131c119,120
< fp_rnd oldrnd = fpsetround(newrnd);
< #else
< int newrnd = FE_TONEAREST;
< switch (Fsr<31:30>) {
< case 0: newrnd = FE_TONEAREST; break;
< case 1: newrnd = FE_TOWARDZERO; break;
< case 2: newrnd = FE_UPWARD; break;
< case 3: newrnd = FE_DOWNWARD; break;
< }
< int oldrnd = fegetround();
< fesetround(newrnd);
< #endif
---
> int oldrnd = m5_fegetround();
> m5_fesetround(newrnd);
138,142c127
< #if defined(__sun) || defined (__OpenBSD__)
< fpsetround(oldrnd);
< #else
< fesetround(oldrnd);
< #endif
---
> m5_fesetround(oldrnd);