Commit Diff


commit - 35afcc6c772f327cb612286430534281918e74f9
commit + bcb7f64ea55480585b546b462a3a2891765c400b
blob - eb663f3804b97c0b999c54442be19aeae1ec8421
blob + 9cb74ea468c72f248a418f998dda21b738afe255
--- src/libmp/port/mptouv.c
+++ 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;
blob - 86da9943807c2ffb3eb59ac7f59e6b9d5e7365ca
blob + b24b8e3e7d1ff271011787c27f87505f8a0e2094
--- src/libmp/port/mptov.c
+++ 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;