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
This commit is contained in:
parent
d6eacd4836
commit
29279975b8
@ -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
|
||||
|
@ -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; \
|
||||
|
Loading…
Reference in New Issue
Block a user