Revision 7a0e1f41 target-sparc/op_helper.c

b/target-sparc/op_helper.c
1
#include <math.h>
2
#include <fenv.h>
3 1
#include "exec.h"
4 2

  
5 3
//#define DEBUG_MMU
......
24 22

  
25 23
void do_fabss(void)
26 24
{
27
    FT0 = fabsf(FT1);
25
    FT0 = float32_abs(FT1);
28 26
}
29 27

  
30 28
void do_fsqrts(void)
31 29
{
32
    FT0 = sqrtf(FT1);
30
    FT0 = float32_sqrt(FT1, &env->fp_status);
33 31
}
34 32

  
35 33
void do_fsqrtd(void)
36 34
{
37
    DT0 = sqrt(DT1);
35
    DT0 = float64_sqrt(DT1, &env->fp_status);
38 36
}
39 37

  
40 38
void do_fcmps (void)
......
252 250

  
253 251
void helper_ldfsr(void)
254 252
{
253
    int rnd_mode;
255 254
    switch (env->fsr & FSR_RD_MASK) {
256 255
    case FSR_RD_NEAREST:
257
	fesetround(FE_TONEAREST);
256
        rnd_mode = float_round_nearest_even;
258 257
	break;
259 258
    case FSR_RD_ZERO:
260
	fesetround(FE_TOWARDZERO);
259
        rnd_mode = float_round_to_zero;
261 260
	break;
262 261
    case FSR_RD_POS:
263
	fesetround(FE_UPWARD);
262
        rnd_mode = float_round_up;
264 263
	break;
265 264
    case FSR_RD_NEG:
266
	fesetround(FE_DOWNWARD);
265
        rnd_mode = float_round_down;
267 266
	break;
268 267
    }
268
    set_float_rounding_mode(rnd_mode, &env->fp_status);
269 269
}
270 270

  
271 271
void cpu_get_fp64(uint64_t *pmant, uint16_t *pexp, double f)

Also available in: Unified diff