/[qemu]/qemu/target-sparc/op_helper.c
ViewVC logotype

Diff of /qemu/target-sparc/op_helper.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by bellard, Sun Mar 13 09:43:36 2005 UTC revision 1.11 by bellard, Sun Mar 13 17:01:47 2005 UTC
# Line 1  Line 1 
 #include <math.h>  
 #include <fenv.h>  
1  #include "exec.h"  #include "exec.h"
2    
3  //#define DEBUG_MMU  //#define DEBUG_MMU
# Line 24  void do_fitod(void) Line 22  void do_fitod(void)
22    
23  void do_fabss(void)  void do_fabss(void)
24  {  {
25      FT0 = fabsf(FT1);      FT0 = float32_abs(FT1);
26  }  }
27    
28  void do_fsqrts(void)  void do_fsqrts(void)
29  {  {
30      FT0 = sqrtf(FT1);      FT0 = float32_sqrt(FT1, &env->fp_status);
31  }  }
32    
33  void do_fsqrtd(void)  void do_fsqrtd(void)
34  {  {
35      DT0 = sqrt(DT1);      DT0 = float64_sqrt(DT1, &env->fp_status);
36  }  }
37    
38  void do_fcmps (void)  void do_fcmps (void)
# Line 252  void helper_rett() Line 250  void helper_rett()
250    
251  void helper_ldfsr(void)  void helper_ldfsr(void)
252  {  {
253        int rnd_mode;
254      switch (env->fsr & FSR_RD_MASK) {      switch (env->fsr & FSR_RD_MASK) {
255      case FSR_RD_NEAREST:      case FSR_RD_NEAREST:
256          fesetround(FE_TONEAREST);          rnd_mode = float_round_nearest_even;
257          break;          break;
258      case FSR_RD_ZERO:      case FSR_RD_ZERO:
259          fesetround(FE_TOWARDZERO);          rnd_mode = float_round_to_zero;
260          break;          break;
261      case FSR_RD_POS:      case FSR_RD_POS:
262          fesetround(FE_UPWARD);          rnd_mode = float_round_up;
263          break;          break;
264      case FSR_RD_NEG:      case FSR_RD_NEG:
265          fesetround(FE_DOWNWARD);          rnd_mode = float_round_down;
266          break;          break;
267      }      }
268        set_float_rounding_mode(rnd_mode, &env->fp_status);
269  }  }
270    
271  void cpu_get_fp64(uint64_t *pmant, uint16_t *pexp, double f)  void cpu_get_fp64(uint64_t *pmant, uint16_t *pexp, double f)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26