aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libmp/port/mptouv.c6
-rw-r--r--src/libmp/port/mptov.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libmp/port/mptouv.c b/src/libmp/port/mptouv.c
index eb663f38..9cb74ea4 100644
--- a/src/libmp/port/mptouv.c
+++ b/src/libmp/port/mptouv.c
@@ -22,10 +22,16 @@ uvtomp(uvlong v, mpint *b)
return b;
for(s = 0; s < VLDIGITS && v != 0; s++){
b->p[s] = v;
+ /* !@*$&!@$ gcc gives warnings about the >> here
+ * when running on 64-bit machines, even though
+ * it's in dead code. fake it out with two shifts.
if(sizeof(mpdigit) == sizeof(uvlong))
v = 0;
else
v >>= sizeof(mpdigit)*8;
+ */
+ v >>= sizeof(mpdigit)*4;
+ v >>= sizeof(mpdigit)*4;
}
b->top = s;
return b;
diff --git a/src/libmp/port/mptov.c b/src/libmp/port/mptov.c
index 86da9943..b24b8e3e 100644
--- a/src/libmp/port/mptov.c
+++ b/src/libmp/port/mptov.c
@@ -28,10 +28,16 @@ vtomp(vlong v, mpint *b)
uv = v;
for(s = 0; s < VLDIGITS && uv != 0; s++){
b->p[s] = uv;
+ /* !@*$&!@$ gcc gives warnings about the >> here
+ * when running on 64-bit machines, even though
+ * it's in dead code. fake it out with two shifts.
if(sizeof(mpdigit) == sizeof(uvlong))
uv = 0;
else
uv >>= sizeof(mpdigit)*8;
+ */
+ uv >>= sizeof(mpdigit)*4;
+ uv >>= sizeof(mpdigit)*4;
}
b->top = s;
return b;