~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-mips/sfp-machine.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #define _FP_W_TYPE_SIZE         32
  2 #define _FP_W_TYPE              unsigned long
  3 #define _FP_WS_TYPE             signed long
  4 #define _FP_I_TYPE              long
  5 
  6 #define _FP_MUL_MEAT_S(R,X,Y)                           \
  7   _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
  8 #define _FP_MUL_MEAT_D(R,X,Y)                           \
  9   _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
 10 #define _FP_MUL_MEAT_Q(R,X,Y)                           \
 11   _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
 12 
 13 #define _FP_DIV_MEAT_S(R,X,Y)   _FP_DIV_MEAT_1_udiv_norm(S,R,X,Y)
 14 #define _FP_DIV_MEAT_D(R,X,Y)   _FP_DIV_MEAT_2_udiv(D,R,X,Y)
 15 #define _FP_DIV_MEAT_Q(R,X,Y)   _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
 16 
 17 #define _FP_NANFRAC_S           ((_FP_QNANBIT_S << 1) - 1)
 18 #define _FP_NANFRAC_D           ((_FP_QNANBIT_D << 1) - 1), -1
 19 #define _FP_NANFRAC_Q           ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
 20 #define _FP_NANSIGN_S           0
 21 #define _FP_NANSIGN_D           0
 22 #define _FP_NANSIGN_Q           0
 23 
 24 #define _FP_KEEPNANFRACP 1
 25 /* From my experiments it seems X is chosen unless one of the
 26    NaNs is sNaN,  in which case the result is NANSIGN/NANFRAC.  */
 27 #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)                      \
 28   do {                                                          \
 29     if ((_FP_FRAC_HIGH_RAW_##fs(X) |                            \
 30          _FP_FRAC_HIGH_RAW_##fs(Y)) & _FP_QNANBIT_##fs)         \
 31       {                                                         \
 32         R##_s = _FP_NANSIGN_##fs;                               \
 33         _FP_FRAC_SET_##wc(R,_FP_NANFRAC_##fs);                  \
 34       }                                                         \
 35     else                                                        \
 36       {                                                         \
 37         R##_s = X##_s;                                          \
 38         _FP_FRAC_COPY_##wc(R,X);                                \
 39       }                                                         \
 40     R##_c = FP_CLS_NAN;                                         \
 41   } while (0)
 42 
 43 #define FP_EX_INVALID           (1 << 4)
 44 #define FP_EX_DIVZERO           (1 << 3)
 45 #define FP_EX_OVERFLOW          (1 << 2)
 46 #define FP_EX_UNDERFLOW         (1 << 1)
 47 #define FP_EX_INEXACT           (1 << 0)
 48 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.