aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2016-05-07 17:22:42 +0200
committerMattias Andrée <maandree@kth.se>2016-05-07 17:22:42 +0200
commitd6f4393542998276250bd3f3519bb824ca4b3d91 (patch)
treee2c3c9d1efeb8be3930a1a987d793a367f89c9bb /src
parentFix zsave translation for tomsfastmath and libtommath (diff)
downloadlibzahl-d6f4393542998276250bd3f3519bb824ca4b3d91.tar.gz
libzahl-d6f4393542998276250bd3f3519bb824ca4b3d91.tar.bz2
libzahl-d6f4393542998276250bd3f3519bb824ca4b3d91.tar.xz
Some small improvements
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src')
-rw-r--r--src/internals.h16
-rw-r--r--src/zload.c7
2 files changed, 15 insertions, 8 deletions
diff --git a/src/internals.h b/src/internals.h
index 2f42269..25389c3 100644
--- a/src/internals.h
+++ b/src/internals.h
@@ -26,7 +26,7 @@
#define Os ZAHL_Os
#define Oz ZAHL_Oz
-#define LIST_TEMPS\
+#define LIST_TEMPS_HERE\
X(libzahl_tmp_str_num, 0)\
X(libzahl_tmp_str_mag, 0)\
X(libzahl_tmp_str_div, 0)\
@@ -35,8 +35,6 @@
X(libzahl_tmp_gcd_v, 0)\
X(libzahl_tmp_sub, 0)\
X(libzahl_tmp_modmul, 0)\
- X(libzahl_tmp_div, 0)\
- X(libzahl_tmp_mod, 0)\
X(libzahl_tmp_pow_b, 0)\
X(libzahl_tmp_pow_c, 0)\
X(libzahl_tmp_pow_d, 0)\
@@ -50,6 +48,11 @@
X(libzahl_tmp_ptest_n1, 0)\
X(libzahl_tmp_ptest_n4, 0)
+#define LIST_TEMPS\
+ X(libzahl_tmp_div, 0)\
+ X(libzahl_tmp_mod, 0)\
+ LIST_TEMPS_HERE
+
#define LIST_CONSTS\
X(0, libzahl_const_1e19, zsetu, 10000000000000000000ULL) /* The largest power of 10 < 2⁶⁴. */\
X(1, libzahl_const_1, zsetu, 1)\
@@ -57,7 +60,7 @@
X(3, libzahl_const_4, zsetu, 4)
#define X(x, s) extern z_t x;
-LIST_TEMPS
+LIST_TEMPS_HERE
#undef X
#define X(i, x, f, v) extern z_t x;
LIST_CONSTS
@@ -119,7 +122,10 @@ zzero1(z_t a, z_t b)
static inline void
zmemcpy_range(register zahl_char_t *restrict d, register const zahl_char_t *restrict s, size_t i, size_t n)
{
- zmemcpy(d + i, s + i, n - i);
+ d += i;
+ s += i;
+ n -= i;
+ zmemcpy(d, s, n);
}
static void
diff --git a/src/zload.c b/src/zload.c
index f788a45..2048332 100644
--- a/src/zload.c
+++ b/src/zload.c
@@ -6,11 +6,12 @@ size_t
zload(z_t a, const void *buffer)
{
const char *buf = buffer;
- a->sign = *((const long *)buf), buf += sizeof(long);
- a->used = *((const size_t *)buf), buf += sizeof(size_t);
+ a->sign = (int)*((const long *)buf), buf += sizeof(long);
+ a->used = *((const size_t *)buf), buf += sizeof(size_t);
if (likely(a->sign)) {
ENSURE_SIZE(a, a->used);
zmemcpy(a->chars, (const zahl_char_t *)buf, a->used);
}
- return sizeof(long) + sizeof(size_t) + (zzero(a) ? 0 : ((a->used + 3) & ~3) * sizeof(zahl_char_t));
+ return sizeof(long) + sizeof(size_t) +
+ (zzero(a) ? 0 : ((a->used + 3) & (size_t)~3) * sizeof(zahl_char_t));
}