Hello, Please review at your convenience.
Issue: https://bugs.openjdk.java.net/browse/JDK-8066842 Patch: http://cr.openjdk.java.net/~bpb/8066842/webrev.00/ The problem appears to have been that at line 4941 of the old source, in the divWord() method, one or both of the long variables ‘r’ and ‘q’ overflowed the range of int so that information was lost when these variables were truncated to 32 bits. The code of divWord() seems to have been ported from a method of the same name in MutableBigInteger wherein its constraints were made explicit. In the patch, divWord() is replaced by divRemNegativeLong(), and the use of the former in divideAndRound128() replaced with inline code for the non-negative dividend cases, and by divRemNegativeLong() for the negative dividend cases. Thanks, Brian