Ejemplo n.º 1
0
long double _Q_sub(const long double a, const long double b)
{
  FP_DECL_EX;
  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);
  long double c;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_SEMIRAW_Q(A, a);
  FP_UNPACK_SEMIRAW_Q(B, b);
  FP_SUB_Q(C, A, B);
  FP_PACK_SEMIRAW_Q(c, C);
  FP_HANDLE_EXCEPTIONS;
  return c;
}
Ejemplo n.º 2
0
TFtype __subtf3(TFtype a, TFtype b)
{
  FP_DECL_EX;
  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(R);
  TFtype r;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_SEMIRAW_Q(A, a);
  FP_UNPACK_SEMIRAW_Q(B, b);
  FP_SUB_Q(R, A, B);
  FP_PACK_SEMIRAW_Q(r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
Ejemplo n.º 3
0
void
_OtsSubX(long al, long ah, long bl, long bh, long _round)
{
    FP_DECL_EX;
    FP_DECL_Q(A);
    FP_DECL_Q(B);
    FP_DECL_Q(C);
    AXP_DECL_RETURN_Q(c);

    FP_INIT_ROUNDMODE;
    AXP_UNPACK_SEMIRAW_Q(A, a);
    AXP_UNPACK_SEMIRAW_Q(B, b);
    FP_SUB_Q(C, A, B);
    AXP_PACK_SEMIRAW_Q(c, C);
    FP_HANDLE_EXCEPTIONS;

    AXP_RETURN_Q(c);
}
Ejemplo n.º 4
0
void _Qp_sub(long double *c, const long double *a, const long double *b)
{
  FP_DECL_EX;
  FP_DECL_Q(A); FP_DECL_Q(B); FP_DECL_Q(C);

  FP_INIT_ROUNDMODE;
  FP_UNPACK_SEMIRAW_QP(A, a);
  FP_UNPACK_SEMIRAW_QP(B, b);
  FP_SUB_Q(C, A, B);
  FP_PACK_SEMIRAW_QP(c, C);
  QP_HANDLE_EXCEPTIONS(__asm (
"	ldd [%1], %%f52\n"
"	ldd [%1+8], %%f54\n"
"	ldd [%2], %%f56\n"
"	ldd [%2+8], %%f58\n"
"	fsubq %%f52, %%f56, %%f60\n"
"	std %%f60, [%0]\n"
"	std %%f62, [%0+8]\n"
"	" : : "r" (c), "r" (a), "r" (b) : QP_CLOBBER));
}
Ejemplo n.º 5
0
float
__fsubl (_Float128 x, _Float128 y)
{
  FP_DECL_EX;
  FP_DECL_Q (X);
  FP_DECL_Q (Y);
  FP_DECL_Q (R);
  FP_DECL_S (RN);
  float ret;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_SEMIRAW_Q (X, x);
  FP_UNPACK_SEMIRAW_Q (Y, y);
  FP_SUB_Q (R, X, Y);
#if _FP_W_TYPE_SIZE < 64
  FP_TRUNC (S, Q, 1, 4, RN, R);
#else
  FP_TRUNC (S, Q, 1, 2, RN, R);
#endif
  FP_PACK_SEMIRAW_S (ret, RN);
  FP_HANDLE_EXCEPTIONS;
  CHECK_NARROW_SUB (ret, x, y);
  return ret;
}