From 29279975b86791aeb42b8d3e6bc8c001c7bb030b Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 5 Oct 2000 22:32:59 -0700 Subject: [PATCH] longlong.h [alpha] (count_leading_zeros): Use cmpbge with a zero instead of -1. * longlong.h [alpha] (count_leading_zeros): Use cmpbge with a zero instead of -1. (count_trailing_zeros): Likewise. From-SVN: r36745 --- gcc/ChangeLog | 4 ++++ gcc/longlong.h | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 111b37d45fe..c1bb180bab2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests diff --git a/gcc/longlong.h b/gcc/longlong.h index 25b952c081c..bcd4abc843e 100644 --- a/gcc/longlong.h +++ b/gcc/longlong.h @@ -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; \ -- 2.30.2