Commit 177b41eb by Roman Lechtchinsky Committed by Richard Henderson

real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is available.

        * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
        available.
        (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
        (m16m,edivm,emulm): Change declaration to match definition.

From-SVN: r45481
parent b4905cba
2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de>
* real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
available.
(UEMUSHORT): New. Use instead of unsigned EMUSHORT.
(m16m,edivm,emulm): Change declaration to match definition.
2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de> 2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de>
* reload.c (push_reload): Check for subreg_lowpart_p instead of * reload.c (push_reload): Check for subreg_lowpart_p instead of
......
...@@ -213,6 +213,21 @@ unknown arithmetic type ...@@ -213,6 +213,21 @@ unknown arithmetic type
#endif #endif
#endif #endif
/* If no 16-bit type has been found and the compiler is GCC, try HImode. */
#if defined(__GNUC__) && EMUSHORT_SIZE != 16
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
#undef EMUSHORT
#undef EMUSHORT_SIZE
#undef EMULONG_SIZE
#define EMUSHORT HItype
#define UEMUSHORT UHItype
#define EMUSHORT_SIZE 16
#define EMULONG_SIZE 32
#else
#define UEMUSHORT unsigned EMUSHORT
#endif
#if HOST_BITS_PER_SHORT >= EMULONG_SIZE #if HOST_BITS_PER_SHORT >= EMULONG_SIZE
#define EMULONG short #define EMULONG short
#else #else
...@@ -282,10 +297,10 @@ unknown arithmetic type ...@@ -282,10 +297,10 @@ unknown arithmetic type
#define GET_REAL(r,e) \ #define GET_REAL(r,e) \
do { \ do { \
if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \ if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
e53toe ((unsigned EMUSHORT *) (r), (e)); \ e53toe ((UEMUSHORT *) (r), (e)); \
else \ else \
{ \ { \
unsigned EMUSHORT w[4]; \ UEMUSHORT w[4]; \
memcpy (&w[3], ((EMUSHORT *) r), sizeof (EMUSHORT)); \ memcpy (&w[3], ((EMUSHORT *) r), sizeof (EMUSHORT)); \
memcpy (&w[2], ((EMUSHORT *) r) + 1, sizeof (EMUSHORT)); \ memcpy (&w[2], ((EMUSHORT *) r) + 1, sizeof (EMUSHORT)); \
memcpy (&w[1], ((EMUSHORT *) r) + 2, sizeof (EMUSHORT)); \ memcpy (&w[1], ((EMUSHORT *) r) + 2, sizeof (EMUSHORT)); \
...@@ -297,10 +312,10 @@ do { \ ...@@ -297,10 +312,10 @@ do { \
#define PUT_REAL(e,r) \ #define PUT_REAL(e,r) \
do { \ do { \
if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \ if (HOST_FLOAT_WORDS_BIG_ENDIAN == REAL_WORDS_BIG_ENDIAN) \
etoe53 ((e), (unsigned EMUSHORT *) (r)); \ etoe53 ((e), (UEMUSHORT *) (r)); \
else \ else \
{ \ { \
unsigned EMUSHORT w[4]; \ UEMUSHORT w[4]; \
etoe53 ((e), w); \ etoe53 ((e), w); \
memcpy (((EMUSHORT *) r), &w[3], sizeof (EMUSHORT)); \ memcpy (((EMUSHORT *) r), &w[3], sizeof (EMUSHORT)); \
memcpy (((EMUSHORT *) r) + 1, &w[2], sizeof (EMUSHORT)); \ memcpy (((EMUSHORT *) r) + 1, &w[2], sizeof (EMUSHORT)); \
...@@ -312,8 +327,8 @@ do { \ ...@@ -312,8 +327,8 @@ do { \
#else /* not REAL_ARITHMETIC */ #else /* not REAL_ARITHMETIC */
/* emulator uses host format */ /* emulator uses host format */
#define GET_REAL(r,e) e53toe ((unsigned EMUSHORT *) (r), (e)) #define GET_REAL(r,e) e53toe ((UEMUSHORT *) (r), (e))
#define PUT_REAL(e,r) etoe53 ((e), (unsigned EMUSHORT *) (r)) #define PUT_REAL(e,r) etoe53 ((e), (UEMUSHORT *) (r))
#endif /* not REAL_ARITHMETIC */ #endif /* not REAL_ARITHMETIC */
#endif /* not TFmode */ #endif /* not TFmode */
...@@ -348,143 +363,142 @@ do { \ ...@@ -348,143 +363,142 @@ do { \
#endif #endif
extern int extra_warnings; extern int extra_warnings;
extern unsigned EMUSHORT ezero[], ehalf[], eone[], etwo[]; extern UEMUSHORT ezero[], ehalf[], eone[], etwo[];
extern unsigned EMUSHORT elog2[], esqrt2[]; extern UEMUSHORT elog2[], esqrt2[];
static void endian PARAMS ((unsigned EMUSHORT *, long *, static void endian PARAMS ((UEMUSHORT *, long *,
enum machine_mode)); enum machine_mode));
static void eclear PARAMS ((unsigned EMUSHORT *)); static void eclear PARAMS ((UEMUSHORT *));
static void emov PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void emov PARAMS ((UEMUSHORT *, UEMUSHORT *));
#if 0 #if 0
static void eabs PARAMS ((unsigned EMUSHORT *)); static void eabs PARAMS ((UEMUSHORT *));
#endif #endif
static void eneg PARAMS ((unsigned EMUSHORT *)); static void eneg PARAMS ((UEMUSHORT *));
static int eisneg PARAMS ((unsigned EMUSHORT *)); static int eisneg PARAMS ((UEMUSHORT *));
static int eisinf PARAMS ((unsigned EMUSHORT *)); static int eisinf PARAMS ((UEMUSHORT *));
static int eisnan PARAMS ((unsigned EMUSHORT *)); static int eisnan PARAMS ((UEMUSHORT *));
static void einfin PARAMS ((unsigned EMUSHORT *)); static void einfin PARAMS ((UEMUSHORT *));
#ifdef NANS #ifdef NANS
static void enan PARAMS ((unsigned EMUSHORT *, int)); static void enan PARAMS ((UEMUSHORT *, int));
static void einan PARAMS ((unsigned EMUSHORT *)); static void einan PARAMS ((UEMUSHORT *));
static int eiisnan PARAMS ((unsigned EMUSHORT *)); static int eiisnan PARAMS ((UEMUSHORT *));
static int eiisneg PARAMS ((unsigned EMUSHORT *)); static int eiisneg PARAMS ((UEMUSHORT *));
static void make_nan PARAMS ((unsigned EMUSHORT *, int, enum machine_mode)); static void make_nan PARAMS ((UEMUSHORT *, int, enum machine_mode));
#endif #endif
static void emovi PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void emovi PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void emovo PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void emovo PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void ecleaz PARAMS ((unsigned EMUSHORT *)); static void ecleaz PARAMS ((UEMUSHORT *));
static void ecleazs PARAMS ((unsigned EMUSHORT *)); static void ecleazs PARAMS ((UEMUSHORT *));
static void emovz PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void emovz PARAMS ((UEMUSHORT *, UEMUSHORT *));
#if 0 #if 0
static void eiinfin PARAMS ((unsigned EMUSHORT *)); static void eiinfin PARAMS ((UEMUSHORT *));
#endif #endif
#ifdef INFINITY #ifdef INFINITY
static int eiisinf PARAMS ((unsigned EMUSHORT *)); static int eiisinf PARAMS ((UEMUSHORT *));
#endif #endif
static int ecmpm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static int ecmpm PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void eshdn1 PARAMS ((unsigned EMUSHORT *)); static void eshdn1 PARAMS ((UEMUSHORT *));
static void eshup1 PARAMS ((unsigned EMUSHORT *)); static void eshup1 PARAMS ((UEMUSHORT *));
static void eshdn8 PARAMS ((unsigned EMUSHORT *)); static void eshdn8 PARAMS ((UEMUSHORT *));
static void eshup8 PARAMS ((unsigned EMUSHORT *)); static void eshup8 PARAMS ((UEMUSHORT *));
static void eshup6 PARAMS ((unsigned EMUSHORT *)); static void eshup6 PARAMS ((UEMUSHORT *));
static void eshdn6 PARAMS ((unsigned EMUSHORT *)); static void eshdn6 PARAMS ((UEMUSHORT *));
static void eaddm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void eaddm PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void esubm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void esubm PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void m16m PARAMS ((unsigned int, unsigned short *, static void m16m PARAMS ((unsigned int, UEMUSHORT *, UEMUSHORT *));
unsigned short *)); static int edivm PARAMS ((UEMUSHORT *, UEMUSHORT *));
static int edivm PARAMS ((unsigned short *, unsigned short *)); static int emulm PARAMS ((UEMUSHORT *, UEMUSHORT *));
static int emulm PARAMS ((unsigned short *, unsigned short *)); static void emdnorm PARAMS ((UEMUSHORT *, int, int, EMULONG, int));
static void emdnorm PARAMS ((unsigned EMUSHORT *, int, int, EMULONG, int)); static void esub PARAMS ((UEMUSHORT *, UEMUSHORT *,
static void esub PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, UEMUSHORT *));
unsigned EMUSHORT *)); static void eadd PARAMS ((UEMUSHORT *, UEMUSHORT *,
static void eadd PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, UEMUSHORT *));
unsigned EMUSHORT *)); static void eadd1 PARAMS ((UEMUSHORT *, UEMUSHORT *,
static void eadd1 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, UEMUSHORT *));
unsigned EMUSHORT *)); static void ediv PARAMS ((UEMUSHORT *, UEMUSHORT *,
static void ediv PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, UEMUSHORT *));
unsigned EMUSHORT *)); static void emul PARAMS ((UEMUSHORT *, UEMUSHORT *,
static void emul PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, UEMUSHORT *));
unsigned EMUSHORT *)); static void e53toe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void e53toe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void e64toe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void e64toe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
#if (INTEL_EXTENDED_IEEE_FORMAT == 0) #if (INTEL_EXTENDED_IEEE_FORMAT == 0)
static void e113toe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void e113toe PARAMS ((UEMUSHORT *, UEMUSHORT *));
#endif #endif
static void e24toe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void e24toe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etoe113 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etoe113 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void toe113 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void toe113 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etoe64 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etoe64 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void toe64 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void toe64 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etoe53 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etoe53 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void toe53 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void toe53 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etoe24 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etoe24 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void toe24 PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void toe24 PARAMS ((UEMUSHORT *, UEMUSHORT *));
static int ecmp PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static int ecmp PARAMS ((UEMUSHORT *, UEMUSHORT *));
#if 0 #if 0
static void eround PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void eround PARAMS ((UEMUSHORT *, UEMUSHORT *));
#endif #endif
static void ltoe PARAMS ((HOST_WIDE_INT *, unsigned EMUSHORT *)); static void ltoe PARAMS ((HOST_WIDE_INT *, UEMUSHORT *));
static void ultoe PARAMS ((unsigned HOST_WIDE_INT *, unsigned EMUSHORT *)); static void ultoe PARAMS ((unsigned HOST_WIDE_INT *, UEMUSHORT *));
static void eifrac PARAMS ((unsigned EMUSHORT *, HOST_WIDE_INT *, static void eifrac PARAMS ((UEMUSHORT *, HOST_WIDE_INT *,
unsigned EMUSHORT *)); UEMUSHORT *));
static void euifrac PARAMS ((unsigned EMUSHORT *, unsigned HOST_WIDE_INT *, static void euifrac PARAMS ((UEMUSHORT *, unsigned HOST_WIDE_INT *,
unsigned EMUSHORT *)); UEMUSHORT *));
static int eshift PARAMS ((unsigned EMUSHORT *, int)); static int eshift PARAMS ((UEMUSHORT *, int));
static int enormlz PARAMS ((unsigned EMUSHORT *)); static int enormlz PARAMS ((UEMUSHORT *));
#if 0 #if 0
static void e24toasc PARAMS ((unsigned EMUSHORT *, char *, int)); static void e24toasc PARAMS ((UEMUSHORT *, char *, int));
static void e53toasc PARAMS ((unsigned EMUSHORT *, char *, int)); static void e53toasc PARAMS ((UEMUSHORT *, char *, int));
static void e64toasc PARAMS ((unsigned EMUSHORT *, char *, int)); static void e64toasc PARAMS ((UEMUSHORT *, char *, int));
static void e113toasc PARAMS ((unsigned EMUSHORT *, char *, int)); static void e113toasc PARAMS ((UEMUSHORT *, char *, int));
#endif /* 0 */ #endif /* 0 */
static void etoasc PARAMS ((unsigned EMUSHORT *, char *, int)); static void etoasc PARAMS ((UEMUSHORT *, char *, int));
static void asctoe24 PARAMS ((const char *, unsigned EMUSHORT *)); static void asctoe24 PARAMS ((const char *, UEMUSHORT *));
static void asctoe53 PARAMS ((const char *, unsigned EMUSHORT *)); static void asctoe53 PARAMS ((const char *, UEMUSHORT *));
static void asctoe64 PARAMS ((const char *, unsigned EMUSHORT *)); static void asctoe64 PARAMS ((const char *, UEMUSHORT *));
#if (INTEL_EXTENDED_IEEE_FORMAT == 0) #if (INTEL_EXTENDED_IEEE_FORMAT == 0)
static void asctoe113 PARAMS ((const char *, unsigned EMUSHORT *)); static void asctoe113 PARAMS ((const char *, UEMUSHORT *));
#endif #endif
static void asctoe PARAMS ((const char *, unsigned EMUSHORT *)); static void asctoe PARAMS ((const char *, UEMUSHORT *));
static void asctoeg PARAMS ((const char *, unsigned EMUSHORT *, int)); static void asctoeg PARAMS ((const char *, UEMUSHORT *, int));
static void efloor PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void efloor PARAMS ((UEMUSHORT *, UEMUSHORT *));
#if 0 #if 0
static void efrexp PARAMS ((unsigned EMUSHORT *, int *, static void efrexp PARAMS ((UEMUSHORT *, int *,
unsigned EMUSHORT *)); UEMUSHORT *));
#endif #endif
static void eldexp PARAMS ((unsigned EMUSHORT *, int, unsigned EMUSHORT *)); static void eldexp PARAMS ((UEMUSHORT *, int, UEMUSHORT *));
#if 0 #if 0
static void eremain PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void eremain PARAMS ((UEMUSHORT *, UEMUSHORT *,
unsigned EMUSHORT *)); UEMUSHORT *));
#endif #endif
static void eiremain PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void eiremain PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void mtherr PARAMS ((const char *, int)); static void mtherr PARAMS ((const char *, int));
#ifdef DEC #ifdef DEC
static void dectoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void dectoe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etodec PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etodec PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void todec PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void todec PARAMS ((UEMUSHORT *, UEMUSHORT *));
#endif #endif
#ifdef IBM #ifdef IBM
static void ibmtoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void ibmtoe PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
static void etoibm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void etoibm PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
static void toibm PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void toibm PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
#endif #endif
#ifdef C4X #ifdef C4X
static void c4xtoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void c4xtoe PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
static void etoc4x PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void etoc4x PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
static void toc4x PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *, static void toc4x PARAMS ((UEMUSHORT *, UEMUSHORT *,
enum machine_mode)); enum machine_mode));
#endif #endif
#if 0 #if 0
static void uditoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void uditoe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void ditoe PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void ditoe PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etoudi PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etoudi PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void etodi PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void etodi PARAMS ((UEMUSHORT *, UEMUSHORT *));
static void esqrt PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); static void esqrt PARAMS ((UEMUSHORT *, UEMUSHORT *));
#endif #endif
/* Copy 32-bit numbers obtained from array containing 16-bit numbers, /* Copy 32-bit numbers obtained from array containing 16-bit numbers,
...@@ -493,7 +507,7 @@ static void esqrt PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *)); ...@@ -493,7 +507,7 @@ static void esqrt PARAMS ((unsigned EMUSHORT *, unsigned EMUSHORT *));
static void static void
endian (e, x, mode) endian (e, x, mode)
unsigned EMUSHORT e[]; UEMUSHORT e[];
long x[]; long x[];
enum machine_mode mode; enum machine_mode mode;
{ {
...@@ -599,7 +613,7 @@ earith (value, icode, r1, r2) ...@@ -599,7 +613,7 @@ earith (value, icode, r1, r2)
REAL_VALUE_TYPE *r1; REAL_VALUE_TYPE *r1;
REAL_VALUE_TYPE *r2; REAL_VALUE_TYPE *r2;
{ {
unsigned EMUSHORT d1[NE], d2[NE], v[NE]; UEMUSHORT d1[NE], d2[NE], v[NE];
enum tree_code code; enum tree_code code;
GET_REAL (r1, d1); GET_REAL (r1, d1);
...@@ -675,7 +689,7 @@ REAL_VALUE_TYPE ...@@ -675,7 +689,7 @@ REAL_VALUE_TYPE
etrunci (x) etrunci (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT f[NE], g[NE]; UEMUSHORT f[NE], g[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
HOST_WIDE_INT l; HOST_WIDE_INT l;
...@@ -698,7 +712,7 @@ REAL_VALUE_TYPE ...@@ -698,7 +712,7 @@ REAL_VALUE_TYPE
etruncui (x) etruncui (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT f[NE], g[NE]; UEMUSHORT f[NE], g[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
unsigned HOST_WIDE_INT l; unsigned HOST_WIDE_INT l;
...@@ -723,7 +737,7 @@ ereal_atof (s, t) ...@@ -723,7 +737,7 @@ ereal_atof (s, t)
const char *s; const char *s;
enum machine_mode t; enum machine_mode t;
{ {
unsigned EMUSHORT tem[NE], e[NE]; UEMUSHORT tem[NE], e[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
switch (t) switch (t)
...@@ -775,7 +789,7 @@ REAL_VALUE_TYPE ...@@ -775,7 +789,7 @@ REAL_VALUE_TYPE
ereal_negate (x) ereal_negate (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
GET_REAL (&x, e); GET_REAL (&x, e);
...@@ -792,7 +806,7 @@ HOST_WIDE_INT ...@@ -792,7 +806,7 @@ HOST_WIDE_INT
efixi (x) efixi (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT f[NE], g[NE]; UEMUSHORT f[NE], g[NE];
HOST_WIDE_INT l; HOST_WIDE_INT l;
GET_REAL (&x, f); GET_REAL (&x, f);
...@@ -815,7 +829,7 @@ unsigned HOST_WIDE_INT ...@@ -815,7 +829,7 @@ unsigned HOST_WIDE_INT
efixui (x) efixui (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT f[NE], g[NE]; UEMUSHORT f[NE], g[NE];
unsigned HOST_WIDE_INT l; unsigned HOST_WIDE_INT l;
GET_REAL (&x, f); GET_REAL (&x, f);
...@@ -839,7 +853,7 @@ ereal_from_int (d, i, j, mode) ...@@ -839,7 +853,7 @@ ereal_from_int (d, i, j, mode)
HOST_WIDE_INT i, j; HOST_WIDE_INT i, j;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT df[NE], dg[NE]; UEMUSHORT df[NE], dg[NE];
HOST_WIDE_INT low, high; HOST_WIDE_INT low, high;
int sign; int sign;
...@@ -911,7 +925,7 @@ ereal_from_uint (d, i, j, mode) ...@@ -911,7 +925,7 @@ ereal_from_uint (d, i, j, mode)
unsigned HOST_WIDE_INT i, j; unsigned HOST_WIDE_INT i, j;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT df[NE], dg[NE]; UEMUSHORT df[NE], dg[NE];
unsigned HOST_WIDE_INT low, high; unsigned HOST_WIDE_INT low, high;
if (GET_MODE_CLASS (mode) != MODE_FLOAT) if (GET_MODE_CLASS (mode) != MODE_FLOAT)
...@@ -969,7 +983,7 @@ ereal_to_int (low, high, rr) ...@@ -969,7 +983,7 @@ ereal_to_int (low, high, rr)
HOST_WIDE_INT *low, *high; HOST_WIDE_INT *low, *high;
REAL_VALUE_TYPE rr; REAL_VALUE_TYPE rr;
{ {
unsigned EMUSHORT d[NE], df[NE], dg[NE], dh[NE]; UEMUSHORT d[NE], df[NE], dg[NE], dh[NE];
int s; int s;
GET_REAL (&rr, d); GET_REAL (&rr, d);
...@@ -1013,7 +1027,7 @@ ereal_ldexp (x, n) ...@@ -1013,7 +1027,7 @@ ereal_ldexp (x, n)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
int n; int n;
{ {
unsigned EMUSHORT e[NE], y[NE]; UEMUSHORT e[NE], y[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
GET_REAL (&x, e); GET_REAL (&x, e);
...@@ -1038,7 +1052,7 @@ target_isinf (x) ...@@ -1038,7 +1052,7 @@ target_isinf (x)
REAL_VALUE_TYPE x ATTRIBUTE_UNUSED; REAL_VALUE_TYPE x ATTRIBUTE_UNUSED;
{ {
#ifdef INFINITY #ifdef INFINITY
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&x, e); GET_REAL (&x, e);
return (eisinf (e)); return (eisinf (e));
...@@ -1054,7 +1068,7 @@ target_isnan (x) ...@@ -1054,7 +1068,7 @@ target_isnan (x)
REAL_VALUE_TYPE x ATTRIBUTE_UNUSED; REAL_VALUE_TYPE x ATTRIBUTE_UNUSED;
{ {
#ifdef NANS #ifdef NANS
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&x, e); GET_REAL (&x, e);
return (eisnan (e)); return (eisnan (e));
...@@ -1082,7 +1096,7 @@ real_value_truncate (mode, arg) ...@@ -1082,7 +1096,7 @@ real_value_truncate (mode, arg)
enum machine_mode mode; enum machine_mode mode;
REAL_VALUE_TYPE arg; REAL_VALUE_TYPE arg;
{ {
unsigned EMUSHORT e[NE], t[NE]; UEMUSHORT e[NE], t[NE];
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
GET_REAL (&arg, e); GET_REAL (&arg, e);
...@@ -1150,7 +1164,7 @@ exact_real_inverse (mode, r) ...@@ -1150,7 +1164,7 @@ exact_real_inverse (mode, r)
enum machine_mode mode; enum machine_mode mode;
REAL_VALUE_TYPE *r; REAL_VALUE_TYPE *r;
{ {
unsigned EMUSHORT e[NE], einv[NE]; UEMUSHORT e[NE], einv[NE];
REAL_VALUE_TYPE rinv; REAL_VALUE_TYPE rinv;
int i; int i;
...@@ -1239,7 +1253,7 @@ etartdouble (r, l) ...@@ -1239,7 +1253,7 @@ etartdouble (r, l)
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
long l[]; long l[];
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&r, e); GET_REAL (&r, e);
etoe113 (e, e); etoe113 (e, e);
...@@ -1255,7 +1269,7 @@ etarldouble (r, l) ...@@ -1255,7 +1269,7 @@ etarldouble (r, l)
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
long l[]; long l[];
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&r, e); GET_REAL (&r, e);
etoe64 (e, e); etoe64 (e, e);
...@@ -1270,7 +1284,7 @@ etardouble (r, l) ...@@ -1270,7 +1284,7 @@ etardouble (r, l)
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
long l[]; long l[];
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&r, e); GET_REAL (&r, e);
etoe53 (e, e); etoe53 (e, e);
...@@ -1284,7 +1298,7 @@ long ...@@ -1284,7 +1298,7 @@ long
etarsingle (r) etarsingle (r)
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
long l; long l;
GET_REAL (&r, e); GET_REAL (&r, e);
...@@ -1303,7 +1317,7 @@ ereal_to_decimal (x, s) ...@@ -1303,7 +1317,7 @@ ereal_to_decimal (x, s)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
char *s; char *s;
{ {
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
GET_REAL (&x, e); GET_REAL (&x, e);
etoasc (e, s, 20); etoasc (e, s, 20);
...@@ -1316,7 +1330,7 @@ int ...@@ -1316,7 +1330,7 @@ int
ereal_cmp (x, y) ereal_cmp (x, y)
REAL_VALUE_TYPE x, y; REAL_VALUE_TYPE x, y;
{ {
unsigned EMUSHORT ex[NE], ey[NE]; UEMUSHORT ex[NE], ey[NE];
GET_REAL (&x, ex); GET_REAL (&x, ex);
GET_REAL (&y, ey); GET_REAL (&y, ey);
...@@ -1329,7 +1343,7 @@ int ...@@ -1329,7 +1343,7 @@ int
ereal_isneg (x) ereal_isneg (x)
REAL_VALUE_TYPE x; REAL_VALUE_TYPE x;
{ {
unsigned EMUSHORT ex[NE]; UEMUSHORT ex[NE];
GET_REAL (&x, ex); GET_REAL (&x, ex);
return (eisneg (ex)); return (eisneg (ex));
...@@ -1515,70 +1529,70 @@ ereal_isneg (x) ...@@ -1515,70 +1529,70 @@ ereal_isneg (x)
#if MAX_LONG_DOUBLE_TYPE_SIZE == 128 && (INTEL_EXTENDED_IEEE_FORMAT == 0) #if MAX_LONG_DOUBLE_TYPE_SIZE == 128 && (INTEL_EXTENDED_IEEE_FORMAT == 0)
/* 0.0 */ /* 0.0 */
unsigned EMUSHORT ezero[NE] = UEMUSHORT ezero[NE] =
{0x0000, 0x0000, 0x0000, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,}; 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,};
extern unsigned EMUSHORT ezero[]; extern UEMUSHORT ezero[];
/* 5.0E-1 */ /* 5.0E-1 */
unsigned EMUSHORT ehalf[NE] = UEMUSHORT ehalf[NE] =
{0x0000, 0x0000, 0x0000, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3ffe,}; 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3ffe,};
extern unsigned EMUSHORT ehalf[]; extern UEMUSHORT ehalf[];
/* 1.0E0 */ /* 1.0E0 */
unsigned EMUSHORT eone[NE] = UEMUSHORT eone[NE] =
{0x0000, 0x0000, 0x0000, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff,}; 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x3fff,};
extern unsigned EMUSHORT eone[]; extern UEMUSHORT eone[];
/* 2.0E0 */ /* 2.0E0 */
unsigned EMUSHORT etwo[NE] = UEMUSHORT etwo[NE] =
{0x0000, 0x0000, 0x0000, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x4000,}; 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x4000,};
extern unsigned EMUSHORT etwo[]; extern UEMUSHORT etwo[];
/* 3.2E1 */ /* 3.2E1 */
unsigned EMUSHORT e32[NE] = UEMUSHORT e32[NE] =
{0x0000, 0x0000, 0x0000, 0x0000, {0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x4004,}; 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x4004,};
extern unsigned EMUSHORT e32[]; extern UEMUSHORT e32[];
/* 6.93147180559945309417232121458176568075500134360255E-1 */ /* 6.93147180559945309417232121458176568075500134360255E-1 */
unsigned EMUSHORT elog2[NE] = UEMUSHORT elog2[NE] =
{0x40f3, 0xf6af, 0x03f2, 0xb398, {0x40f3, 0xf6af, 0x03f2, 0xb398,
0xc9e3, 0x79ab, 0150717, 0013767, 0130562, 0x3ffe,}; 0xc9e3, 0x79ab, 0150717, 0013767, 0130562, 0x3ffe,};
extern unsigned EMUSHORT elog2[]; extern UEMUSHORT elog2[];
/* 1.41421356237309504880168872420969807856967187537695E0 */ /* 1.41421356237309504880168872420969807856967187537695E0 */
unsigned EMUSHORT esqrt2[NE] = UEMUSHORT esqrt2[NE] =
{0x1d6f, 0xbe9f, 0x754a, 0x89b3, {0x1d6f, 0xbe9f, 0x754a, 0x89b3,
0x597d, 0x6484, 0174736, 0171463, 0132404, 0x3fff,}; 0x597d, 0x6484, 0174736, 0171463, 0132404, 0x3fff,};
extern unsigned EMUSHORT esqrt2[]; extern UEMUSHORT esqrt2[];
/* 3.14159265358979323846264338327950288419716939937511E0 */ /* 3.14159265358979323846264338327950288419716939937511E0 */
unsigned EMUSHORT epi[NE] = UEMUSHORT epi[NE] =
{0x2902, 0x1cd1, 0x80dc, 0x628b, {0x2902, 0x1cd1, 0x80dc, 0x628b,
0xc4c6, 0xc234, 0020550, 0155242, 0144417, 0040000,}; 0xc4c6, 0xc234, 0020550, 0155242, 0144417, 0040000,};
extern unsigned EMUSHORT epi[]; extern UEMUSHORT epi[];
#else #else
/* LONG_DOUBLE_TYPE_SIZE is other than 128 */ /* LONG_DOUBLE_TYPE_SIZE is other than 128 */
unsigned EMUSHORT ezero[NE] = UEMUSHORT ezero[NE] =
{0, 0000000, 0000000, 0000000, 0000000, 0000000,}; {0, 0000000, 0000000, 0000000, 0000000, 0000000,};
unsigned EMUSHORT ehalf[NE] = UEMUSHORT ehalf[NE] =
{0, 0000000, 0000000, 0000000, 0100000, 0x3ffe,}; {0, 0000000, 0000000, 0000000, 0100000, 0x3ffe,};
unsigned EMUSHORT eone[NE] = UEMUSHORT eone[NE] =
{0, 0000000, 0000000, 0000000, 0100000, 0x3fff,}; {0, 0000000, 0000000, 0000000, 0100000, 0x3fff,};
unsigned EMUSHORT etwo[NE] = UEMUSHORT etwo[NE] =
{0, 0000000, 0000000, 0000000, 0100000, 0040000,}; {0, 0000000, 0000000, 0000000, 0100000, 0040000,};
unsigned EMUSHORT e32[NE] = UEMUSHORT e32[NE] =
{0, 0000000, 0000000, 0000000, 0100000, 0040004,}; {0, 0000000, 0000000, 0000000, 0100000, 0040004,};
unsigned EMUSHORT elog2[NE] = UEMUSHORT elog2[NE] =
{0xc9e4, 0x79ab, 0150717, 0013767, 0130562, 0x3ffe,}; {0xc9e4, 0x79ab, 0150717, 0013767, 0130562, 0x3ffe,};
unsigned EMUSHORT esqrt2[NE] = UEMUSHORT esqrt2[NE] =
{0x597e, 0x6484, 0174736, 0171463, 0132404, 0x3fff,}; {0x597e, 0x6484, 0174736, 0171463, 0132404, 0x3fff,};
unsigned EMUSHORT epi[NE] = UEMUSHORT epi[NE] =
{0xc4c6, 0xc234, 0020550, 0155242, 0144417, 0040000,}; {0xc4c6, 0xc234, 0020550, 0155242, 0144417, 0040000,};
#endif #endif
...@@ -1592,7 +1606,7 @@ extern int rndprc; ...@@ -1592,7 +1606,7 @@ extern int rndprc;
static void static void
eclear (x) eclear (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
register int i; register int i;
...@@ -1604,7 +1618,7 @@ eclear (x) ...@@ -1604,7 +1618,7 @@ eclear (x)
static void static void
emov (a, b) emov (a, b)
register unsigned EMUSHORT *a, *b; register UEMUSHORT *a, *b;
{ {
register int i; register int i;
...@@ -1618,7 +1632,7 @@ emov (a, b) ...@@ -1618,7 +1632,7 @@ emov (a, b)
static void static void
eabs (x) eabs (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
/* sign is top bit of last word of external format */ /* sign is top bit of last word of external format */
x[NE - 1] &= 0x7fff; x[NE - 1] &= 0x7fff;
...@@ -1629,7 +1643,7 @@ eabs (x) ...@@ -1629,7 +1643,7 @@ eabs (x)
static void static void
eneg (x) eneg (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
x[NE - 1] ^= 0x8000; /* Toggle the sign bit */ x[NE - 1] ^= 0x8000; /* Toggle the sign bit */
...@@ -1639,7 +1653,7 @@ eneg (x) ...@@ -1639,7 +1653,7 @@ eneg (x)
static int static int
eisneg (x) eisneg (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
if (x[NE - 1] & 0x8000) if (x[NE - 1] & 0x8000)
...@@ -1652,7 +1666,7 @@ eisneg (x) ...@@ -1652,7 +1666,7 @@ eisneg (x)
static int static int
eisinf (x) eisinf (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
#ifdef NANS #ifdef NANS
...@@ -1670,7 +1684,7 @@ eisinf (x) ...@@ -1670,7 +1684,7 @@ eisinf (x)
static int static int
eisnan (x) eisnan (x)
unsigned EMUSHORT x[] ATTRIBUTE_UNUSED; UEMUSHORT x[] ATTRIBUTE_UNUSED;
{ {
#ifdef NANS #ifdef NANS
int i; int i;
...@@ -1694,7 +1708,7 @@ eisnan (x) ...@@ -1694,7 +1708,7 @@ eisnan (x)
static void static void
einfin (x) einfin (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
register int i; register int i;
...@@ -1738,7 +1752,7 @@ einfin (x) ...@@ -1738,7 +1752,7 @@ einfin (x)
#ifdef NANS #ifdef NANS
static void static void
enan (x, sign) enan (x, sign)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
int sign; int sign;
{ {
register int i; register int i;
...@@ -1754,9 +1768,9 @@ enan (x, sign) ...@@ -1754,9 +1768,9 @@ enan (x, sign)
static void static void
emovi (a, b) emovi (a, b)
unsigned EMUSHORT *a, *b; UEMUSHORT *a, *b;
{ {
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
int i; int i;
q = b; q = b;
...@@ -1801,10 +1815,10 @@ emovi (a, b) ...@@ -1801,10 +1815,10 @@ emovi (a, b)
static void static void
emovo (a, b) emovo (a, b)
unsigned EMUSHORT *a, *b; UEMUSHORT *a, *b;
{ {
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
unsigned EMUSHORT i; UEMUSHORT i;
int j; int j;
p = a; p = a;
...@@ -1840,7 +1854,7 @@ emovo (a, b) ...@@ -1840,7 +1854,7 @@ emovo (a, b)
static void static void
ecleaz (xi) ecleaz (xi)
register unsigned EMUSHORT *xi; register UEMUSHORT *xi;
{ {
register int i; register int i;
...@@ -1852,7 +1866,7 @@ ecleaz (xi) ...@@ -1852,7 +1866,7 @@ ecleaz (xi)
static void static void
ecleazs (xi) ecleazs (xi)
register unsigned EMUSHORT *xi; register UEMUSHORT *xi;
{ {
register int i; register int i;
...@@ -1865,7 +1879,7 @@ ecleazs (xi) ...@@ -1865,7 +1879,7 @@ ecleazs (xi)
static void static void
emovz (a, b) emovz (a, b)
register unsigned EMUSHORT *a, *b; register UEMUSHORT *a, *b;
{ {
register int i; register int i;
...@@ -1882,7 +1896,7 @@ emovz (a, b) ...@@ -1882,7 +1896,7 @@ emovz (a, b)
#ifdef NANS #ifdef NANS
static void static void
einan (x) einan (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
ecleaz (x); ecleaz (x);
...@@ -1896,7 +1910,7 @@ einan (x) ...@@ -1896,7 +1910,7 @@ einan (x)
#ifdef NANS #ifdef NANS
static int static int
eiisnan (x) eiisnan (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
int i; int i;
...@@ -1917,7 +1931,7 @@ eiisnan (x) ...@@ -1917,7 +1931,7 @@ eiisnan (x)
#ifdef NANS #ifdef NANS
static int static int
eiisneg (x) eiisneg (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
return x[0] != 0; return x[0] != 0;
...@@ -1930,7 +1944,7 @@ eiisneg (x) ...@@ -1930,7 +1944,7 @@ eiisneg (x)
static void static void
eiinfin (x) eiinfin (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
ecleaz (x); ecleaz (x);
...@@ -1943,7 +1957,7 @@ eiinfin (x) ...@@ -1943,7 +1957,7 @@ eiinfin (x)
#ifdef INFINITY #ifdef INFINITY
static int static int
eiisinf (x) eiisinf (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
#ifdef NANS #ifdef NANS
...@@ -1965,7 +1979,7 @@ eiisinf (x) ...@@ -1965,7 +1979,7 @@ eiisinf (x)
static int static int
ecmpm (a, b) ecmpm (a, b)
register unsigned EMUSHORT *a, *b; register UEMUSHORT *a, *b;
{ {
int i; int i;
...@@ -1989,9 +2003,9 @@ ecmpm (a, b) ...@@ -1989,9 +2003,9 @@ ecmpm (a, b)
static void static void
eshdn1 (x) eshdn1 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
register unsigned EMUSHORT bits; register UEMUSHORT bits;
int i; int i;
x += M; /* point to significand area */ x += M; /* point to significand area */
...@@ -2013,9 +2027,9 @@ eshdn1 (x) ...@@ -2013,9 +2027,9 @@ eshdn1 (x)
static void static void
eshup1 (x) eshup1 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
register unsigned EMUSHORT bits; register UEMUSHORT bits;
int i; int i;
x += NI - 1; x += NI - 1;
...@@ -2038,9 +2052,9 @@ eshup1 (x) ...@@ -2038,9 +2052,9 @@ eshup1 (x)
static void static void
eshdn8 (x) eshdn8 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
register unsigned EMUSHORT newbyt, oldbyt; register UEMUSHORT newbyt, oldbyt;
int i; int i;
x += M; x += M;
...@@ -2059,10 +2073,10 @@ eshdn8 (x) ...@@ -2059,10 +2073,10 @@ eshdn8 (x)
static void static void
eshup8 (x) eshup8 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
int i; int i;
register unsigned EMUSHORT newbyt, oldbyt; register UEMUSHORT newbyt, oldbyt;
x += NI - 1; x += NI - 1;
oldbyt = 0; oldbyt = 0;
...@@ -2081,10 +2095,10 @@ eshup8 (x) ...@@ -2081,10 +2095,10 @@ eshup8 (x)
static void static void
eshup6 (x) eshup6 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
int i; int i;
register unsigned EMUSHORT *p; register UEMUSHORT *p;
p = x + M; p = x + M;
x += M + 1; x += M + 1;
...@@ -2099,10 +2113,10 @@ eshup6 (x) ...@@ -2099,10 +2113,10 @@ eshup6 (x)
static void static void
eshdn6 (x) eshdn6 (x)
register unsigned EMUSHORT *x; register UEMUSHORT *x;
{ {
int i; int i;
register unsigned EMUSHORT *p; register UEMUSHORT *p;
x += NI - 1; x += NI - 1;
p = x + 1; p = x + 1;
...@@ -2117,7 +2131,7 @@ eshdn6 (x) ...@@ -2117,7 +2131,7 @@ eshdn6 (x)
static void static void
eaddm (x, y) eaddm (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
register unsigned EMULONG a; register unsigned EMULONG a;
int i; int i;
...@@ -2133,7 +2147,7 @@ eaddm (x, y) ...@@ -2133,7 +2147,7 @@ eaddm (x, y)
carry = 1; carry = 1;
else else
carry = 0; carry = 0;
*y = (unsigned EMUSHORT) a; *y = (UEMUSHORT) a;
--x; --x;
--y; --y;
} }
...@@ -2143,7 +2157,7 @@ eaddm (x, y) ...@@ -2143,7 +2157,7 @@ eaddm (x, y)
static void static void
esubm (x, y) esubm (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
unsigned EMULONG a; unsigned EMULONG a;
int i; int i;
...@@ -2159,14 +2173,14 @@ esubm (x, y) ...@@ -2159,14 +2173,14 @@ esubm (x, y)
carry = 1; carry = 1;
else else
carry = 0; carry = 0;
*y = (unsigned EMUSHORT) a; *y = (UEMUSHORT) a;
--x; --x;
--y; --y;
} }
} }
static unsigned EMUSHORT equot[NI]; static UEMUSHORT equot[NI];
#if 0 #if 0
...@@ -2177,11 +2191,11 @@ static unsigned EMUSHORT equot[NI]; ...@@ -2177,11 +2191,11 @@ static unsigned EMUSHORT equot[NI];
int int
edivm (den, num) edivm (den, num)
unsigned EMUSHORT den[], num[]; UEMUSHORT den[], num[];
{ {
int i; int i;
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
unsigned EMUSHORT j; UEMUSHORT j;
p = &equot[0]; p = &equot[0];
*p++ = num[0]; *p++ = num[0];
...@@ -2275,9 +2289,9 @@ edivm (den, num) ...@@ -2275,9 +2289,9 @@ edivm (den, num)
int int
emulm (a, b) emulm (a, b)
unsigned EMUSHORT a[], b[]; UEMUSHORT a[], b[];
{ {
unsigned EMUSHORT *p, *q; UEMUSHORT *p, *q;
int i, j, k; int i, j, k;
equot[0] = b[0]; equot[0] = b[0];
...@@ -2328,12 +2342,12 @@ emulm (a, b) ...@@ -2328,12 +2342,12 @@ emulm (a, b)
static void static void
m16m (a, b, c) m16m (a, b, c)
unsigned int a; unsigned int a;
unsigned EMUSHORT b[], c[]; UEMUSHORT b[], c[];
{ {
register unsigned EMUSHORT *pp; register UEMUSHORT *pp;
register unsigned EMULONG carry; register unsigned EMULONG carry;
unsigned EMUSHORT *ps; UEMUSHORT *ps;
unsigned EMUSHORT p[NI]; UEMUSHORT p[NI];
unsigned EMULONG aa, m; unsigned EMULONG aa, m;
int i; int i;
...@@ -2355,9 +2369,9 @@ m16m (a, b, c) ...@@ -2355,9 +2369,9 @@ m16m (a, b, c)
{ {
m = (unsigned EMULONG) aa * *ps--; m = (unsigned EMULONG) aa * *ps--;
carry = (m & 0xffff) + *pp; carry = (m & 0xffff) + *pp;
*pp-- = (unsigned EMUSHORT)carry; *pp-- = (UEMUSHORT)carry;
carry = (carry >> 16) + (m >> 16) + *pp; carry = (carry >> 16) + (m >> 16) + *pp;
*pp = (unsigned EMUSHORT)carry; *pp = (UEMUSHORT)carry;
*(pp-1) = carry >> 16; *(pp-1) = carry >> 16;
} }
} }
...@@ -2371,13 +2385,13 @@ m16m (a, b, c) ...@@ -2371,13 +2385,13 @@ m16m (a, b, c)
static int static int
edivm (den, num) edivm (den, num)
unsigned EMUSHORT den[], num[]; UEMUSHORT den[], num[];
{ {
int i; int i;
register unsigned EMUSHORT *p; register UEMUSHORT *p;
unsigned EMULONG tnum; unsigned EMULONG tnum;
unsigned EMUSHORT j, tdenm, tquot; UEMUSHORT j, tdenm, tquot;
unsigned EMUSHORT tprod[NI+1]; UEMUSHORT tprod[NI+1];
p = &equot[0]; p = &equot[0];
*p++ = num[0]; *p++ = num[0];
...@@ -2436,11 +2450,11 @@ edivm (den, num) ...@@ -2436,11 +2450,11 @@ edivm (den, num)
static int static int
emulm (a, b) emulm (a, b)
unsigned EMUSHORT a[], b[]; UEMUSHORT a[], b[];
{ {
unsigned EMUSHORT *p, *q; UEMUSHORT *p, *q;
unsigned EMUSHORT pprod[NI]; UEMUSHORT pprod[NI];
unsigned EMUSHORT j; UEMUSHORT j;
int i; int i;
equot[0] = b[0]; equot[0] = b[0];
...@@ -2504,22 +2518,22 @@ emulm (a, b) ...@@ -2504,22 +2518,22 @@ emulm (a, b)
static int rlast = -1; static int rlast = -1;
static int rw = 0; static int rw = 0;
static unsigned EMUSHORT rmsk = 0; static UEMUSHORT rmsk = 0;
static unsigned EMUSHORT rmbit = 0; static UEMUSHORT rmbit = 0;
static unsigned EMUSHORT rebit = 0; static UEMUSHORT rebit = 0;
static int re = 0; static int re = 0;
static unsigned EMUSHORT rbit[NI]; static UEMUSHORT rbit[NI];
static void static void
emdnorm (s, lost, subflg, exp, rcntrl) emdnorm (s, lost, subflg, exp, rcntrl)
unsigned EMUSHORT s[]; UEMUSHORT s[];
int lost; int lost;
int subflg; int subflg;
EMULONG exp; EMULONG exp;
int rcntrl; int rcntrl;
{ {
int i, j; int i, j;
unsigned EMUSHORT r; UEMUSHORT r;
/* Normalize */ /* Normalize */
j = enormlz (s); j = enormlz (s);
...@@ -2719,7 +2733,7 @@ emdnorm (s, lost, subflg, exp, rcntrl) ...@@ -2719,7 +2733,7 @@ emdnorm (s, lost, subflg, exp, rcntrl)
if (exp < 0) if (exp < 0)
s[1] = 0; s[1] = 0;
else else
s[1] = (unsigned EMUSHORT) exp; s[1] = (UEMUSHORT) exp;
} }
/* Subtract. C = B - A, all e type numbers. */ /* Subtract. C = B - A, all e type numbers. */
...@@ -2728,7 +2742,7 @@ static int subflg = 0; ...@@ -2728,7 +2742,7 @@ static int subflg = 0;
static void static void
esub (a, b, c) esub (a, b, c)
unsigned EMUSHORT *a, *b, *c; UEMUSHORT *a, *b, *c;
{ {
#ifdef NANS #ifdef NANS
...@@ -2760,7 +2774,7 @@ esub (a, b, c) ...@@ -2760,7 +2774,7 @@ esub (a, b, c)
static void static void
eadd (a, b, c) eadd (a, b, c)
unsigned EMUSHORT *a, *b, *c; UEMUSHORT *a, *b, *c;
{ {
#ifdef NANS #ifdef NANS
...@@ -2793,9 +2807,9 @@ eadd (a, b, c) ...@@ -2793,9 +2807,9 @@ eadd (a, b, c)
static void static void
eadd1 (a, b, c) eadd1 (a, b, c)
unsigned EMUSHORT *a, *b, *c; UEMUSHORT *a, *b, *c;
{ {
unsigned EMUSHORT ai[NI], bi[NI], ci[NI]; UEMUSHORT ai[NI], bi[NI], ci[NI];
int i, lost, j, k; int i, lost, j, k;
EMULONG lt, lta, ltb; EMULONG lt, lta, ltb;
...@@ -2874,7 +2888,7 @@ eadd1 (a, b, c) ...@@ -2874,7 +2888,7 @@ eadd1 (a, b, c)
break; break;
} }
} }
bi[E] = (unsigned EMUSHORT) ltb; bi[E] = (UEMUSHORT) ltb;
goto done; goto done;
} }
if (i > 0) if (i > 0)
...@@ -2904,9 +2918,9 @@ eadd1 (a, b, c) ...@@ -2904,9 +2918,9 @@ eadd1 (a, b, c)
static void static void
ediv (a, b, c) ediv (a, b, c)
unsigned EMUSHORT *a, *b, *c; UEMUSHORT *a, *b, *c;
{ {
unsigned EMUSHORT ai[NI], bi[NI]; UEMUSHORT ai[NI], bi[NI];
int i, sign; int i, sign;
EMULONG lt, lta, ltb; EMULONG lt, lta, ltb;
...@@ -3008,9 +3022,9 @@ ediv (a, b, c) ...@@ -3008,9 +3022,9 @@ ediv (a, b, c)
static void static void
emul (a, b, c) emul (a, b, c)
unsigned EMUSHORT *a, *b, *c; UEMUSHORT *a, *b, *c;
{ {
unsigned EMUSHORT ai[NI], bi[NI]; UEMUSHORT ai[NI], bi[NI];
int i, j, sign; int i, j, sign;
EMULONG lt, lta, ltb; EMULONG lt, lta, ltb;
...@@ -3104,7 +3118,7 @@ emul (a, b, c) ...@@ -3104,7 +3118,7 @@ emul (a, b, c)
static void static void
e53toe (pe, y) e53toe (pe, y)
unsigned EMUSHORT *pe, *y; UEMUSHORT *pe, *y;
{ {
#ifdef DEC #ifdef DEC
...@@ -3121,9 +3135,9 @@ e53toe (pe, y) ...@@ -3121,9 +3135,9 @@ e53toe (pe, y)
c4xtoe (pe, y, HFmode); c4xtoe (pe, y, HFmode);
#else #else
register unsigned EMUSHORT r; register UEMUSHORT r;
register unsigned EMUSHORT *e, *p; register UEMUSHORT *e, *p;
unsigned EMUSHORT yy[NI]; UEMUSHORT yy[NI];
int denorm, k; int denorm, k;
e = pe; e = pe;
...@@ -3201,7 +3215,7 @@ e53toe (pe, y) ...@@ -3201,7 +3215,7 @@ e53toe (pe, y)
if ((k = enormlz (yy)) > NBITS) if ((k = enormlz (yy)) > NBITS)
ecleazs (yy); ecleazs (yy);
else else
yy[E] -= (unsigned EMUSHORT) (k - 1); yy[E] -= (UEMUSHORT) (k - 1);
} }
emovo (yy, y); emovo (yy, y);
#endif /* not C4X */ #endif /* not C4X */
...@@ -3213,10 +3227,10 @@ e53toe (pe, y) ...@@ -3213,10 +3227,10 @@ e53toe (pe, y)
static void static void
e64toe (pe, y) e64toe (pe, y)
unsigned EMUSHORT *pe, *y; UEMUSHORT *pe, *y;
{ {
unsigned EMUSHORT yy[NI]; UEMUSHORT yy[NI];
unsigned EMUSHORT *e, *p, *q; UEMUSHORT *e, *p, *q;
int i; int i;
e = pe; e = pe;
...@@ -3246,7 +3260,7 @@ e64toe (pe, y) ...@@ -3246,7 +3260,7 @@ e64toe (pe, y)
is "pseudodenormal" when the exponent is zero. */ is "pseudodenormal" when the exponent is zero. */
if((yy[NE-1] & 0x7fff) == 0 && (yy[NE-2] & 0x8000) == 0) if((yy[NE-1] & 0x7fff) == 0 && (yy[NE-2] & 0x8000) == 0)
{ {
unsigned EMUSHORT temp[NI]; UEMUSHORT temp[NI];
emovi(yy, temp); emovi(yy, temp);
eshup1(temp); eshup1(temp);
...@@ -3336,11 +3350,11 @@ bigend_nan: ...@@ -3336,11 +3350,11 @@ bigend_nan:
static void static void
e113toe (pe, y) e113toe (pe, y)
unsigned EMUSHORT *pe, *y; UEMUSHORT *pe, *y;
{ {
register unsigned EMUSHORT r; register UEMUSHORT r;
unsigned EMUSHORT *e, *p; UEMUSHORT *e, *p;
unsigned EMUSHORT yy[NI]; UEMUSHORT yy[NI];
int denorm, i; int denorm, i;
e = pe; e = pe;
...@@ -3422,7 +3436,7 @@ e113toe (pe, y) ...@@ -3422,7 +3436,7 @@ e113toe (pe, y)
static void static void
e24toe (pe, y) e24toe (pe, y)
unsigned EMUSHORT *pe, *y; UEMUSHORT *pe, *y;
{ {
#ifdef IBM #ifdef IBM
...@@ -3436,9 +3450,9 @@ e24toe (pe, y) ...@@ -3436,9 +3450,9 @@ e24toe (pe, y)
#else #else
register unsigned EMUSHORT r; register UEMUSHORT r;
register unsigned EMUSHORT *e, *p; register UEMUSHORT *e, *p;
unsigned EMUSHORT yy[NI]; UEMUSHORT yy[NI];
int denorm, k; int denorm, k;
e = pe; e = pe;
...@@ -3514,7 +3528,7 @@ e24toe (pe, y) ...@@ -3514,7 +3528,7 @@ e24toe (pe, y)
if ((k = enormlz (yy)) > NBITS) if ((k = enormlz (yy)) > NBITS)
ecleazs (yy); ecleazs (yy);
else else
yy[E] -= (unsigned EMUSHORT) (k - 1); yy[E] -= (UEMUSHORT) (k - 1);
} }
emovo (yy, y); emovo (yy, y);
#endif /* not C4X */ #endif /* not C4X */
...@@ -3525,9 +3539,9 @@ e24toe (pe, y) ...@@ -3525,9 +3539,9 @@ e24toe (pe, y)
static void static void
etoe113 (x, e) etoe113 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -3560,10 +3574,10 @@ etoe113 (x, e) ...@@ -3560,10 +3574,10 @@ etoe113 (x, e)
static void static void
toe113 (a, b) toe113 (a, b)
unsigned EMUSHORT *a, *b; UEMUSHORT *a, *b;
{ {
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
unsigned EMUSHORT i; UEMUSHORT i;
#ifdef NANS #ifdef NANS
if (eiisnan (a)) if (eiisnan (a))
...@@ -3618,9 +3632,9 @@ toe113 (a, b) ...@@ -3618,9 +3632,9 @@ toe113 (a, b)
static void static void
etoe64 (x, e) etoe64 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -3654,10 +3668,10 @@ etoe64 (x, e) ...@@ -3654,10 +3668,10 @@ etoe64 (x, e)
static void static void
toe64 (a, b) toe64 (a, b)
unsigned EMUSHORT *a, *b; UEMUSHORT *a, *b;
{ {
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
unsigned EMUSHORT i; UEMUSHORT i;
#ifdef NANS #ifdef NANS
if (eiisnan (a)) if (eiisnan (a))
...@@ -3771,7 +3785,7 @@ toe64 (a, b) ...@@ -3771,7 +3785,7 @@ toe64 (a, b)
static void static void
etoe53 (x, e) etoe53 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
etodec (x, e); /* see etodec.c */ etodec (x, e); /* see etodec.c */
} }
...@@ -3781,7 +3795,7 @@ etoe53 (x, e) ...@@ -3781,7 +3795,7 @@ etoe53 (x, e)
static void static void
toe53 (x, y) toe53 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
todec (x, y); todec (x, y);
} }
...@@ -3792,7 +3806,7 @@ toe53 (x, y) ...@@ -3792,7 +3806,7 @@ toe53 (x, y)
static void static void
etoe53 (x, e) etoe53 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
etoibm (x, e, DFmode); etoibm (x, e, DFmode);
} }
...@@ -3802,7 +3816,7 @@ etoe53 (x, e) ...@@ -3802,7 +3816,7 @@ etoe53 (x, e)
static void static void
toe53 (x, y) toe53 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
toibm (x, y, DFmode); toibm (x, y, DFmode);
} }
...@@ -3813,7 +3827,7 @@ toe53 (x, y) ...@@ -3813,7 +3827,7 @@ toe53 (x, y)
static void static void
etoe53 (x, e) etoe53 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
etoc4x (x, e, HFmode); etoc4x (x, e, HFmode);
} }
...@@ -3823,7 +3837,7 @@ etoe53 (x, e) ...@@ -3823,7 +3837,7 @@ etoe53 (x, e)
static void static void
toe53 (x, y) toe53 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
toc4x (x, y, HFmode); toc4x (x, y, HFmode);
} }
...@@ -3834,9 +3848,9 @@ toe53 (x, y) ...@@ -3834,9 +3848,9 @@ toe53 (x, y)
static void static void
etoe53 (x, e) etoe53 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -3870,10 +3884,10 @@ etoe53 (x, e) ...@@ -3870,10 +3884,10 @@ etoe53 (x, e)
static void static void
toe53 (x, y) toe53 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
unsigned EMUSHORT i; UEMUSHORT i;
unsigned EMUSHORT *p; UEMUSHORT *p;
#ifdef NANS #ifdef NANS
if (eiisnan (x)) if (eiisnan (x))
...@@ -3911,7 +3925,7 @@ toe53 (x, y) ...@@ -3911,7 +3925,7 @@ toe53 (x, y)
*y++ = 0; *y++ = 0;
} }
#else #else
*y |= (unsigned EMUSHORT) 0x7fef; *y |= (UEMUSHORT) 0x7fef;
if (! REAL_WORDS_BIG_ENDIAN) if (! REAL_WORDS_BIG_ENDIAN)
{ {
*(--y) = 0xffff; *(--y) = 0xffff;
...@@ -3937,8 +3951,8 @@ toe53 (x, y) ...@@ -3937,8 +3951,8 @@ toe53 (x, y)
i <<= 4; i <<= 4;
eshift (x, 5); eshift (x, 5);
} }
i |= *p++ & (unsigned EMUSHORT) 0x0f; /* *p = xi[M] */ i |= *p++ & (UEMUSHORT) 0x0f; /* *p = xi[M] */
*y |= (unsigned EMUSHORT) i; /* high order output already has sign bit set */ *y |= (UEMUSHORT) i; /* high order output already has sign bit set */
if (! REAL_WORDS_BIG_ENDIAN) if (! REAL_WORDS_BIG_ENDIAN)
{ {
*(--y) = *p++; *(--y) = *p++;
...@@ -3967,7 +3981,7 @@ toe53 (x, y) ...@@ -3967,7 +3981,7 @@ toe53 (x, y)
static void static void
etoe24 (x, e) etoe24 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
etoibm (x, e, SFmode); etoibm (x, e, SFmode);
} }
...@@ -3977,7 +3991,7 @@ etoe24 (x, e) ...@@ -3977,7 +3991,7 @@ etoe24 (x, e)
static void static void
toe24 (x, y) toe24 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
toibm (x, y, SFmode); toibm (x, y, SFmode);
} }
...@@ -3989,7 +4003,7 @@ toe24 (x, y) ...@@ -3989,7 +4003,7 @@ toe24 (x, y)
static void static void
etoe24 (x, e) etoe24 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
etoc4x (x, e, QFmode); etoc4x (x, e, QFmode);
} }
...@@ -3999,7 +4013,7 @@ etoe24 (x, e) ...@@ -3999,7 +4013,7 @@ etoe24 (x, e)
static void static void
toe24 (x, y) toe24 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
toc4x (x, y, QFmode); toc4x (x, y, QFmode);
} }
...@@ -4010,10 +4024,10 @@ toe24 (x, y) ...@@ -4010,10 +4024,10 @@ toe24 (x, y)
static void static void
etoe24 (x, e) etoe24 (x, e)
unsigned EMUSHORT *x, *e; UEMUSHORT *x, *e;
{ {
EMULONG exp; EMULONG exp;
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
int rndsav; int rndsav;
#ifdef NANS #ifdef NANS
...@@ -4046,10 +4060,10 @@ etoe24 (x, e) ...@@ -4046,10 +4060,10 @@ etoe24 (x, e)
static void static void
toe24 (x, y) toe24 (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
unsigned EMUSHORT i; UEMUSHORT i;
unsigned EMUSHORT *p; UEMUSHORT *p;
#ifdef NANS #ifdef NANS
if (eiisnan (x)) if (eiisnan (x))
...@@ -4075,7 +4089,7 @@ toe24 (x, y) ...@@ -4075,7 +4089,7 @@ toe24 (x, y)
if (i >= 255) if (i >= 255)
{ {
#ifdef INFINITY #ifdef INFINITY
*y |= (unsigned EMUSHORT) 0x7f80; *y |= (UEMUSHORT) 0x7f80;
#ifdef DEC #ifdef DEC
*(--y) = 0; *(--y) = 0;
#endif #endif
...@@ -4089,7 +4103,7 @@ toe24 (x, y) ...@@ -4089,7 +4103,7 @@ toe24 (x, y)
} }
#endif #endif
#else /* no INFINITY */ #else /* no INFINITY */
*y |= (unsigned EMUSHORT) 0x7f7f; *y |= (UEMUSHORT) 0x7f7f;
#ifdef DEC #ifdef DEC
*(--y) = 0xffff; *(--y) = 0xffff;
#endif #endif
...@@ -4117,7 +4131,7 @@ toe24 (x, y) ...@@ -4117,7 +4131,7 @@ toe24 (x, y)
i <<= 7; i <<= 7;
eshift (x, 8); eshift (x, 8);
} }
i |= *p++ & (unsigned EMUSHORT) 0x7f; /* *p = xi[M] */ i |= *p++ & (UEMUSHORT) 0x7f; /* *p = xi[M] */
/* High order output already has sign bit set. */ /* High order output already has sign bit set. */
*y |= i; *y |= i;
#ifdef DEC #ifdef DEC
...@@ -4144,10 +4158,10 @@ toe24 (x, y) ...@@ -4144,10 +4158,10 @@ toe24 (x, y)
static int static int
ecmp (a, b) ecmp (a, b)
unsigned EMUSHORT *a, *b; UEMUSHORT *a, *b;
{ {
unsigned EMUSHORT ai[NI], bi[NI]; UEMUSHORT ai[NI], bi[NI];
register unsigned EMUSHORT *p, *q; register UEMUSHORT *p, *q;
register int i; register int i;
int msign; int msign;
...@@ -4207,7 +4221,7 @@ ecmp (a, b) ...@@ -4207,7 +4221,7 @@ ecmp (a, b)
static void static void
eround (x, y) eround (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
eadd (ehalf, x, y); eadd (ehalf, x, y);
efloor (y, y); efloor (y, y);
...@@ -4219,9 +4233,9 @@ eround (x, y) ...@@ -4219,9 +4233,9 @@ eround (x, y)
static void static void
ltoe (lp, y) ltoe (lp, y)
HOST_WIDE_INT *lp; HOST_WIDE_INT *lp;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
unsigned EMUSHORT yi[NI]; UEMUSHORT yi[NI];
unsigned HOST_WIDE_INT ll; unsigned HOST_WIDE_INT ll;
int k; int k;
...@@ -4238,21 +4252,21 @@ ltoe (lp, y) ...@@ -4238,21 +4252,21 @@ ltoe (lp, y)
} }
/* move the long integer to yi significand area */ /* move the long integer to yi significand area */
#if HOST_BITS_PER_WIDE_INT == 64 #if HOST_BITS_PER_WIDE_INT == 64
yi[M] = (unsigned EMUSHORT) (ll >> 48); yi[M] = (UEMUSHORT) (ll >> 48);
yi[M + 1] = (unsigned EMUSHORT) (ll >> 32); yi[M + 1] = (UEMUSHORT) (ll >> 32);
yi[M + 2] = (unsigned EMUSHORT) (ll >> 16); yi[M + 2] = (UEMUSHORT) (ll >> 16);
yi[M + 3] = (unsigned EMUSHORT) ll; yi[M + 3] = (UEMUSHORT) ll;
yi[E] = EXONE + 47; /* exponent if normalize shift count were 0 */ yi[E] = EXONE + 47; /* exponent if normalize shift count were 0 */
#else #else
yi[M] = (unsigned EMUSHORT) (ll >> 16); yi[M] = (UEMUSHORT) (ll >> 16);
yi[M + 1] = (unsigned EMUSHORT) ll; yi[M + 1] = (UEMUSHORT) ll;
yi[E] = EXONE + 15; /* exponent if normalize shift count were 0 */ yi[E] = EXONE + 15; /* exponent if normalize shift count were 0 */
#endif #endif
if ((k = enormlz (yi)) > NBITS)/* normalize the significand */ if ((k = enormlz (yi)) > NBITS)/* normalize the significand */
ecleaz (yi); /* it was zero */ ecleaz (yi); /* it was zero */
else else
yi[E] -= (unsigned EMUSHORT) k;/* subtract shift count from exponent */ yi[E] -= (UEMUSHORT) k;/* subtract shift count from exponent */
emovo (yi, y); /* output the answer */ emovo (yi, y); /* output the answer */
} }
...@@ -4261,9 +4275,9 @@ ltoe (lp, y) ...@@ -4261,9 +4275,9 @@ ltoe (lp, y)
static void static void
ultoe (lp, y) ultoe (lp, y)
unsigned HOST_WIDE_INT *lp; unsigned HOST_WIDE_INT *lp;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
unsigned EMUSHORT yi[NI]; UEMUSHORT yi[NI];
unsigned HOST_WIDE_INT ll; unsigned HOST_WIDE_INT ll;
int k; int k;
...@@ -4272,21 +4286,21 @@ ultoe (lp, y) ...@@ -4272,21 +4286,21 @@ ultoe (lp, y)
/* move the long integer to ayi significand area */ /* move the long integer to ayi significand area */
#if HOST_BITS_PER_WIDE_INT == 64 #if HOST_BITS_PER_WIDE_INT == 64
yi[M] = (unsigned EMUSHORT) (ll >> 48); yi[M] = (UEMUSHORT) (ll >> 48);
yi[M + 1] = (unsigned EMUSHORT) (ll >> 32); yi[M + 1] = (UEMUSHORT) (ll >> 32);
yi[M + 2] = (unsigned EMUSHORT) (ll >> 16); yi[M + 2] = (UEMUSHORT) (ll >> 16);
yi[M + 3] = (unsigned EMUSHORT) ll; yi[M + 3] = (UEMUSHORT) ll;
yi[E] = EXONE + 47; /* exponent if normalize shift count were 0 */ yi[E] = EXONE + 47; /* exponent if normalize shift count were 0 */
#else #else
yi[M] = (unsigned EMUSHORT) (ll >> 16); yi[M] = (UEMUSHORT) (ll >> 16);
yi[M + 1] = (unsigned EMUSHORT) ll; yi[M + 1] = (UEMUSHORT) ll;
yi[E] = EXONE + 15; /* exponent if normalize shift count were 0 */ yi[E] = EXONE + 15; /* exponent if normalize shift count were 0 */
#endif #endif
if ((k = enormlz (yi)) > NBITS)/* normalize the significand */ if ((k = enormlz (yi)) > NBITS)/* normalize the significand */
ecleaz (yi); /* it was zero */ ecleaz (yi); /* it was zero */
else else
yi[E] -= (unsigned EMUSHORT) k; /* subtract shift count from exponent */ yi[E] -= (UEMUSHORT) k; /* subtract shift count from exponent */
emovo (yi, y); /* output the answer */ emovo (yi, y); /* output the answer */
} }
...@@ -4300,11 +4314,11 @@ ultoe (lp, y) ...@@ -4300,11 +4314,11 @@ ultoe (lp, y)
static void static void
eifrac (x, i, frac) eifrac (x, i, frac)
unsigned EMUSHORT *x; UEMUSHORT *x;
HOST_WIDE_INT *i; HOST_WIDE_INT *i;
unsigned EMUSHORT *frac; UEMUSHORT *frac;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
int j, k; int j, k;
unsigned HOST_WIDE_INT ll; unsigned HOST_WIDE_INT ll;
...@@ -4371,7 +4385,7 @@ eifrac (x, i, frac) ...@@ -4371,7 +4385,7 @@ eifrac (x, i, frac)
if ((k = enormlz (xi)) > NBITS) if ((k = enormlz (xi)) > NBITS)
ecleaz (xi); ecleaz (xi);
else else
xi[E] -= (unsigned EMUSHORT) k; xi[E] -= (UEMUSHORT) k;
emovo (xi, frac); emovo (xi, frac);
} }
...@@ -4383,12 +4397,12 @@ eifrac (x, i, frac) ...@@ -4383,12 +4397,12 @@ eifrac (x, i, frac)
static void static void
euifrac (x, i, frac) euifrac (x, i, frac)
unsigned EMUSHORT *x; UEMUSHORT *x;
unsigned HOST_WIDE_INT *i; unsigned HOST_WIDE_INT *i;
unsigned EMUSHORT *frac; UEMUSHORT *frac;
{ {
unsigned HOST_WIDE_INT ll; unsigned HOST_WIDE_INT ll;
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
int j, k; int j, k;
emovi (x, xi); emovi (x, xi);
...@@ -4443,7 +4457,7 @@ euifrac (x, i, frac) ...@@ -4443,7 +4457,7 @@ euifrac (x, i, frac)
if ((k = enormlz (xi)) > NBITS) if ((k = enormlz (xi)) > NBITS)
ecleaz (xi); ecleaz (xi);
else else
xi[E] -= (unsigned EMUSHORT) k; xi[E] -= (UEMUSHORT) k;
emovo (xi, frac); emovo (xi, frac);
} }
...@@ -4452,11 +4466,11 @@ euifrac (x, i, frac) ...@@ -4452,11 +4466,11 @@ euifrac (x, i, frac)
static int static int
eshift (x, sc) eshift (x, sc)
unsigned EMUSHORT *x; UEMUSHORT *x;
int sc; int sc;
{ {
unsigned EMUSHORT lost; UEMUSHORT lost;
unsigned EMUSHORT *p; UEMUSHORT *p;
if (sc == 0) if (sc == 0)
return (0); return (0);
...@@ -4518,9 +4532,9 @@ eshift (x, sc) ...@@ -4518,9 +4532,9 @@ eshift (x, sc)
static int static int
enormlz (x) enormlz (x)
unsigned EMUSHORT x[]; UEMUSHORT x[];
{ {
register unsigned EMUSHORT *p; register UEMUSHORT *p;
int sc; int sc;
sc = 0; sc = 0;
...@@ -4588,7 +4602,7 @@ enormlz (x) ...@@ -4588,7 +4602,7 @@ enormlz (x)
#define MAXP 4096 #define MAXP 4096
#if MAX_LONG_DOUBLE_TYPE_SIZE == 128 && (INTEL_EXTENDED_IEEE_FORMAT == 0) #if MAX_LONG_DOUBLE_TYPE_SIZE == 128 && (INTEL_EXTENDED_IEEE_FORMAT == 0)
static unsigned EMUSHORT etens[NTEN + 1][NE] = static UEMUSHORT etens[NTEN + 1][NE] =
{ {
{0x6576, 0x4a92, 0x804a, 0x153f, {0x6576, 0x4a92, 0x804a, 0x153f,
0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ 0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */
...@@ -4618,7 +4632,7 @@ static unsigned EMUSHORT etens[NTEN + 1][NE] = ...@@ -4618,7 +4632,7 @@ static unsigned EMUSHORT etens[NTEN + 1][NE] =
0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ 0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */
}; };
static unsigned EMUSHORT emtens[NTEN + 1][NE] = static UEMUSHORT emtens[NTEN + 1][NE] =
{ {
{0x2030, 0xcffc, 0xa1c3, 0x8123, {0x2030, 0xcffc, 0xa1c3, 0x8123,
0x2de3, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */ 0x2de3, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */
...@@ -4649,7 +4663,7 @@ static unsigned EMUSHORT emtens[NTEN + 1][NE] = ...@@ -4649,7 +4663,7 @@ static unsigned EMUSHORT emtens[NTEN + 1][NE] =
}; };
#else #else
/* LONG_DOUBLE_TYPE_SIZE is other than 128 */ /* LONG_DOUBLE_TYPE_SIZE is other than 128 */
static unsigned EMUSHORT etens[NTEN + 1][NE] = static UEMUSHORT etens[NTEN + 1][NE] =
{ {
{0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */ {0xc94c, 0x979a, 0x8a20, 0x5202, 0xc460, 0x7525,}, /* 10**4096 */
{0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */ {0xa74d, 0x5de4, 0xc53d, 0x3b5d, 0x9e8b, 0x5a92,}, /* 10**2048 */
...@@ -4666,7 +4680,7 @@ static unsigned EMUSHORT etens[NTEN + 1][NE] = ...@@ -4666,7 +4680,7 @@ static unsigned EMUSHORT etens[NTEN + 1][NE] =
{0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */ {0x0000, 0x0000, 0x0000, 0x0000, 0xa000, 0x4002,}, /* 10**1 */
}; };
static unsigned EMUSHORT emtens[NTEN + 1][NE] = static UEMUSHORT emtens[NTEN + 1][NE] =
{ {
{0x2de4, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */ {0x2de4, 0x9fde, 0xd2ce, 0x04c8, 0xa6dd, 0x0ad8,}, /* 10**-4096 */
{0x4925, 0x2de4, 0x3436, 0x534f, 0xceae, 0x256b,}, /* 10**-2048 */ {0x4925, 0x2de4, 0x3436, 0x534f, 0xceae, 0x256b,}, /* 10**-2048 */
...@@ -4690,11 +4704,11 @@ static unsigned EMUSHORT emtens[NTEN + 1][NE] = ...@@ -4690,11 +4704,11 @@ static unsigned EMUSHORT emtens[NTEN + 1][NE] =
static void static void
e24toasc (x, string, ndigs) e24toasc (x, string, ndigs)
unsigned EMUSHORT x[]; UEMUSHORT x[];
char *string; char *string;
int ndigs; int ndigs;
{ {
unsigned EMUSHORT w[NI]; UEMUSHORT w[NI];
e24toe (x, w); e24toe (x, w);
etoasc (w, string, ndigs); etoasc (w, string, ndigs);
...@@ -4705,11 +4719,11 @@ e24toasc (x, string, ndigs) ...@@ -4705,11 +4719,11 @@ e24toasc (x, string, ndigs)
static void static void
e53toasc (x, string, ndigs) e53toasc (x, string, ndigs)
unsigned EMUSHORT x[]; UEMUSHORT x[];
char *string; char *string;
int ndigs; int ndigs;
{ {
unsigned EMUSHORT w[NI]; UEMUSHORT w[NI];
e53toe (x, w); e53toe (x, w);
etoasc (w, string, ndigs); etoasc (w, string, ndigs);
...@@ -4720,11 +4734,11 @@ e53toasc (x, string, ndigs) ...@@ -4720,11 +4734,11 @@ e53toasc (x, string, ndigs)
static void static void
e64toasc (x, string, ndigs) e64toasc (x, string, ndigs)
unsigned EMUSHORT x[]; UEMUSHORT x[];
char *string; char *string;
int ndigs; int ndigs;
{ {
unsigned EMUSHORT w[NI]; UEMUSHORT w[NI];
e64toe (x, w); e64toe (x, w);
etoasc (w, string, ndigs); etoasc (w, string, ndigs);
...@@ -4735,11 +4749,11 @@ e64toasc (x, string, ndigs) ...@@ -4735,11 +4749,11 @@ e64toasc (x, string, ndigs)
static void static void
e113toasc (x, string, ndigs) e113toasc (x, string, ndigs)
unsigned EMUSHORT x[]; UEMUSHORT x[];
char *string; char *string;
int ndigs; int ndigs;
{ {
unsigned EMUSHORT w[NI]; UEMUSHORT w[NI];
e113toe (x, w); e113toe (x, w);
etoasc (w, string, ndigs); etoasc (w, string, ndigs);
...@@ -4753,17 +4767,17 @@ static char wstring[80]; /* working storage for ASCII output */ ...@@ -4753,17 +4767,17 @@ static char wstring[80]; /* working storage for ASCII output */
static void static void
etoasc (x, string, ndigs) etoasc (x, string, ndigs)
unsigned EMUSHORT x[]; UEMUSHORT x[];
char *string; char *string;
int ndigs; int ndigs;
{ {
EMUSHORT digit; EMUSHORT digit;
unsigned EMUSHORT y[NI], t[NI], u[NI], w[NI]; UEMUSHORT y[NI], t[NI], u[NI], w[NI];
unsigned EMUSHORT *p, *r, *ten; UEMUSHORT *p, *r, *ten;
unsigned EMUSHORT sign; UEMUSHORT sign;
int i, j, k, expon, rndsav; int i, j, k, expon, rndsav;
char *s, *ss; char *s, *ss;
unsigned EMUSHORT m; UEMUSHORT m;
rndsav = rndprc; rndsav = rndprc;
...@@ -5072,7 +5086,7 @@ etoasc (x, string, ndigs) ...@@ -5072,7 +5086,7 @@ etoasc (x, string, ndigs)
static void static void
asctoe24 (s, y) asctoe24 (s, y)
const char *s; const char *s;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
asctoeg (s, y, 24); asctoeg (s, y, 24);
} }
...@@ -5083,7 +5097,7 @@ asctoe24 (s, y) ...@@ -5083,7 +5097,7 @@ asctoe24 (s, y)
static void static void
asctoe53 (s, y) asctoe53 (s, y)
const char *s; const char *s;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
#if defined(DEC) || defined(IBM) #if defined(DEC) || defined(IBM)
asctoeg (s, y, 56); asctoeg (s, y, 56);
...@@ -5102,7 +5116,7 @@ asctoe53 (s, y) ...@@ -5102,7 +5116,7 @@ asctoe53 (s, y)
static void static void
asctoe64 (s, y) asctoe64 (s, y)
const char *s; const char *s;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
asctoeg (s, y, 64); asctoeg (s, y, 64);
} }
...@@ -5113,7 +5127,7 @@ asctoe64 (s, y) ...@@ -5113,7 +5127,7 @@ asctoe64 (s, y)
static void static void
asctoe113 (s, y) asctoe113 (s, y)
const char *s; const char *s;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
asctoeg (s, y, 113); asctoeg (s, y, 113);
} }
...@@ -5124,7 +5138,7 @@ asctoe113 (s, y) ...@@ -5124,7 +5138,7 @@ asctoe113 (s, y)
static void static void
asctoe (s, y) asctoe (s, y)
const char *s; const char *s;
unsigned EMUSHORT *y; UEMUSHORT *y;
{ {
asctoeg (s, y, NBITS); asctoeg (s, y, NBITS);
} }
...@@ -5135,14 +5149,14 @@ asctoe (s, y) ...@@ -5135,14 +5149,14 @@ asctoe (s, y)
static void static void
asctoeg (ss, y, oprec) asctoeg (ss, y, oprec)
const char *ss; const char *ss;
unsigned EMUSHORT *y; UEMUSHORT *y;
int oprec; int oprec;
{ {
unsigned EMUSHORT yy[NI], xt[NI], tt[NI]; UEMUSHORT yy[NI], xt[NI], tt[NI];
int esign, decflg, sgnflg, nexp, exp, prec, lost; int esign, decflg, sgnflg, nexp, exp, prec, lost;
int i, k, trail, c, rndsav; int i, k, trail, c, rndsav;
EMULONG lexp; EMULONG lexp;
unsigned EMUSHORT nsign; UEMUSHORT nsign;
char *sp, *s, *lstr; char *sp, *s, *lstr;
int base = 10; int base = 10;
...@@ -5241,7 +5255,7 @@ asctoeg (ss, y, oprec) ...@@ -5241,7 +5255,7 @@ asctoeg (ss, y, oprec)
} }
/* Insert the current digit. */ /* Insert the current digit. */
ecleaz (xt); ecleaz (xt);
xt[NI - 2] = (unsigned EMUSHORT) k; xt[NI - 2] = (UEMUSHORT) k;
eaddm (xt, yy); eaddm (xt, yy);
} }
else else
...@@ -5522,7 +5536,7 @@ read_expnt: ...@@ -5522,7 +5536,7 @@ read_expnt:
/* Return Y = largest integer not greater than X (truncated toward minus /* Return Y = largest integer not greater than X (truncated toward minus
infinity). */ infinity). */
static unsigned EMUSHORT bmask[] = static UEMUSHORT bmask[] =
{ {
0xffff, 0xffff,
0xfffe, 0xfffe,
...@@ -5545,11 +5559,11 @@ static unsigned EMUSHORT bmask[] = ...@@ -5545,11 +5559,11 @@ static unsigned EMUSHORT bmask[] =
static void static void
efloor (x, y) efloor (x, y)
unsigned EMUSHORT x[], y[]; UEMUSHORT x[], y[];
{ {
register unsigned EMUSHORT *p; register UEMUSHORT *p;
int e, expon, i; int e, expon, i;
unsigned EMUSHORT f[NE]; UEMUSHORT f[NE];
emov (x, f); /* leave in external format */ emov (x, f); /* leave in external format */
expon = (int) f[NE - 1]; expon = (int) f[NE - 1];
...@@ -5576,7 +5590,7 @@ efloor (x, y) ...@@ -5576,7 +5590,7 @@ efloor (x, y)
/* truncate negatives toward minus infinity */ /* truncate negatives toward minus infinity */
isitneg: isitneg:
if ((unsigned EMUSHORT) expon & (unsigned EMUSHORT) 0x8000) if ((UEMUSHORT) expon & (UEMUSHORT) 0x8000)
{ {
for (i = 0; i < NE - 1; i++) for (i = 0; i < NE - 1; i++)
{ {
...@@ -5596,11 +5610,11 @@ efloor (x, y) ...@@ -5596,11 +5610,11 @@ efloor (x, y)
static void static void
efrexp (x, exp, s) efrexp (x, exp, s)
unsigned EMUSHORT x[]; UEMUSHORT x[];
int *exp; int *exp;
unsigned EMUSHORT s[]; UEMUSHORT s[];
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG li; EMULONG li;
emovi (x, xi); emovi (x, xi);
...@@ -5621,11 +5635,11 @@ efrexp (x, exp, s) ...@@ -5621,11 +5635,11 @@ efrexp (x, exp, s)
static void static void
eldexp (x, pwr2, y) eldexp (x, pwr2, y)
unsigned EMUSHORT x[]; UEMUSHORT x[];
int pwr2; int pwr2;
unsigned EMUSHORT y[]; UEMUSHORT y[];
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG li; EMULONG li;
int i; int i;
...@@ -5644,9 +5658,9 @@ eldexp (x, pwr2, y) ...@@ -5644,9 +5658,9 @@ eldexp (x, pwr2, y)
static void static void
eremain (a, b, c) eremain (a, b, c)
unsigned EMUSHORT a[], b[], c[]; UEMUSHORT a[], b[], c[];
{ {
unsigned EMUSHORT den[NI], num[NI]; UEMUSHORT den[NI], num[NI];
#ifdef NANS #ifdef NANS
if (eisinf (b) if (eisinf (b)
...@@ -5681,10 +5695,10 @@ eremain (a, b, c) ...@@ -5681,10 +5695,10 @@ eremain (a, b, c)
static void static void
eiremain (den, num) eiremain (den, num)
unsigned EMUSHORT den[], num[]; UEMUSHORT den[], num[];
{ {
EMULONG ld, ln; EMULONG ld, ln;
unsigned EMUSHORT j; UEMUSHORT j;
ld = den[E]; ld = den[E];
ld -= enormlz (den); ld -= enormlz (den);
...@@ -5777,11 +5791,11 @@ mtherr (name, code) ...@@ -5777,11 +5791,11 @@ mtherr (name, code)
static void static void
dectoe (d, e) dectoe (d, e)
unsigned EMUSHORT *d; UEMUSHORT *d;
unsigned EMUSHORT *e; UEMUSHORT *e;
{ {
unsigned EMUSHORT y[NI]; UEMUSHORT y[NI];
register unsigned EMUSHORT r, *p; register UEMUSHORT r, *p;
ecleaz (y); /* start with a zero */ ecleaz (y); /* start with a zero */
p = y; /* point to our number */ p = y; /* point to our number */
...@@ -5817,9 +5831,9 @@ dectoe (d, e) ...@@ -5817,9 +5831,9 @@ dectoe (d, e)
static void static void
etodec (x, d) etodec (x, d)
unsigned EMUSHORT *x, *d; UEMUSHORT *x, *d;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -5839,10 +5853,10 @@ etodec (x, d) ...@@ -5839,10 +5853,10 @@ etodec (x, d)
static void static void
todec (x, y) todec (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
unsigned EMUSHORT i; UEMUSHORT i;
unsigned EMUSHORT *p; UEMUSHORT *p;
p = x; p = x;
*y = 0; *y = 0;
...@@ -5885,12 +5899,12 @@ todec (x, y) ...@@ -5885,12 +5899,12 @@ todec (x, y)
static void static void
ibmtoe (d, e, mode) ibmtoe (d, e, mode)
unsigned EMUSHORT *d; UEMUSHORT *d;
unsigned EMUSHORT *e; UEMUSHORT *e;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT y[NI]; UEMUSHORT y[NI];
register unsigned EMUSHORT r, *p; register UEMUSHORT r, *p;
ecleaz (y); /* start with a zero */ ecleaz (y); /* start with a zero */
p = y; /* point to our number */ p = y; /* point to our number */
...@@ -5928,10 +5942,10 @@ ibmtoe (d, e, mode) ...@@ -5928,10 +5942,10 @@ ibmtoe (d, e, mode)
static void static void
etoibm (x, d, mode) etoibm (x, d, mode)
unsigned EMUSHORT *x, *d; UEMUSHORT *x, *d;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -5947,11 +5961,11 @@ etoibm (x, d, mode) ...@@ -5947,11 +5961,11 @@ etoibm (x, d, mode)
static void static void
toibm (x, y, mode) toibm (x, y, mode)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT i; UEMUSHORT i;
unsigned EMUSHORT *p; UEMUSHORT *p;
int r; int r;
p = x; p = x;
...@@ -6005,11 +6019,11 @@ toibm (x, y, mode) ...@@ -6005,11 +6019,11 @@ toibm (x, y, mode)
static void static void
c4xtoe (d, e, mode) c4xtoe (d, e, mode)
unsigned EMUSHORT *d; UEMUSHORT *d;
unsigned EMUSHORT *e; UEMUSHORT *e;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT y[NI]; UEMUSHORT y[NI];
int r; int r;
int isnegative; int isnegative;
int size; int size;
...@@ -6121,10 +6135,10 @@ c4xtoe (d, e, mode) ...@@ -6121,10 +6135,10 @@ c4xtoe (d, e, mode)
static void static void
etoc4x (x, d, mode) etoc4x (x, d, mode)
unsigned EMUSHORT *x, *d; UEMUSHORT *x, *d;
enum machine_mode mode; enum machine_mode mode;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
EMULONG exp; EMULONG exp;
int rndsav; int rndsav;
...@@ -6143,7 +6157,7 @@ etoc4x (x, d, mode) ...@@ -6143,7 +6157,7 @@ etoc4x (x, d, mode)
static void static void
toc4x (x, y, mode) toc4x (x, y, mode)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
enum machine_mode mode; enum machine_mode mode;
{ {
int i; int i;
...@@ -6254,9 +6268,9 @@ toc4x (x, y, mode) ...@@ -6254,9 +6268,9 @@ toc4x (x, y, mode)
TFMODE_NAN; TFMODE_NAN;
#else #else
#ifdef IEEE #ifdef IEEE
unsigned EMUSHORT TFbignan[8] = UEMUSHORT TFbignan[8] =
{0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; {0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff};
unsigned EMUSHORT TFlittlenan[8] = {0, 0, 0, 0, 0, 0, 0x8000, 0xffff}; UEMUSHORT TFlittlenan[8] = {0, 0, 0, 0, 0, 0, 0x8000, 0xffff};
#endif #endif
#endif #endif
...@@ -6264,9 +6278,9 @@ unsigned EMUSHORT TFlittlenan[8] = {0, 0, 0, 0, 0, 0, 0x8000, 0xffff}; ...@@ -6264,9 +6278,9 @@ unsigned EMUSHORT TFlittlenan[8] = {0, 0, 0, 0, 0, 0, 0x8000, 0xffff};
XFMODE_NAN; XFMODE_NAN;
#else #else
#ifdef IEEE #ifdef IEEE
unsigned EMUSHORT XFbignan[6] = UEMUSHORT XFbignan[6] =
{0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}; {0x7fff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff};
unsigned EMUSHORT XFlittlenan[6] = {0, 0, 0, 0xc000, 0xffff, 0}; UEMUSHORT XFlittlenan[6] = {0, 0, 0, 0xc000, 0xffff, 0};
#endif #endif
#endif #endif
...@@ -6274,8 +6288,8 @@ unsigned EMUSHORT XFlittlenan[6] = {0, 0, 0, 0xc000, 0xffff, 0}; ...@@ -6274,8 +6288,8 @@ unsigned EMUSHORT XFlittlenan[6] = {0, 0, 0, 0xc000, 0xffff, 0};
DFMODE_NAN; DFMODE_NAN;
#else #else
#ifdef IEEE #ifdef IEEE
unsigned EMUSHORT DFbignan[4] = {0x7fff, 0xffff, 0xffff, 0xffff}; UEMUSHORT DFbignan[4] = {0x7fff, 0xffff, 0xffff, 0xffff};
unsigned EMUSHORT DFlittlenan[4] = {0, 0, 0, 0xfff8}; UEMUSHORT DFlittlenan[4] = {0, 0, 0, 0xfff8};
#endif #endif
#endif #endif
...@@ -6283,8 +6297,8 @@ unsigned EMUSHORT DFlittlenan[4] = {0, 0, 0, 0xfff8}; ...@@ -6283,8 +6297,8 @@ unsigned EMUSHORT DFlittlenan[4] = {0, 0, 0, 0xfff8};
SFMODE_NAN; SFMODE_NAN;
#else #else
#ifdef IEEE #ifdef IEEE
unsigned EMUSHORT SFbignan[2] = {0x7fff, 0xffff}; UEMUSHORT SFbignan[2] = {0x7fff, 0xffff};
unsigned EMUSHORT SFlittlenan[2] = {0, 0xffc0}; UEMUSHORT SFlittlenan[2] = {0, 0xffc0};
#endif #endif
#endif #endif
...@@ -6292,12 +6306,12 @@ unsigned EMUSHORT SFlittlenan[2] = {0, 0xffc0}; ...@@ -6292,12 +6306,12 @@ unsigned EMUSHORT SFlittlenan[2] = {0, 0xffc0};
#ifdef NANS #ifdef NANS
static void static void
make_nan (nan, sign, mode) make_nan (nan, sign, mode)
unsigned EMUSHORT *nan; UEMUSHORT *nan;
int sign; int sign;
enum machine_mode mode; enum machine_mode mode;
{ {
int n; int n;
unsigned EMUSHORT *p; UEMUSHORT *p;
switch (mode) switch (mode)
{ {
...@@ -6361,20 +6375,20 @@ ereal_unto_float (f) ...@@ -6361,20 +6375,20 @@ ereal_unto_float (f)
long f; long f;
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
unsigned EMUSHORT s[2]; UEMUSHORT s[2];
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
/* Convert 32 bit integer to array of 16 bit pieces in target machine order. /* Convert 32 bit integer to array of 16 bit pieces in target machine order.
This is the inverse operation to what the function `endian' does. */ This is the inverse operation to what the function `endian' does. */
if (REAL_WORDS_BIG_ENDIAN) if (REAL_WORDS_BIG_ENDIAN)
{ {
s[0] = (unsigned EMUSHORT) (f >> 16); s[0] = (UEMUSHORT) (f >> 16);
s[1] = (unsigned EMUSHORT) f; s[1] = (UEMUSHORT) f;
} }
else else
{ {
s[0] = (unsigned EMUSHORT) f; s[0] = (UEMUSHORT) f;
s[1] = (unsigned EMUSHORT) (f >> 16); s[1] = (UEMUSHORT) (f >> 16);
} }
/* Convert and promote the target float to E-type. */ /* Convert and promote the target float to E-type. */
e24toe (s, e); e24toe (s, e);
...@@ -6392,24 +6406,24 @@ ereal_unto_double (d) ...@@ -6392,24 +6406,24 @@ ereal_unto_double (d)
long d[]; long d[];
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
unsigned EMUSHORT s[4]; UEMUSHORT s[4];
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
/* Convert array of HOST_WIDE_INT to equivalent array of 16-bit pieces. */ /* Convert array of HOST_WIDE_INT to equivalent array of 16-bit pieces. */
if (REAL_WORDS_BIG_ENDIAN) if (REAL_WORDS_BIG_ENDIAN)
{ {
s[0] = (unsigned EMUSHORT) (d[0] >> 16); s[0] = (UEMUSHORT) (d[0] >> 16);
s[1] = (unsigned EMUSHORT) d[0]; s[1] = (UEMUSHORT) d[0];
s[2] = (unsigned EMUSHORT) (d[1] >> 16); s[2] = (UEMUSHORT) (d[1] >> 16);
s[3] = (unsigned EMUSHORT) d[1]; s[3] = (UEMUSHORT) d[1];
} }
else else
{ {
/* Target float words are little-endian. */ /* Target float words are little-endian. */
s[0] = (unsigned EMUSHORT) d[0]; s[0] = (UEMUSHORT) d[0];
s[1] = (unsigned EMUSHORT) (d[0] >> 16); s[1] = (UEMUSHORT) (d[0] >> 16);
s[2] = (unsigned EMUSHORT) d[1]; s[2] = (UEMUSHORT) d[1];
s[3] = (unsigned EMUSHORT) (d[1] >> 16); s[3] = (UEMUSHORT) (d[1] >> 16);
} }
/* Convert target double to E-type. */ /* Convert target double to E-type. */
e53toe (s, e); e53toe (s, e);
...@@ -6428,20 +6442,20 @@ ereal_from_float (f) ...@@ -6428,20 +6442,20 @@ ereal_from_float (f)
HOST_WIDE_INT f; HOST_WIDE_INT f;
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
unsigned EMUSHORT s[2]; UEMUSHORT s[2];
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
/* Convert 32 bit integer to array of 16 bit pieces in target machine order. /* Convert 32 bit integer to array of 16 bit pieces in target machine order.
This is the inverse operation to what the function `endian' does. */ This is the inverse operation to what the function `endian' does. */
if (REAL_WORDS_BIG_ENDIAN) if (REAL_WORDS_BIG_ENDIAN)
{ {
s[0] = (unsigned EMUSHORT) (f >> 16); s[0] = (UEMUSHORT) (f >> 16);
s[1] = (unsigned EMUSHORT) f; s[1] = (UEMUSHORT) f;
} }
else else
{ {
s[0] = (unsigned EMUSHORT) f; s[0] = (UEMUSHORT) f;
s[1] = (unsigned EMUSHORT) (f >> 16); s[1] = (UEMUSHORT) (f >> 16);
} }
/* Convert and promote the target float to E-type. */ /* Convert and promote the target float to E-type. */
e24toe (s, e); e24toe (s, e);
...@@ -6465,38 +6479,38 @@ ereal_from_double (d) ...@@ -6465,38 +6479,38 @@ ereal_from_double (d)
HOST_WIDE_INT d[]; HOST_WIDE_INT d[];
{ {
REAL_VALUE_TYPE r; REAL_VALUE_TYPE r;
unsigned EMUSHORT s[4]; UEMUSHORT s[4];
unsigned EMUSHORT e[NE]; UEMUSHORT e[NE];
/* Convert array of HOST_WIDE_INT to equivalent array of 16-bit pieces. */ /* Convert array of HOST_WIDE_INT to equivalent array of 16-bit pieces. */
if (REAL_WORDS_BIG_ENDIAN) if (REAL_WORDS_BIG_ENDIAN)
{ {
#if HOST_BITS_PER_WIDE_INT == 32 #if HOST_BITS_PER_WIDE_INT == 32
s[0] = (unsigned EMUSHORT) (d[0] >> 16); s[0] = (UEMUSHORT) (d[0] >> 16);
s[1] = (unsigned EMUSHORT) d[0]; s[1] = (UEMUSHORT) d[0];
s[2] = (unsigned EMUSHORT) (d[1] >> 16); s[2] = (UEMUSHORT) (d[1] >> 16);
s[3] = (unsigned EMUSHORT) d[1]; s[3] = (UEMUSHORT) d[1];
#else #else
/* In this case the entire target double is contained in the /* In this case the entire target double is contained in the
first array element. The second element of the input is first array element. The second element of the input is
ignored. */ ignored. */
s[0] = (unsigned EMUSHORT) (d[0] >> 48); s[0] = (UEMUSHORT) (d[0] >> 48);
s[1] = (unsigned EMUSHORT) (d[0] >> 32); s[1] = (UEMUSHORT) (d[0] >> 32);
s[2] = (unsigned EMUSHORT) (d[0] >> 16); s[2] = (UEMUSHORT) (d[0] >> 16);
s[3] = (unsigned EMUSHORT) d[0]; s[3] = (UEMUSHORT) d[0];
#endif #endif
} }
else else
{ {
/* Target float words are little-endian. */ /* Target float words are little-endian. */
s[0] = (unsigned EMUSHORT) d[0]; s[0] = (UEMUSHORT) d[0];
s[1] = (unsigned EMUSHORT) (d[0] >> 16); s[1] = (UEMUSHORT) (d[0] >> 16);
#if HOST_BITS_PER_WIDE_INT == 32 #if HOST_BITS_PER_WIDE_INT == 32
s[2] = (unsigned EMUSHORT) d[1]; s[2] = (UEMUSHORT) d[1];
s[3] = (unsigned EMUSHORT) (d[1] >> 16); s[3] = (UEMUSHORT) (d[1] >> 16);
#else #else
s[2] = (unsigned EMUSHORT) (d[0] >> 32); s[2] = (UEMUSHORT) (d[0] >> 32);
s[3] = (unsigned EMUSHORT) (d[0] >> 48); s[3] = (UEMUSHORT) (d[0] >> 48);
#endif #endif
} }
/* Convert target double to E-type. */ /* Convert target double to E-type. */
...@@ -6514,10 +6528,10 @@ ereal_from_double (d) ...@@ -6514,10 +6528,10 @@ ereal_from_double (d)
static void static void
uditoe (di, e) uditoe (di, e)
unsigned EMUSHORT *di; /* Address of the 64-bit int. */ UEMUSHORT *di; /* Address of the 64-bit int. */
unsigned EMUSHORT *e; UEMUSHORT *e;
{ {
unsigned EMUSHORT yi[NI]; UEMUSHORT yi[NI];
int k; int k;
ecleaz (yi); ecleaz (yi);
...@@ -6535,7 +6549,7 @@ uditoe (di, e) ...@@ -6535,7 +6549,7 @@ uditoe (di, e)
if ((k = enormlz (yi)) > NBITS)/* normalize the significand */ if ((k = enormlz (yi)) > NBITS)/* normalize the significand */
ecleaz (yi); /* it was zero */ ecleaz (yi); /* it was zero */
else else
yi[E] -= (unsigned EMUSHORT) k;/* subtract shift count from exponent */ yi[E] -= (UEMUSHORT) k;/* subtract shift count from exponent */
emovo (yi, e); emovo (yi, e);
} }
...@@ -6543,12 +6557,12 @@ uditoe (di, e) ...@@ -6543,12 +6557,12 @@ uditoe (di, e)
static void static void
ditoe (di, e) ditoe (di, e)
unsigned EMUSHORT *di; /* Address of the 64-bit int. */ UEMUSHORT *di; /* Address of the 64-bit int. */
unsigned EMUSHORT *e; UEMUSHORT *e;
{ {
unsigned EMULONG acc; unsigned EMULONG acc;
unsigned EMUSHORT yi[NI]; UEMUSHORT yi[NI];
unsigned EMUSHORT carry; UEMUSHORT carry;
int k, sign; int k, sign;
ecleaz (yi); ecleaz (yi);
...@@ -6581,7 +6595,7 @@ ditoe (di, e) ...@@ -6581,7 +6595,7 @@ ditoe (di, e)
if ((k = enormlz (yi)) > NBITS)/* normalize the significand */ if ((k = enormlz (yi)) > NBITS)/* normalize the significand */
ecleaz (yi); /* it was zero */ ecleaz (yi); /* it was zero */
else else
yi[E] -= (unsigned EMUSHORT) k;/* subtract shift count from exponent */ yi[E] -= (UEMUSHORT) k;/* subtract shift count from exponent */
emovo (yi, e); emovo (yi, e);
if (sign) if (sign)
eneg (e); eneg (e);
...@@ -6592,10 +6606,10 @@ ditoe (di, e) ...@@ -6592,10 +6606,10 @@ ditoe (di, e)
static void static void
etoudi (x, i) etoudi (x, i)
unsigned EMUSHORT *x; UEMUSHORT *x;
unsigned EMUSHORT *i; UEMUSHORT *i;
{ {
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
int j, k; int j, k;
emovi (x, xi); emovi (x, xi);
...@@ -6675,13 +6689,13 @@ noshift: ...@@ -6675,13 +6689,13 @@ noshift:
static void static void
etodi (x, i) etodi (x, i)
unsigned EMUSHORT *x; UEMUSHORT *x;
unsigned EMUSHORT *i; UEMUSHORT *i;
{ {
unsigned EMULONG acc; unsigned EMULONG acc;
unsigned EMUSHORT xi[NI]; UEMUSHORT xi[NI];
unsigned EMUSHORT carry; UEMUSHORT carry;
unsigned EMUSHORT *isave; UEMUSHORT *isave;
int j, k; int j, k;
emovi (x, xi); emovi (x, xi);
...@@ -6777,9 +6791,9 @@ static unsigned short sqrndbit[NI]; ...@@ -6777,9 +6791,9 @@ static unsigned short sqrndbit[NI];
static void static void
esqrt (x, y) esqrt (x, y)
unsigned EMUSHORT *x, *y; UEMUSHORT *x, *y;
{ {
unsigned EMUSHORT temp[NI], num[NI], sq[NI], xx[NI]; UEMUSHORT temp[NI], num[NI], sq[NI], xx[NI];
EMULONG m, exp; EMULONG m, exp;
int i, j, k, n, nlups; int i, j, k, n, nlups;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment