OSDN Git Service

* ifcvt.c: New file.
[pf3gnuchains/gcc-fork.git] / gcc / longlong.h
index a2e56c4..449a66f 100644 (file)
@@ -1,5 +1,5 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
-   Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,94,95,96,97,98,99, 2000 Free Software Foundation, Inc.
 
    This definition file is free software; you can redistribute it
    and/or modify it under the terms of the GNU General Public
     (q) = __udiv_qrnnd (&__r, (n1), (n0), (d));                                \
     (r) = __r;                                                         \
   } while (0)
-extern UDItype __udiv_qrnnd __P ((UDItype *, UDItype, UDItype, UDItype));
+extern UDItype __udiv_qrnnd PARAMS ((UDItype *, UDItype, UDItype, UDItype));
 #define UDIV_TIME 220
 #endif /* LONGLONG_STANDALONE */
 #endif /* __alpha */
@@ -195,7 +195,7 @@ extern UDItype __udiv_qrnnd __P ((UDItype *, UDItype, UDItype, UDItype));
 /* Call libgcc1 routine.  */
 #define umul_ppmm(w1, w0, u, v) \
 do {                                                                   \
-  DIunion __w;                                                         \
+  DWunion __w;                                                         \
   __w.ll = __umulsidi3 (u, v);                                         \
   w1 = __w.s.high;                                                     \
   w0 = __w.s.low;                                                      \
@@ -442,13 +442,13 @@ UDItype __umulsidi3 (USItype, USItype);
             "=d" ((USItype) (w1))                                      \
           : "%0" ((USItype) (u)),                                      \
             "rm" ((USItype) (v)))
-#define udiv_qrnnd(q, r, n1, n0, d) \
+#define udiv_qrnnd(q, r, n1, n0, dv) \
   __asm__ ("divl %4"                                                   \
           : "=a" ((USItype) (q)),                                      \
             "=d" ((USItype) (r))                                       \
           : "0" ((USItype) (n0)),                                      \
             "1" ((USItype) (n1)),                                      \
-            "rm" ((USItype) (d)))
+            "rm" ((USItype) (dv)))
 #define count_leading_zeros(count, x) \
   do {                                                                 \
     USItype __cbtmp;                                                   \
@@ -758,7 +758,8 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #endif /* __ns32000__ */
 
-#if (defined (_ARCH_PPC) || defined (_IBMR2)) && W_TYPE_SIZE == 32
+#if (defined (_ARCH_PPC) || defined (_IBMR2))
+#if W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   do {                                                                 \
     if (__builtin_constant_p (bh) && (bh) == 0)                                \
@@ -823,6 +824,7 @@ UDItype __umulsidi3 (USItype, USItype);
                 "rI" ((USItype) (al)),                                 \
                 "r" ((USItype) (bl)));                                 \
   } while (0)
+#endif /* W_TYPE_SIZE */
 #define count_leading_zeros(count, x) \
   __asm__ ("{cntlz|cntlzw} %0,%1"                                      \
           : "=r" ((USItype) (count))                                   \
@@ -850,7 +852,7 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #define SMUL_TIME 14
 #define UDIV_TIME 120
-#else
+#elif defined (_ARCH_POWER)
 #define umul_ppmm(xh, xl, m0, m1) \
   do {                                                                 \
     USItype __m0 = (m0), __m1 = (m1);                                  \
@@ -993,8 +995,8 @@ UDItype __umulsidi3 (USItype, USItype);
 #define UMUL_TIME 5
 #endif
 
-#if defined (__sparc__) && !defined (__sparc_v9__) && !defined(__arch64__) \
-    && !defined(__sparc_v9) && W_TYPE_SIZE == 32
+#if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \
+    && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
   __asm__ ("addcc %r4,%5,%1
        addx %r2,%3,%0"                                                 \
@@ -1022,13 +1024,13 @@ UDItype __umulsidi3 (USItype, USItype);
             "=r" ((USItype) (w0))                                      \
           : "r" ((USItype) (u)),                                       \
             "r" ((USItype) (v)))
-#define udiv_qrnnd(q, r, n1, n0, d) \
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
   __asm__ ("mov %2,%%y;nop;nop;nop;udiv %3,%4,%0;umul %0,%4,%1;sub %3,%1,%1"\
-          : "=&r" ((USItype) (q)),                                     \
-            "=&r" ((USItype) (r))                                      \
-          : "r" ((USItype) (n1)),                                      \
-            "r" ((USItype) (n0)),                                      \
-            "r" ((USItype) (d)))
+          : "=&r" ((USItype) (__q)),                                   \
+            "=&r" ((USItype) (__r))                                    \
+          : "r" ((USItype) (__n1)),                                    \
+            "r" ((USItype) (__n0)),                                    \
+            "r" ((USItype) (__d)))
 #else
 #if defined (__sparclite__)
 /* This has hardware multiply but not divide.  It also has two additional
@@ -1147,7 +1149,7 @@ UDItype __umulsidi3 (USItype, USItype);
 #define UMUL_TIME 39           /* 39 instructions */
 /* It's quite necessary to add this much assembler for the sparc.
    The default udiv_qrnnd (in C) is more than 10 times slower!  */
-#define udiv_qrnnd(q, r, n1, n0, d) \
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
   __asm__ ("! Inlined udiv_qrnnd
        mov     32,%%g1
        subcc   %1,%2,%%g0
@@ -1172,18 +1174,18 @@ UDItype __umulsidi3 (USItype, USItype);
        sub     %1,%2,%1
 3:     xnor    %0,0,%0
        ! End of inline udiv_qrnnd"                                     \
-          : "=&r" ((USItype) (q)),                                     \
-            "=&r" ((USItype) (r))                                      \
-          : "r" ((USItype) (d)),                                       \
-            "1" ((USItype) (n1)),                                      \
-            "0" ((USItype) (n0)) : "g1" __AND_CLOBBER_CC)
+          : "=&r" ((USItype) (__q)),                                   \
+            "=&r" ((USItype) (__r))                                    \
+          : "r" ((USItype) (__d)),                                     \
+            "1" ((USItype) (__n1)),                                    \
+            "0" ((USItype) (__n0)) : "g1" __AND_CLOBBER_CC)
 #define UDIV_TIME (3+7*32)     /* 7 instructions/iteration. 32 iterations. */
 #endif /* __sparclite__ */
 #endif /* __sparc_v8__ */
-#endif /* __sparc__ */
+#endif /* sparc32 */
 
-#if (defined (__sparc_v9__) || (defined (__sparc__) && defined (__arch64__)) \
-    || defined (__sparcv9)) && W_TYPE_SIZE == 64
+#if ((defined (__sparc__) && defined (__arch64__)) || defined (__sparcv9)) \
+    && W_TYPE_SIZE == 64
 #define add_ssaaaa(sh, sl, ah, al, bh, bl)                             \
   __asm__ ("addcc %r4,%5,%1
            add %r2,%3,%0
@@ -1246,7 +1248,7 @@ UDItype __umulsidi3 (USItype, USItype);
   } while (0)
 #define UMUL_TIME 96
 #define UDIV_TIME 230
-#endif /* __sparc_v9__ */
+#endif /* sparc64 */
 
 #if defined (__vax__) && W_TYPE_SIZE == 32
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
@@ -1381,7 +1383,7 @@ UDItype __umulsidi3 (USItype, USItype);
 
 #if !defined (__umulsidi3)
 #define __umulsidi3(u, v) \
-  ({DIunion __w;                                                       \
+  ({DWunion __w;                                                       \
     umul_ppmm (__w.s.high, __w.s.low, u, v);                           \
     __w.ll; })
 #endif
@@ -1442,7 +1444,7 @@ UDItype __umulsidi3 (USItype, USItype);
 #endif
 
 #if !defined (count_leading_zeros)
-extern const UQItype __clz_tab[];
+static const UQItype __clz_tab[];
 #define count_leading_zeros(count, x) \
   do {                                                                 \
     UWtype __xr = (x);                                                 \