X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fdouble-int.h;h=33641bd06dc366e3fe97bc778f9e47391f3eb12a;hp=eddd7b7e2fef4a74458ecf57b073538ddf44d483;hb=612a17fc003aefd310cd106ca3bab69b7f855956;hpb=58f43b9022418d659bfa7c3600662fdecd313774 diff --git a/gcc/double-int.h b/gcc/double-int.h index eddd7b7e2fe..33641bd06dc 100644 --- a/gcc/double-int.h +++ b/gcc/double-int.h @@ -21,6 +21,9 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #ifndef DOUBLE_INT_H #define DOUBLE_INT_H +#include +#include "coretypes.h" + /* A large integer is currently represented as a pair of HOST_WIDE_INTs. It therefore represents a number with precision of 2 * HOST_BITS_PER_WIDE_INT bits (it is however possible that the @@ -58,7 +61,8 @@ union tree_node; /* Constructors and conversions. */ union tree_node *double_int_to_tree (union tree_node *, double_int); -double_int tree_to_double_int (union tree_node *tree); +bool double_int_fits_to_tree_p (union tree_node *, double_int); +double_int tree_to_double_int (union tree_node *); /* Constructs double_int from integer CST. The bits over the precision of HOST_WIDE_INT are filled with the sign bit. */ @@ -133,6 +137,7 @@ void dump_double_int (FILE *, double_int, bool); double_int double_int_ext (double_int, unsigned, bool); double_int double_int_sext (double_int, unsigned); double_int double_int_zext (double_int, unsigned); +double_int double_int_mask (unsigned); #define ALL_ONES (~((unsigned HOST_WIDE_INT) 0)) @@ -172,4 +177,10 @@ double_int_equal_p (double_int cst1, double_int cst2) return cst1.low == cst2.low && cst1.high == cst2.high; } +/* Conversion to and from GMP integer representations. */ + +void mpz_set_double_int (mpz_t, double_int, bool); +double_int mpz_get_double_int (tree, mpz_t, bool); + + #endif /* DOUBLE_INT_H */