diff options
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 37114ce..3050f07 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -354,82 +354,6 @@ set_random_seed (const char *val) return old; } -#if GCC_VERSION < 3004 - -/* The functions clz_hwi, ctz_hwi, ffs_hwi, floor_log2 and exact_log2 - are defined as inline functions in toplev.h if GCC_VERSION >= 3004. - The definitions here are used for older versions of gcc. */ - -/* Given X, an unsigned number, return the largest int Y such that 2**Y <= X. - If X is 0, return -1. */ - -int -floor_log2 (unsigned HOST_WIDE_INT x) -{ - int t = 0; - - if (x == 0) - return -1; - - if (HOST_BITS_PER_WIDE_INT > 64) - if (x >= (unsigned HOST_WIDE_INT) 1 << (t + 64)) - t += 64; - if (HOST_BITS_PER_WIDE_INT > 32) - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 32)) - t += 32; - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 16)) - t += 16; - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 8)) - t += 8; - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 4)) - t += 4; - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 2)) - t += 2; - if (x >= ((unsigned HOST_WIDE_INT) 1) << (t + 1)) - t += 1; - - return t; -} - -/* Return the logarithm of X, base 2, considering X unsigned, - if X is a power of 2. Otherwise, returns -1. */ - -int -exact_log2 (unsigned HOST_WIDE_INT x) -{ - if (x != (x & -x)) - return -1; - return floor_log2 (x); -} - -/* Given X, an unsigned number, return the number of least significant bits - that are zero. When X == 0, the result is the word size. */ - -int -ctz_hwi (unsigned HOST_WIDE_INT x) -{ - return x ? floor_log2 (x & -x) : HOST_BITS_PER_WIDE_INT; -} - -/* Similarly for most significant bits. */ - -int -clz_hwi (unsigned HOST_WIDE_INT x) -{ - return HOST_BITS_PER_WIDE_INT - 1 - floor_log2(x); -} - -/* Similar to ctz_hwi, except that the least significant bit is numbered - starting from 1, and X == 0 yields 0. */ - -int -ffs_hwi (unsigned HOST_WIDE_INT x) -{ - return 1 + floor_log2 (x & -x); -} - -#endif /* GCC_VERSION < 3004 */ - /* Handler for fatal signals, such as SIGSEGV. These are transformed into ICE messages, which is much more user friendly. In case the error printer crashes, reset the signal to prevent infinite recursion. */ |