longlong.h [alpha] (count_leading_zeros): Use cmpbge with a zero instead of -1.
authorRichard Henderson <rth@cygnus.com>
Fri, 6 Oct 2000 05:32:59 +0000 (22:32 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 6 Oct 2000 05:32:59 +0000 (22:32 -0700)
        * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
        a zero instead of -1.
        (count_trailing_zeros): Likewise.

From-SVN: r36745

gcc/ChangeLog
gcc/longlong.h

index 111b37d45fe2b34df559ecf3f377b8d0491bc6a3..c1bb180bab2387644c2886c28db3c6b9a5d22dfb 100644 (file)
@@ -5,6 +5,10 @@
        (__clz_tab): Put in its own unit, non-static.
        * libgcc2.h: Always include longlong.h.
 
+       * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
+       a zero instead of -1.
+       (count_trailing_zeros): Likewise.
+
 2000-10-05  Richard Henderson  <rth@cygnus.com>
 
        * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
index 25b952c081cbc29a85949043e2f29a7b73c1ff2e..bcd4abc843e669da797572ae363dd16d5191610a 100644 (file)
@@ -180,7 +180,7 @@ extern const UQItype __clz_tab[];
 #define count_leading_zeros(COUNT,X) \
   do {                                                                 \
     UDItype __xr = (X), __t, __a;                                      \
-    __asm__("cmpbge %1,%2,%0" : "=r"(__t) : "r"(~__xr), "r"(-1));      \
+    __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr));               \
     __a = __clz_tab[__t ^ 0xff] - 1;                                   \
     __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a));       \
     (COUNT) = 64 - (__clz_tab[__t] + __a*8);                           \
@@ -188,7 +188,7 @@ extern const UQItype __clz_tab[];
 #define count_trailing_zeros(COUNT,X) \
   do {                                                                 \
     UDItype __xr = (X), __t, __a;                                      \
-    __asm__("cmpbge %1,%2,%0" : "=r"(__t) : "r"(~__xr), "r"(-1));      \
+    __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr));               \
     __t = ~__t & -~__t;                                                        \
     __a = ((__t & 0xCC) != 0) * 2;                                     \
     __a += ((__t & 0xF0) != 0) * 4;                                    \