summaryrefslogtreecommitdiffstats
path: root/libtommath
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-11-12 12:11:05 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-11-12 12:11:05 (GMT)
commit41e4211a15b085e6f456693fe2ef6ad980bde593 (patch)
tree2115df6e1746693165934fe335889d189f533313 /libtommath
parente512564f360551e1821bc646ce75314246b9a0ee (diff)
parent34714bcefaa3ba23593153c232829b2af6914528 (diff)
downloadtcl-41e4211a15b085e6f456693fe2ef6ad980bde593.zip
tcl-41e4211a15b085e6f456693fe2ef6ad980bde593.tar.gz
tcl-41e4211a15b085e6f456693fe2ef6ad980bde593.tar.bz2
Merge 8.7. Finish implementation.
Diffstat (limited to 'libtommath')
-rw-r--r--libtommath/tommath.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/libtommath/tommath.h b/libtommath/tommath.h
index 7bb89e5..24dab35 100644
--- a/libtommath/tommath.h
+++ b/libtommath/tommath.h
@@ -32,7 +32,7 @@ extern "C" {
#endif
/* MS Visual C++ doesn't have a 128bit type for words, so fall back to 32bit MPI's (where words are 64bit) */
-#if (defined(_MSC_VER) || defined(__LLP64__) || defined(__e2k__) || defined(__LCC__)) && !defined(MP_64BIT)
+#if (defined(_MSC_VER) || defined(__LLP64__) || defined(__e2k__) || defined(__LCC__)) && !defined(MP_32BIT) && !defined(MP_64BIT)
# define MP_32BIT
#endif
@@ -331,7 +331,11 @@ mp_err mp_init_u64(mp_int *a, uint64_t b) MP_WUR;
uint32_t mp_get_mag_u32(const mp_int *a) MP_WUR;
uint64_t mp_get_mag_u64(const mp_int *a) MP_WUR;
unsigned long mp_get_mag_ul(const mp_int *a) MP_WUR;
+#ifdef _MSC_VER
+#define mp_get_mag_ull(a) ((unsigned long long)mp_get_mag_u64(a))
+#else
unsigned long long mp_get_mag_ull(const mp_int *a) MP_WUR;
+#endif
/* get integer, set integer (long) */
long mp_get_l(const mp_int *a) MP_WUR;
@@ -343,6 +347,17 @@ mp_err mp_init_l(mp_int *a, long b) MP_WUR;
void mp_set_ul(mp_int *a, unsigned long b);
mp_err mp_init_ul(mp_int *a, unsigned long b) MP_WUR;
+#ifdef _MSC_VER
+/* get integer, set integer (long long) */
+#define mp_get_ll(a) ((long long)mp_get_i64(a))
+#define mp_set_ll(a,b) mp_set_i64(a,b)
+#define mp_init_ll(a,b) mp_init_i64(a,b)
+
+/* get integer, set integer (unsigned long long) */
+#define mp_get_ull(a) ((unsigned long long)mp_get_i64(a))
+#define mp_set_ull(a,b) mp_set_u64(a,b)
+#define mp_init_ull(a,b) mp_init_u64(a,b)
+#else
/* get integer, set integer (long long) */
long long mp_get_ll(const mp_int *a) MP_WUR;
void mp_set_ll(mp_int *a, long long b);
@@ -352,6 +367,7 @@ mp_err mp_init_ll(mp_int *a, long long b) MP_WUR;
#define mp_get_ull(a) ((unsigned long long)mp_get_ll(a))
void mp_set_ull(mp_int *a, unsigned long long b);
mp_err mp_init_ull(mp_int *a, unsigned long long b) MP_WUR;
+#endif
/* set to single unsigned digit, up to MP_DIGIT_MAX */
void mp_set(mp_int *a, mp_digit b);
@@ -360,10 +376,14 @@ mp_err mp_init_set(mp_int *a, mp_digit b) MP_WUR;
/* get integer, set integer and init with integer (deprecated) */
MP_DEPRECATED(mp_get_mag_u32/mp_get_u32) unsigned long mp_get_int(const mp_int *a) MP_WUR;
MP_DEPRECATED(mp_get_mag_ul/mp_get_ul) unsigned long mp_get_long(const mp_int *a) MP_WUR;
+#ifdef _MSC_VER
MP_DEPRECATED(mp_get_mag_ull/mp_get_ull) unsigned long long mp_get_long_long(const mp_int *a) MP_WUR;
+#endif
MP_DEPRECATED(mp_set_ul) mp_err mp_set_int(mp_int *a, unsigned long b);
MP_DEPRECATED(mp_set_ul) mp_err mp_set_long(mp_int *a, unsigned long b);
+#ifdef _MSC_VER
MP_DEPRECATED(mp_set_ull) mp_err mp_set_long_long(mp_int *a, unsigned long long b);
+#endif
MP_DEPRECATED(mp_init_ul) mp_err mp_init_set_int(mp_int *a, unsigned long b) MP_WUR;
/* copy, b = a */