Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
2010-08-04 Richard Guenther <rguenther@suse.de> * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency. * double-int.h (double_int_ctz): Declare. * double-int.c (double_int_ctz): New function. From-SVN: r162859
This commit is contained in:
parent
31af83671c
commit
552cbe64b6
@ -1,3 +1,9 @@
|
|||||||
|
2010-08-04 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
|
||||||
|
* double-int.h (double_int_ctz): Declare.
|
||||||
|
* double-int.c (double_int_ctz): New function.
|
||||||
|
|
||||||
2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
|
2010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
|
||||||
|
|
||||||
* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
|
* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
|
||||||
|
@ -2279,7 +2279,8 @@ stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
|
|||||||
convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
|
convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
|
||||||
$(FLAGS_H) convert.h $(TOPLEV_H) $(DIAGNOSTIC_CORE_H) langhooks.h
|
$(FLAGS_H) convert.h $(TOPLEV_H) $(DIAGNOSTIC_CORE_H) langhooks.h
|
||||||
|
|
||||||
double-int.o: double-int.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H)
|
double-int.o: double-int.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
|
||||||
|
$(TOPLEV_H) $(TREE_H)
|
||||||
|
|
||||||
# lto-compress.o needs $(ZLIBINC) added to the include flags.
|
# lto-compress.o needs $(ZLIBINC) added to the include flags.
|
||||||
lto-compress.o: lto-compress.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
|
lto-compress.o: lto-compress.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
|
||||||
|
@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
|
|||||||
#include "coretypes.h"
|
#include "coretypes.h"
|
||||||
#include "tm.h"
|
#include "tm.h"
|
||||||
#include "tree.h"
|
#include "tree.h"
|
||||||
|
#include "toplev.h"
|
||||||
|
|
||||||
/* We know that A1 + B1 = SUM1, using 2's complement arithmetic and ignoring
|
/* We know that A1 + B1 = SUM1, using 2's complement arithmetic and ignoring
|
||||||
overflow. Suppose A, B and SUM have the same respective signs as A1, B1,
|
overflow. Suppose A, B and SUM have the same respective signs as A1, B1,
|
||||||
@ -850,6 +851,26 @@ double_int_setbit (double_int a, unsigned bitpos)
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Count trailing zeros in A. */
|
||||||
|
int
|
||||||
|
double_int_ctz (double_int a)
|
||||||
|
{
|
||||||
|
unsigned HOST_WIDE_INT w = a.low ? a.low : (unsigned HOST_WIDE_INT) a.high;
|
||||||
|
unsigned bits = a.low ? 0 : HOST_BITS_PER_WIDE_INT;
|
||||||
|
if (!w)
|
||||||
|
return HOST_BITS_PER_DOUBLE_INT;
|
||||||
|
#if (GCC_VERSION >= 3004)
|
||||||
|
bits += CTZ_HWI (w);
|
||||||
|
#else
|
||||||
|
while (!(w & 1))
|
||||||
|
{
|
||||||
|
w >>= 1;
|
||||||
|
bits += 1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return bits;
|
||||||
|
}
|
||||||
|
|
||||||
/* Shift A left by COUNT places keeping only PREC bits of result. Shift
|
/* Shift A left by COUNT places keeping only PREC bits of result. Shift
|
||||||
right if COUNT is negative. ARITH true specifies arithmetic shifting;
|
right if COUNT is negative. ARITH true specifies arithmetic shifting;
|
||||||
otherwise use logical shift. */
|
otherwise use logical shift. */
|
||||||
|
@ -148,7 +148,9 @@ double_int double_int_umod (double_int, double_int, unsigned);
|
|||||||
double_int double_int_divmod (double_int, double_int, bool, unsigned, double_int *);
|
double_int double_int_divmod (double_int, double_int, bool, unsigned, double_int *);
|
||||||
double_int double_int_sdivmod (double_int, double_int, unsigned, double_int *);
|
double_int double_int_sdivmod (double_int, double_int, unsigned, double_int *);
|
||||||
double_int double_int_udivmod (double_int, double_int, unsigned, double_int *);
|
double_int double_int_udivmod (double_int, double_int, unsigned, double_int *);
|
||||||
|
|
||||||
double_int double_int_setbit (double_int, unsigned);
|
double_int double_int_setbit (double_int, unsigned);
|
||||||
|
int double_int_ctz (double_int);
|
||||||
|
|
||||||
/* Logical operations. */
|
/* Logical operations. */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user