diff options
author | Joseph Myers <joseph@codesourcery.com> | 2010-11-30 16:36:19 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2010-11-30 16:36:19 +0000 |
commit | c59ffc4195b245eecb574418f13f27b1f13d654e (patch) | |
tree | c381c35f0952d6ecccac229a039bf3585647cf4c /gcc/toplev.c | |
parent | 5b55141a954febb2c069b237166d7478827d336c (diff) | |
download | gcc-c59ffc4195b245eecb574418f13f27b1f13d654e.zip gcc-c59ffc4195b245eecb574418f13f27b1f13d654e.tar.gz gcc-c59ffc4195b245eecb574418f13f27b1f13d654e.tar.bz2 |
hwint.c: New.
* hwint.c: New. Extracted from toplev.c.
* hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move from toplev.h.
* toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move to hwint.c.
* toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
Move to hwint.h.
* builtins.c, combine.c, config/i386/winnt.c, double-int.c,
explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
tree-ssa-loop-niter.c, tree-vect-data-refs.c,
tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
tree-vrp.c: Don't include toplev.h.
* genattrtab.c, genconditions.c, genemit.c, genextract.c,
genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
toplev.h in generated output.
* Makefile.in (OBJS-common): Add hwint.o.
Dependencies for above files changed to remove toplev.h.
(hwint.o): New.
(insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on
toplev.h.
* config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
* config/i386/t-interix (winnt.o): Don't depend on toplev.h.
fortran:
* trans-common.c: Don't include toplev.h.
java:
* boehm.c: Don't include toplev.h.
* Make-lang.in (java/boehm.o): Don't depend on toplev.h.
lto:
* lto-object.c: Don't include toplev.h.
* Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.
From-SVN: r167301
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. */ |