static int eisinf PARAMS ((unsigned EMUSHORT *));
static int eisnan PARAMS ((unsigned EMUSHORT *));
static void einfin PARAMS ((unsigned EMUSHORT *));
+#ifdef NANS
static void enan PARAMS ((unsigned EMUSHORT *, int));
+static void einan PARAMS ((unsigned EMUSHORT *));
+static int eiisnan PARAMS ((unsigned EMUSHORT *));
+static int eiisneg PARAMS ((unsigned EMUSHORT *));
+static void make_nan PARAMS ((unsigned EMUSHORT *, int, enum machine_mode));
+#endif
static void emovi PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void emovo PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void ecleaz PARAMS ((unsigned EMUSHORT *));
static void ecleazs PARAMS ((unsigned EMUSHORT *));
static void emovz PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
-static void einan PARAMS ((unsigned EMUSHORT *));
-static int eiisnan PARAMS ((unsigned EMUSHORT *));
-static int eiisneg PARAMS ((unsigned EMUSHORT *));
#if 0
static void eiinfin PARAMS ((unsigned EMUSHORT *));
#endif
+#ifdef INFINITY
static int eiisinf PARAMS ((unsigned EMUSHORT *));
+#endif
static int ecmpm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void eshdn1 PARAMS ((unsigned EMUSHORT *));
static void eshup1 PARAMS ((unsigned EMUSHORT *));
static void toc4x PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *,
enum machine_mode));
#endif
-static void make_nan PARAMS ((unsigned EMUSHORT *, int, enum machine_mode));
#if 0
static void uditoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void ditoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
int
target_isinf (x)
- REAL_VALUE_TYPE x;
+ REAL_VALUE_TYPE x ATTRIBUTE_UNUSED;
{
+#ifdef INFINITY
unsigned EMUSHORT e[NE];
-#ifdef INFINITY
GET_REAL (&x, e);
return (eisinf (e));
#else
int
target_isnan (x)
- REAL_VALUE_TYPE x;
+ REAL_VALUE_TYPE x ATTRIBUTE_UNUSED;
{
+#ifdef NANS
unsigned EMUSHORT e[NE];
-#ifdef NANS
GET_REAL (&x, e);
return (eisnan (e));
#else
static int
eisnan (x)
- unsigned EMUSHORT x[];
+ unsigned EMUSHORT x[] ATTRIBUTE_UNUSED;
{
#ifdef NANS
int i;
This generates Intel's quiet NaN pattern for extended real.
The exponent is 7fff, the leading mantissa word is c000. */
+#ifdef NANS
static void
enan (x, sign)
register unsigned EMUSHORT *x;
*x++ = 0xc000;
*x = (sign << 15) | 0x7fff;
}
+#endif /* NANS */
/* Move in an e-type number A, converting it to exploded e-type B. */
The explicit pattern for this is maximum exponent and
top two significant bits set. */
+#ifdef NANS
static void
einan (x)
unsigned EMUSHORT x[];
x[E] = 0x7fff;
x[M + 1] = 0xc000;
}
+#endif /* NANS */
/* Return nonzero if exploded e-type X is a NaN. */
+#ifdef NANS
static int
eiisnan (x)
unsigned EMUSHORT x[];
}
return (0);
}
+#endif /* NANS */
/* Return nonzero if sign of exploded e-type X is nonzero. */
+#ifdef NANS
static int
eiisneg (x)
unsigned EMUSHORT x[];
return x[0] != 0;
}
+#endif /* NANS */
#if 0
/* Fill exploded e-type X with infinity pattern.
/* Return nonzero if exploded e-type X is infinite. */
+#ifdef INFINITY
static int
eiisinf (x)
unsigned EMUSHORT x[];
return (1);
return (0);
}
-
+#endif /* INFINITY */
/* Compare significands of numbers in internal exploded e-type format.
Guard words are included in the comparison.
rndprc = 113;
emdnorm (xi, 0, 0, exp, 64);
rndprc = rndsav;
+#ifdef INFINITY
nonorm:
+#endif
toe113 (xi, e);
}
rndprc = 64;
emdnorm (xi, 0, 0, exp, 64);
rndprc = rndsav;
+#ifdef INFINITY
nonorm:
+#endif
toe64 (xi, e);
}
rndprc = 53;
emdnorm (xi, 0, 0, exp, 64);
rndprc = rndsav;
+#ifdef INFINITY
nonorm:
+#endif
toe53 (xi, e);
}
rndprc = 24;
emdnorm (xi, 0, 0, exp, 64);
rndprc = rndsav;
+#ifdef INFINITY
nonorm:
+#endif
toe24 (xi, e);
}
{
unsigned EMUSHORT y[NI];
register unsigned EMUSHORT r, *p;
- int rndsav;
ecleaz (y); /* start with a zero */
p = y; /* point to our number */
#endif
+#ifdef NANS
static void
make_nan (nan, sign, mode)
unsigned EMUSHORT *nan;
if (! REAL_WORDS_BIG_ENDIAN)
*nan = (sign << 15) | (*p & 0x7fff);
}
+#endif /* NANS */
/* This is the inverse of the function `etarsingle' invoked by
REAL_VALUE_TO_TARGET_SINGLE. */