Back to index

glibc  2.9
Defines | Variables
longlong.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define __BITS4   (W_TYPE_SIZE / 4)
#define __ll_B   ((UWtype) 1 << (W_TYPE_SIZE / 2))
#define __ll_lowpart(t)   ((UWtype) (t) & (__ll_B - 1))
#define __ll_highpart(t)   ((UWtype) (t) >> (W_TYPE_SIZE / 2))
#define W_TYPE_SIZE   32
#define UWtype   USItype
#define UHWtype   USItype
#define UDWtype   UDItype
#define add_ssaaaa(sh, sl, ah, al, bh, bl)
#define sub_ddmmss(sh, sl, ah, al, bh, bl)
#define umul_ppmm(w1, w0, u, v)
#define __umulsidi3(u, v)
#define __udiv_qrnnd_c(q, r, n1, n0, d)
#define UDIV_NEEDS_NORMALIZATION   1
#define udiv_qrnnd   __udiv_qrnnd_c
#define count_leading_zeros(count, x)
#define COUNT_LEADING_ZEROS_0   W_TYPE_SIZE
#define count_trailing_zeros(count, x)

Variables

const UQItype __clz_tab[256] attribute_hidden

Define Documentation

#define __BITS4   (W_TYPE_SIZE / 4)

Definition at line 36 of file longlong.h.

#define __ll_B   ((UWtype) 1 << (W_TYPE_SIZE / 2))

Definition at line 37 of file longlong.h.

#define __ll_highpart (   t)    ((UWtype) (t) >> (W_TYPE_SIZE / 2))

Definition at line 39 of file longlong.h.

#define __ll_lowpart (   t)    ((UWtype) (t) & (__ll_B - 1))

Definition at line 38 of file longlong.h.

#define __udiv_qrnnd_c (   q,
  r,
  n1,
  n0,
  d 
)

Definition at line 1369 of file longlong.h.

#define __umulsidi3 (   u,
 
)
Value:
({DWunion __w;                                                 \
    umul_ppmm (__w.s.high, __w.s.low, u, v);                          \
    __w.ll; })

Definition at line 1362 of file longlong.h.

#define add_ssaaaa (   sh,
  sl,
  ah,
  al,
  bh,
  bl 
)
Value:
do {                                                           \
    UWtype __x;                                                       \
    __x = (al) + (bl);                                                \
    (sh) = (ah) + (bh) + (__x < (al));                                \
    (sl) = __x;                                                       \
  } while (0)

Definition at line 1302 of file longlong.h.

#define count_leading_zeros (   count,
  x 
)
Value:
do {                                                           \
    UWtype __xr = (x);                                                \
    UWtype __a;                                                       \
                                                               \
    if (W_TYPE_SIZE <= 32)                                     \
      {                                                               \
       __a = __xr < ((UWtype)1<<2*__BITS4)                            \
         ? (__xr < ((UWtype)1<<__BITS4) ? 0 : __BITS4)                \
         : (__xr < ((UWtype)1<<3*__BITS4) ?  2*__BITS4 : 3*__BITS4);  \
      }                                                               \
    else                                                       \
      {                                                               \
       for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8)                 \
         if (((__xr >> __a) & 0xff) != 0)                      \
           break;                                              \
      }                                                               \
                                                               \
    (count) = W_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a);           \
  } while (0)

Definition at line 1424 of file longlong.h.

Definition at line 1444 of file longlong.h.

#define count_trailing_zeros (   count,
  x 
)
Value:
do {                                                           \
    UWtype __ctz_x = (x);                                      \
    UWtype __ctz_c;                                            \
    count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x);                \
    (count) = W_TYPE_SIZE - 1 - __ctz_c;                       \
  } while (0)

Definition at line 1450 of file longlong.h.

#define sub_ddmmss (   sh,
  sl,
  ah,
  al,
  bh,
  bl 
)
Value:
do {                                                           \
    UWtype __x;                                                       \
    __x = (al) - (bl);                                                \
    (sh) = (ah) - (bh) - (__x > (al));                                \
    (sl) = __x;                                                       \
  } while (0)

Definition at line 1312 of file longlong.h.

#define UDIV_NEEDS_NORMALIZATION   1

Definition at line 1419 of file longlong.h.

#define udiv_qrnnd   __udiv_qrnnd_c

Definition at line 1420 of file longlong.h.

#define UDWtype   UDItype

Definition at line 45 of file longlong.h.

#define UHWtype   USItype

Definition at line 44 of file longlong.h.

#define umul_ppmm (   w1,
  w0,
  u,
 
)
Value:
do {                                                           \
    UWtype __x0, __x1, __x2, __x3;                             \
    UHWtype __ul, __vl, __uh, __vh;                                   \
                                                               \
    __ul = __ll_lowpart (u);                                          \
    __uh = __ll_highpart (u);                                         \
    __vl = __ll_lowpart (v);                                          \
    __vh = __ll_highpart (v);                                         \
                                                               \
    __x0 = (UWtype) __ul * __vl;                               \
    __x1 = (UWtype) __ul * __vh;                               \
    __x2 = (UWtype) __uh * __vl;                               \
    __x3 = (UWtype) __uh * __vh;                               \
                                                               \
    __x1 += __ll_highpart (__x0);/* this can't give carry */          \
    __x1 += __x2;           /* but this indeed can */          \
    if (__x1 < __x2)        /* did we get it? */               \
      __x3 += __ll_B;              /* yes, add it in the proper pos.  */     \
                                                               \
    (w1) = __x3 + __ll_highpart (__x1);                               \
    (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0);        \
  } while (0)

Definition at line 1336 of file longlong.h.

#define UWtype   USItype

Definition at line 43 of file longlong.h.

#define W_TYPE_SIZE   32

Definition at line 42 of file longlong.h.


Variable Documentation

Definition at line 25 of file init-first.c.