OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* double-int.c (mpz_set_double_int): Moved from
[pf3gnuchains/gcc-fork.git]
/
gcc
/
double-int.h
diff --git
a/gcc/double-int.h
b/gcc/double-int.h
index
eddd7b7
..
33641bd
100644
(file)
--- 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
#ifndef DOUBLE_INT_H
#define DOUBLE_INT_H
+#include <gmp.h>
+#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
/* 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);
/* 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. */
/* 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_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))
#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;
}
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 */
#endif /* DOUBLE_INT_H */