Commit Diff


commit - af79ebc2b6faf92268193a43bd087dbf75840b41
commit + 9e36143a34451aba972b157a53160f1badff9ceb
blob - 2548303c231ab6e1854d2aae4f5cdb074f554d7e
blob + aa5af05b00bf72d0c815dd9e58b6c76ed839d1fb
--- src/libmp/port/mptouv.c
+++ src/libmp/port/mptouv.c
@@ -22,7 +22,10 @@ uvtomp(uvlong v, mpint *b)
 		return b;
 	for(s = 0; s < VLDIGITS && v != 0; s++){
 		b->p[s] = v;
-		v >>= sizeof(mpdigit)*8;
+		if(sizeof(mpdigit) == sizeof(uvlong))
+			v = 0;
+		else
+			v >>= sizeof(mpdigit)*8;
 	}
 	b->top = s;
 	return b;
blob - b09718ef07a9df771ae8fba4bf281b59a8608731
blob + 86da9943807c2ffb3eb59ac7f59e6b9d5e7365ca
--- src/libmp/port/mptov.c
+++ src/libmp/port/mptov.c
@@ -28,7 +28,10 @@ vtomp(vlong v, mpint *b)
 		uv = v;
 	for(s = 0; s < VLDIGITS && uv != 0; s++){
 		b->p[s] = uv;
-		uv >>= sizeof(mpdigit)*8;
+		if(sizeof(mpdigit) == sizeof(uvlong))
+			uv = 0;
+		else
+			uv >>= sizeof(mpdigit)*8;
 	}
 	b->top = s;
 	return b;