Ejemplo n.º 1
0
long double _Q_stoq(const float a)
{
  FP_DECL_EX;
  FP_DECL_S(A);
  FP_DECL_Q(C);
  long double c;

  FP_UNPACK_RAW_S(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND(Q,S,4,1,C,A);
#else
  FP_EXTEND(Q,S,2,1,C,A);
#endif
  FP_PACK_RAW_Q(c, C);
  FP_HANDLE_EXCEPTIONS;
  return c;
}
long double _q_dtoq(const double a)
{
  FP_DECL_EX;
  FP_DECL_D(A);
  FP_DECL_Q(C);
  long double c;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND(Q,D,4,2,C,A);
#else
  FP_EXTEND(Q,D,2,1,C,A);
#endif
  FP_PACK_RAW_Q(c, C);
  FP_HANDLE_EXCEPTIONS;
  return c;
}
Ejemplo n.º 3
0
TFtype __extenddftf2(DFtype a)
{
FP_DECL_EX;
FP_DECL_D(A);
FP_DECL_Q(R);
TFtype r;

FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
FP_EXTEND(Q,D,4,2,R,A);
#else
FP_EXTEND(Q,D,2,1,R,A);
#endif
FP_PACK_RAW_Q(r, R);
FP_HANDLE_EXCEPTIONS;

return r;
}
Ejemplo n.º 4
0
DFtype __extendsfdf2(SFtype a)
{
    FP_DECL_EX;
    FP_DECL_S(A);
    FP_DECL_D(R);
    DFtype r;

    FP_INIT_ROUNDMODE;
    FP_UNPACK_RAW_S(A, a);
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
    FP_EXTEND(D,S,2,1,R,A);
#else
    FP_EXTEND(D,S,1,1,R,A);
#endif
    FP_PACK_RAW_D(r, R);
    FP_HANDLE_EXCEPTIONS;

    return r;
}
Ejemplo n.º 5
0
TFtype
__extendhftf2 (HFtype a)
{
  FP_DECL_EX;
  FP_DECL_H (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_EXCEPTIONS;
  FP_UNPACK_RAW_H (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND (Q, H, 4, 1, R, A);
#else
  FP_EXTEND (Q, H, 2, 1, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
Ejemplo n.º 6
0
void _Qp_stoq(long double *c, const float a)
{
  FP_DECL_EX;
  FP_DECL_S(A);
  FP_DECL_Q(C);

  FP_INIT_ROUNDMODE;
  FP_UNPACK_RAW_S(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND(Q,S,4,1,C,A);
#else
  FP_EXTEND(Q,S,2,1,C,A);
#endif
  FP_PACK_RAW_QP(c, C);
  QP_HANDLE_EXCEPTIONS(__asm (
"	fstoq %1, %%f60\n"
"	std %%f60, [%0]\n"
"	std %%f62, [%0+8]\n"
"	" : : "r" (c), "f" (a) : QP_CLOBBER));
}
Ejemplo n.º 7
0
TFtype
__extenddftf2 (DFtype a)
{
  FP_DECL_EX;
  FP_DECL_D (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_EXCEPTIONS;
  FP_UNPACK_RAW_D (A, a);
#if _FP_W_TYPE_SIZE < 64
  FP_EXTEND (Q, D, 4, 2, R, A);
#else
  FP_EXTEND (Q, D, 2, 1, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
Ejemplo n.º 8
0
TFtype
__extendxftf2 (XFtype a)
{
  FP_DECL_EX;
  FP_DECL_E (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_TRAPPING_EXCEPTIONS;
  FP_UNPACK_RAW_E (A, a);
#if _FP_W_TYPE_SIZE < 64
  FP_EXTEND (Q, E, 4, 4, R, A);
#else
  FP_EXTEND (Q, E, 2, 2, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}