diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-11-12 12:11:05 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-11-12 12:11:05 (GMT) |
commit | 41e4211a15b085e6f456693fe2ef6ad980bde593 (patch) | |
tree | 2115df6e1746693165934fe335889d189f533313 /libtommath | |
parent | e512564f360551e1821bc646ce75314246b9a0ee (diff) | |
parent | 34714bcefaa3ba23593153c232829b2af6914528 (diff) | |
download | tcl-41e4211a15b085e6f456693fe2ef6ad980bde593.zip tcl-41e4211a15b085e6f456693fe2ef6ad980bde593.tar.gz tcl-41e4211a15b085e6f456693fe2ef6ad980bde593.tar.bz2 |
Merge 8.7. Finish implementation.
Diffstat (limited to 'libtommath')
-rw-r--r-- | libtommath/tommath.h | 22 |
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 */ |