Index: softfloat/generic/mul.c
===================================================================
--- softfloat/generic/mul.c	(revision bff16ddc2e94231de11bf43680552d29fb7c59d4)
+++ softfloat/generic/mul.c	(revision 12665431deed59bc8d76f61f17368d17c55d2bcb)
@@ -37,5 +37,5 @@
 {
 	float32 result;
-	__u64 mant1, mant2;
+	__u64 frac1, frac2;
 	__s32 exp;
 
@@ -45,10 +45,10 @@
 		/* TODO: fix SigNaNs */
 		if (isFloat32SigNaN(a)) {
-			result.parts.mantisa = a.parts.mantisa;
+			result.parts.fraction = a.parts.fraction;
 			result.parts.exp = a.parts.exp;
 			return result;
 		};
 		if (isFloat32SigNaN(b)) { /* TODO: fix SigNaN */
-			result.parts.mantisa = b.parts.mantisa;
+			result.parts.fraction = b.parts.fraction;
 			result.parts.exp = b.parts.exp;
 			return result;
@@ -65,5 +65,5 @@
 			return result;
 		}
-		result.parts.mantisa = a.parts.mantisa;
+		result.parts.fraction = a.parts.fraction;
 		result.parts.exp = a.parts.exp;
 		return result;
@@ -76,5 +76,5 @@
 			return result;
 		}
-		result.parts.mantisa = b.parts.mantisa;
+		result.parts.fraction = b.parts.fraction;
 		result.parts.exp = b.parts.exp;
 		return result;
@@ -96,42 +96,42 @@
 		/* FIXME: underflow */
 		/* return signed zero */
-		result.parts.mantisa = 0x0;
+		result.parts.fraction = 0x0;
 		result.parts.exp = 0x0;
 		return result;
 	};
 	
-	mant1 = a.parts.mantisa;
+	frac1 = a.parts.fraction;
 	if (a.parts.exp > 0) {
-		mant1 |= FLOAT32_HIDDEN_BIT_MASK;
+		frac1 |= FLOAT32_HIDDEN_BIT_MASK;
 	} else {
 		++exp;
 	};
 	
-	mant2 = b.parts.mantisa;
+	frac2 = b.parts.fraction;
 
 	if (b.parts.exp > 0) {
-		mant2 |= FLOAT32_HIDDEN_BIT_MASK;
+		frac2 |= FLOAT32_HIDDEN_BIT_MASK;
 	} else {
 		++exp;
 	};
 
-	mant1 <<= 1; /* one bit space for rounding */
-
-	mant1 = mant1 * mant2;
+	frac1 <<= 1; /* one bit space for rounding */
+
+	frac1 = frac1 * frac2;
 /* round and return */
 	
-	while ((exp < FLOAT32_MAX_EXPONENT) && (mant1 >= ( 1 << (FLOAT32_MANTISA_SIZE + 2)))) { 
-		/* 23 bits of mantisa + one more for hidden bit (all shifted 1 bit left)*/
-		++exp;
-		mant1 >>= 1;
+	while ((exp < FLOAT32_MAX_EXPONENT) && (frac1 >= ( 1 << (FLOAT32_FRACTION_SIZE + 2)))) { 
+		/* 23 bits of fraction + one more for hidden bit (all shifted 1 bit left)*/
+		++exp;
+		frac1 >>= 1;
 	};
 
 	/* rounding */
-	//++mant1; /* FIXME: not works - without it is ok */
-	mant1 >>= 1; /* shift off rounding space */
-	
-	if ((exp < FLOAT32_MAX_EXPONENT) && (mant1 >= (1 << (FLOAT32_MANTISA_SIZE + 1)))) {
-		++exp;
-		mant1 >>= 1;
+	/* ++frac1; FIXME: not works - without it is ok */
+	frac1 >>= 1; /* shift off rounding space */
+	
+	if ((exp < FLOAT32_MAX_EXPONENT) && (frac1 >= (1 << (FLOAT32_FRACTION_SIZE + 1)))) {
+		++exp;
+		frac1 >>= 1;
 	};
 
@@ -140,26 +140,26 @@
 		/* return infinity*/
 		result.parts.exp = FLOAT32_MAX_EXPONENT;
-		result.parts.mantisa = 0x0;
-		return result;
-	}
-	
-	exp -= FLOAT32_MANTISA_SIZE;
-
-	if (exp <= FLOAT32_MANTISA_SIZE) { 
+		result.parts.fraction = 0x0;
+		return result;
+	}
+	
+	exp -= FLOAT32_FRACTION_SIZE;
+
+	if (exp <= FLOAT32_FRACTION_SIZE) { 
 		/* denormalized number */
-		mant1 >>= 1; /* denormalize */
-		while ((mant1 > 0) && (exp < 0)) {
-			mant1 >>= 1;
+		frac1 >>= 1; /* denormalize */
+		while ((frac1 > 0) && (exp < 0)) {
+			frac1 >>= 1;
 			++exp;
 		};
-		if (mant1 == 0) {
+		if (frac1 == 0) {
 			/* FIXME : underflow */
 		result.parts.exp = 0;
-		result.parts.mantisa = 0;
+		result.parts.fraction = 0;
 		return result;
 		};
 	};
 	result.parts.exp = exp; 
-	result.parts.mantisa = mant1 & ( (1 << FLOAT32_MANTISA_SIZE) - 1);
+	result.parts.fraction = frac1 & ( (1 << FLOAT32_FRACTION_SIZE) - 1);
 	
 	return result;	
@@ -173,5 +173,5 @@
 {
 	float64 result;
-	__u64 mant1, mant2;
+	__u64 frac1, frac2;
 	__s32 exp;
 
@@ -181,10 +181,10 @@
 		/* TODO: fix SigNaNs */
 		if (isFloat64SigNaN(a)) {
-			result.parts.mantisa = a.parts.mantisa;
+			result.parts.fraction = a.parts.fraction;
 			result.parts.exp = a.parts.exp;
 			return result;
 		};
 		if (isFloat64SigNaN(b)) { /* TODO: fix SigNaN */
-			result.parts.mantisa = b.parts.mantisa;
+			result.parts.fraction = b.parts.fraction;
 			result.parts.exp = b.parts.exp;
 			return result;
@@ -201,5 +201,5 @@
 			return result;
 		}
-		result.parts.mantisa = a.parts.mantisa;
+		result.parts.fraction = a.parts.fraction;
 		result.parts.exp = a.parts.exp;
 		return result;
@@ -212,5 +212,5 @@
 			return result;
 		}
-		result.parts.mantisa = b.parts.mantisa;
+		result.parts.fraction = b.parts.fraction;
 		result.parts.exp = b.parts.exp;
 		return result;
@@ -232,30 +232,30 @@
 		/* FIXME: underflow */
 		/* return signed zero */
-		result.parts.mantisa = 0x0;
+		result.parts.fraction = 0x0;
 		result.parts.exp = 0x0;
 		return result;
 	};
 	
-	mant1 = a.parts.mantisa;
+	frac1 = a.parts.fraction;
 	if (a.parts.exp > 0) {
-		mant1 |= FLOAT64_HIDDEN_BIT_MASK;
+		frac1 |= FLOAT64_HIDDEN_BIT_MASK;
 	} else {
 		++exp;
 	};
 	
-	mant2 = b.parts.mantisa;
+	frac2 = b.parts.fraction;
 
 	if (b.parts.exp > 0) {
-		mant2 |= FLOAT64_HIDDEN_BIT_MASK;
+		frac2 |= FLOAT64_HIDDEN_BIT_MASK;
 	} else {
 		++exp;
 	};
 
-	mant1 <<= 1; /* one bit space for rounding */
-
-	mul64integers(mant1, mant2, &mant1, &mant2);
+	frac1 <<= 1; /* one bit space for rounding */
+
+	mul64integers(frac1, frac2, &frac1, &frac2);
 
 /* round and return */
-	/* FIXME: ugly soulution is to shift whole mant2 >> as in 32bit version
+	/* FIXME: ugly soulution is to shift whole frac2 >> as in 32bit version
 	 * Here is is more slower because we have to shift two numbers with carry
 	 * Better is find first nonzero bit and make only one shift
@@ -264,23 +264,23 @@
 	 */
 	
-	while ((exp < FLOAT64_MAX_EXPONENT) && (mant2 > 0 )) { 
-		mant1 >>= 1;
-		mant1 &= ((mant2 & 0x1) << 63);
-		mant2 >>= 1;
-		++exp;
-	}
-	
-	while ((exp < FLOAT64_MAX_EXPONENT) && (mant1 >= ( (__u64)1 << (FLOAT64_MANTISA_SIZE + 2)))) { 
-		++exp;
-		mant1 >>= 1;
+	while ((exp < FLOAT64_MAX_EXPONENT) && (frac2 > 0 )) { 
+		frac1 >>= 1;
+		frac1 &= ((frac2 & 0x1) << 63);
+		frac2 >>= 1;
+		++exp;
+	}
+	
+	while ((exp < FLOAT64_MAX_EXPONENT) && (frac1 >= ( (__u64)1 << (FLOAT64_FRACTION_SIZE + 2)))) { 
+		++exp;
+		frac1 >>= 1;
 	};
 
 	/* rounding */
-	//++mant1; /* FIXME: not works - without it is ok */
-	mant1 >>= 1; /* shift off rounding space */
-	
-	if ((exp < FLOAT64_MAX_EXPONENT) && (mant1 >= ((__u64)1 << (FLOAT64_MANTISA_SIZE + 1)))) {
-		++exp;
-		mant1 >>= 1;
+	/* ++frac1;  FIXME: not works - without it is ok */
+	frac1 >>= 1; /* shift off rounding space */
+	
+	if ((exp < FLOAT64_MAX_EXPONENT) && (frac1 >= ((__u64)1 << (FLOAT64_FRACTION_SIZE + 1)))) {
+		++exp;
+		frac1 >>= 1;
 	};
 
@@ -289,26 +289,26 @@
 		/* return infinity*/
 		result.parts.exp = FLOAT64_MAX_EXPONENT;
-		result.parts.mantisa = 0x0;
-		return result;
-	}
-	
-	exp -= FLOAT64_MANTISA_SIZE;
-
-	if (exp <= FLOAT64_MANTISA_SIZE) { 
+		result.parts.fraction = 0x0;
+		return result;
+	}
+	
+	exp -= FLOAT64_FRACTION_SIZE;
+
+	if (exp <= FLOAT64_FRACTION_SIZE) { 
 		/* denormalized number */
-		mant1 >>= 1; /* denormalize */
-		while ((mant1 > 0) && (exp < 0)) {
-			mant1 >>= 1;
+		frac1 >>= 1; /* denormalize */
+		while ((frac1 > 0) && (exp < 0)) {
+			frac1 >>= 1;
 			++exp;
 		};
-		if (mant1 == 0) {
+		if (frac1 == 0) {
 			/* FIXME : underflow */
 		result.parts.exp = 0;
-		result.parts.mantisa = 0;
+		result.parts.fraction = 0;
 		return result;
 		};
 	};
 	result.parts.exp = exp; 
-	result.parts.mantisa = mant1 & ( ((__u64)1 << FLOAT64_MANTISA_SIZE) - 1);
+	result.parts.fraction = frac1 & ( ((__u64)1 << FLOAT64_FRACTION_SIZE) - 1);
 	
 	return result;	
@@ -339,6 +339,6 @@
 
 	middle1 += middle2;
-	high += ((__u64)(middle1 < middle2) << 32) + middle1>>32;
-	middle1 << 32;
+	high += ((__u64)(middle1 < middle2) << 32) + (middle1 >> 32);
+	middle1 <<= 32;
 	low += middle1;
 	high += (low < middle1);
