Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
int64.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define ZERO64(a)   ( (a).part1 = (a).part2 = (a).part3 = (a).part4 = 0 )
#define COPY64(to, fr)
#define SHLEFT64(x)
#define SHLEFT64N(x, n)
#define SHRIGHT64(x)
#define SHRIGHT64N(x, n)
#define SHRIGHT64X(x)
#define SIGNBIT(x)   ( (x).part1 >> 15 )
#define ADD64(sum, a, b)
#define INC64(a)
#define DEC64(a)
#define NEG64(a)
#define MULSTEP(sum, bits, val, ct)
#define NOT64(a)
#define WORD_SWAP(x)

Define Documentation

#define ADD64 (   sum,
  a,
 
)
Value:
do {                                            \
        unsigned long t = (a).part4 + (b).part4;                        \
        (sum).part4 = t;                                                \
        t >>= 16;                                                       \
        (sum).part3 = t += (a).part3 + (b).part3;                       \
        t >>= 16;                                                       \
        (sum).part2 = t += (a).part2 + (b).part2;                       \
        (sum).part1 = (t >> 16) + (a).part1 + (b).part1;                \
} while (0)

Definition at line 164 of file int64.h.

Referenced by ar_c1frecip(), and ar_sim().

#define COPY64 (   to,
  fr 
)
Value:
( (to).part1 = (fr).part1,                      \
                        (to).part2 = (fr).part2,                        \
                        (to).part3 = (fr).part3,                        \
                        (to).part4 = (fr).part4 )

Definition at line 49 of file int64.h.

Referenced by ar_c1frecip(), ar_cflt128(), ar_cflt64(), ar_iflt128(), ar_iflt32(), ar_iflt64(), and ar_sim().

#define DEC64 (   a)
Value:
do {                                                    \
        unsigned long t = (a).part4 + MASKR (16);                       \
        (a).part4 = t;                                                  \
        (a).part3 = t = (t >> 16) + (a).part3 + MASKR (16);             \
        (a).part2 = t = (t >> 16) + (a).part2 + MASKR (16);             \
        (a).part1 += (t >> 16) + MASKR (16);                            \
} while (0)

Definition at line 190 of file int64.h.

Referenced by ar_ifix128(), ar_ifix32(), and ar_ifix64().

#define INC64 (   a)
Value:
do {                                                    \
        unsigned long t = (a).part4 + 1;                                \
        (a).part4 = t;                                                  \
        (a).part3 = t = (t >> 16) + (a).part3;                          \
        (a).part2 = t = (t >> 16) + (a).part2;                          \
        (a).part1 += t >> 16;                                           \
} while (0)

Definition at line 178 of file int64.h.

Referenced by ar_c1frecip(), ar_cfix128(), ar_cfix64(), ar_ifix128(), ar_ifix32(), and ar_ifix64().

#define MULSTEP (   sum,
  bits,
  val,
  ct 
)
Value:
do {                                    \
        int i;                                                          \
        for (i = 0; i < (ct); i++) {                                    \
                SHLEFT64 (bits);                                        \
                if (SIGNBIT (bits))                                     \
                        ADD64 (sum, sum, val);                          \
                SHRIGHT64 (val);                                        \
        }                                                               \
} while (0)

Definition at line 208 of file int64.h.

Referenced by ar_c1frecip().

#define NEG64 (   a)
Value:
do {                                                    \
        NOT64 (a);                                                      \
        INC64 (a);                                                      \
} while (0)

Definition at line 202 of file int64.h.

Referenced by ar_cflt128(), ar_cflt64(), ar_iflt128(), ar_iflt32(), ar_iflt64(), ar_set_invalid_result(), and ar_sim().

#define NOT64 (   a)
Value:
( (a).part1 ^= MASKR (16),                              \
                   (a).part2 ^= MASKR (16),                             \
                   (a).part3 ^= MASKR (16),                             \
                   (a).part4 ^= MASKR (16) )

Definition at line 221 of file int64.h.

Referenced by ar_c1frecip(), ar_cfix128(), ar_cfix64(), ar_ifix128(), ar_ifix32(), ar_ifix64(), and ar_sim().

#define SHLEFT64 (   x)
Value:
do {                                            \
        (x).part1 = ((x).part1 << 1) | ((x).part2 >> 15);               \
        (x).part2 = ((x).part2 << 1) | ((x).part3 >> 15);               \
        (x).part3 = ((x).part3 << 1) | ((x).part4 >> 15);               \
        (x).part4 = (x).part4 << 1;                                     \
} while (0)

Definition at line 58 of file int64.h.

Referenced by ar_c1frecip(), ar_cfix128(), ar_cfix64(), ar_ifix32(), ar_ifix64(), and ar_sim().

#define SHLEFT64N (   x,
 
)
Value:
do {                                            \
        register int _n = n;                                            \
        switch(_n>>4){                                                  \
        case 0:                                                         \
                (x).part1 = ((x).part1 << _n) | ((x).part2 >> (16-_n)); \
                (x).part2 = ((x).part2 << _n) | ((x).part3 >> (16-_n)); \
                (x).part3 = ((x).part3 << _n) | ((x).part4 >> (16-_n)); \
                (x).part4 = ((x).part4 << _n);                          \
                break;                                                  \
        case 1:                                                         \
                (x).part1 = ((x).part2 << (_n-16)) | ((x).part3 >> (32-_n));\
                (x).part2 = ((x).part3 << (_n-16)) | ((x).part4 >> (32-_n));\
                (x).part3 = ((x).part4 << (_n-16));                     \
                (x).part4 = 0;                                          \
                break;                                                  \
        case 2:                                                         \
                (x).part1 = ((x).part3 << (_n-32)) | ((x).part4 >> (48-_n));\
                (x).part2 = ((x).part4 << (_n-32));                     \
                (x).part3 = (x).part4 = 0;                              \
                break;                                                  \
        case 3:                                                         \
                (x).part1 = ((x).part4 << (_n-48));                     \
                (x).part2 = (x).part3 = (x).part4 = 0;                  \
                break;                                                  \
        default:                                                        \
                (x).part1 = (x).part2 = (x).part3 = (x).part4 = 0;      \
        }                                                               \
} while(0)

Definition at line 69 of file int64.h.

Referenced by ar_sim().

#define SHRIGHT64 (   x)
Value:
do {                                            \
        (x).part4 = ((x).part4 >> 1) | (((x).part3 & 1) << 15);         \
        (x).part3 = ((x).part3 >> 1) | (((x).part2 & 1) << 15);         \
        (x).part2 = ((x).part2 >> 1) | (((x).part1 & 1) << 15);         \
        (x).part1 >>= 1;                                                \
} while (0)

Definition at line 102 of file int64.h.

Referenced by ar_c1frecip(), ar_cflt128(), ar_cflt64(), ar_ifix128(), ar_ifix32(), ar_ifix64(), ar_iflt32(), ar_power(), and ar_sim().

#define SHRIGHT64N (   x,
 
)
Value:
do {                                            \
        register int _n = n;                                            \
        switch(_n>>4) {                                                 \
        case 0:                                                         \
                (x).part4 = ((x).part4 >> _n) | ((x).part3 << (16-_n)); \
                (x).part3 = ((x).part3 >> _n) | ((x).part2 << (16-_n)); \
                (x).part2 = ((x).part2 >> _n) | ((x).part1 << (16-_n)); \
                (x).part1 = ((x).part1 >> _n);                          \
                break;                                                  \
        case 1:                                                         \
                (x).part4 = ((x).part3 >> (_n-16)) | ((x).part2 << (32-_n));\
                (x).part3 = ((x).part2 >> (_n-16)) | ((x).part1 << (32-_n));\
                (x).part2 = ((x).part1 >> (_n-16));                     \
                (x).part1 = 0;                                          \
                break;                                                  \
        case 2:                                                         \
                (x).part4 = ((x).part2 >> (_n-32)) | ((x).part1 << (48-_n));\
                (x).part3 = ((x).part1 >> (_n-32));                     \
                (x).part2 = (x).part1 = 0;                              \
                break;                                                  \
        case 3:                                                         \
                (x).part4 = ((x).part1 >> (_n-48));                     \
                (x).part3 = (x).part2 = (x).part1 = 0;                  \
                break;                                                  \
        default:                                                        \
                (x).part4 = (x).part3 = (x).part2 = (x).part1 = 0;      \
        }                                                               \
} while(0)

Definition at line 113 of file int64.h.

Referenced by ar_sim().

#define SHRIGHT64X (   x)
Value:
do {                                            \
        (x).part4 = ((x).part4 >> 1) | (((x).part3 & 1) << 15);         \
        (x).part3 = ((x).part3 >> 1) | (((x).part2 & 1) << 15);         \
        (x).part2 = ((x).part2 >> 1) | (((x).part1 & 1) << 15);         \
        (x).part1 = ((x).part1 >> 1) | ((x).part1 & (1 << 15));         \
} while (0)

Definition at line 147 of file int64.h.

Referenced by ar_cfix128(), and ar_cfix64().

#define SIGNBIT (   x)    ( (x).part1 >> 15 )

Definition at line 158 of file int64.h.

Referenced by ar_cflt128(), ar_cflt64(), ar_iflt128(), ar_iflt32(), and ar_iflt64().

#define WORD_SWAP (   x)

Definition at line 235 of file int64.h.

#define ZERO64 (   a)    ( (a).part1 = (a).part2 = (a).part3 = (a).part4 = 0 )
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines