Line 126... |
Line 126... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
|
|
#ifndef NO_SOFTFLOAT_UNUSED
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
|
| Shifts the 128-bit value formed by concatenating `a0' and `a1' right by the
|
| number of bits given in `count'. Any bits shifted off are lost. The value
|
| number of bits given in `count'. Any bits shifted off are lost. The value
|
| of `count' can be arbitrarily large; in particular, if `count' is greater
|
| of `count' can be arbitrarily large; in particular, if `count' is greater
|
| than 128, the result will be 0. The result is broken into two 64-bit pieces
|
| than 128, the result will be 0. The result is broken into two 64-bit pieces
|
Line 325... |
Line 327... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
#endif
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit
|
| Adds the 128-bit value formed by concatenating `a0' and `a1' to the 128-bit
|
| value formed by concatenating `b0' and `b1'. Addition is modulo 2^128, so
|
| value formed by concatenating `b0' and `b1'. Addition is modulo 2^128, so
|
| any carry out is lost. The result is broken into two 64-bit pieces which
|
| any carry out is lost. The result is broken into two 64-bit pieces which
|
| are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
|
| are stored at the locations pointed to by `z0Ptr' and `z1Ptr'.
|
Line 344... |
Line 348... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = a0 + b0 + ( z1 < a1 );
|
*z0Ptr = a0 + b0 + ( z1 < a1 );
|
|
|
}
|
}
|
|
|
|
#ifndef NO_SOFTFLOAT_UNUSED
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the
|
| Adds the 192-bit value formed by concatenating `a0', `a1', and `a2' to the
|
| 192-bit value formed by concatenating `b0', `b1', and `b2'. Addition is
|
| 192-bit value formed by concatenating `b0', `b1', and `b2'. Addition is
|
| modulo 2^192, so any carry out is lost. The result is broken into three
|
| modulo 2^192, so any carry out is lost. The result is broken into three
|
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr',
|
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr',
|
Line 382... |
Line 388... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
#endif
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Subtracts the 128-bit value formed by concatenating `b0' and `b1' from the
|
| Subtracts the 128-bit value formed by concatenating `b0' and `b1' from the
|
| 128-bit value formed by concatenating `a0' and `a1'. Subtraction is modulo
|
| 128-bit value formed by concatenating `a0' and `a1'. Subtraction is modulo
|
| 2^128, so any borrow out (carry out) is lost. The result is broken into two
|
| 2^128, so any borrow out (carry out) is lost. The result is broken into two
|
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr' and
|
| 64-bit pieces which are stored at the locations pointed to by `z0Ptr' and
|
Line 400... |
Line 408... |
*z1Ptr = a1 - b1;
|
*z1Ptr = a1 - b1;
|
*z0Ptr = a0 - b0 - ( a1 < b1 );
|
*z0Ptr = a0 - b0 - ( a1 < b1 );
|
|
|
}
|
}
|
|
|
|
#ifndef NO_SOFTFLOAT_UNUSED
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Subtracts the 192-bit value formed by concatenating `b0', `b1', and `b2'
|
| Subtracts the 192-bit value formed by concatenating `b0', `b1', and `b2'
|
| from the 192-bit value formed by concatenating `a0', `a1', and `a2'.
|
| from the 192-bit value formed by concatenating `a0', `a1', and `a2'.
|
| Subtraction is modulo 2^192, so any borrow out (carry out) is lost. The
|
| Subtraction is modulo 2^192, so any borrow out (carry out) is lost. The
|
| result is broken into three 64-bit pieces which are stored at the locations
|
| result is broken into three 64-bit pieces which are stored at the locations
|
Line 438... |
Line 448... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
#endif
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Multiplies `a' by `b' to obtain a 128-bit product. The product is broken
|
| Multiplies `a' by `b' to obtain a 128-bit product. The product is broken
|
| into two 64-bit pieces which are stored at the locations pointed to by
|
| into two 64-bit pieces which are stored at the locations pointed to by
|
| `z0Ptr' and `z1Ptr'.
|
| `z0Ptr' and `z1Ptr'.
|
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
Line 467... |
Line 479... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
#ifndef NO_SOFTFLOAT_UNUSED
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Multiplies the 128-bit value formed by concatenating `a0' and `a1' by
|
| Multiplies the 128-bit value formed by concatenating `a0' and `a1' by
|
| `b' to obtain a 192-bit product. The product is broken into three 64-bit
|
| `b' to obtain a 192-bit product. The product is broken into three 64-bit
|
| pieces which are stored at the locations pointed to by `z0Ptr', `z1Ptr', and
|
| pieces which are stored at the locations pointed to by `z0Ptr', `z1Ptr', and
|
| `z2Ptr'.
|
| `z2Ptr'.
|
Line 532... |
Line 546... |
*z1Ptr = z1;
|
*z1Ptr = z1;
|
*z0Ptr = z0;
|
*z0Ptr = z0;
|
|
|
}
|
}
|
|
|
|
#endif
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Returns an approximation to the 64-bit integer quotient obtained by dividing
|
| Returns an approximation to the 64-bit integer quotient obtained by dividing
|
| `b' into the 128-bit value formed by concatenating `a0' and `a1'. The
|
| `b' into the 128-bit value formed by concatenating `a0' and `a1'. The
|
| divisor `b' must be at least 2^63. If q is the exact quotient truncated
|
| divisor `b' must be at least 2^63. If q is the exact quotient truncated
|
| toward zero, the approximation returned lies between q and q + 2 inclusive.
|
| toward zero, the approximation returned lies between q and q + 2 inclusive.
|
Line 664... |
Line 680... |
shiftCount += countLeadingZeros32( a );
|
shiftCount += countLeadingZeros32( a );
|
return shiftCount;
|
return shiftCount;
|
|
|
}
|
}
|
|
|
|
#ifndef NO_SOFTFLOAT_UNUSED
|
|
|
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
| Returns 1 if the 128-bit value formed by concatenating `a0' and `a1'
|
| Returns 1 if the 128-bit value formed by concatenating `a0' and `a1'
|
| is equal to the 128-bit value formed by concatenating `b0' and `b1'.
|
| is equal to the 128-bit value formed by concatenating `b0' and `b1'.
|
| Otherwise, returns 0.
|
| Otherwise, returns 0.
|
*----------------------------------------------------------------------------*/
|
*----------------------------------------------------------------------------*/
|
Line 716... |
Line 734... |
|
|
return ( a0 != b0 ) || ( a1 != b1 );
|
return ( a0 != b0 ) || ( a1 != b1 );
|
|
|
}
|
}
|
|
|
|
#endif
|