8281259: MutableBigInteger subtraction could be simplified

Reviewed-by: bpb
This commit is contained in:
Daniel Jeliński 2022-02-11 16:24:43 +00:00 committed by Brian Burkhalter
parent f399ae558e
commit e73ee0ca10
2 changed files with 16 additions and 5 deletions

View file

@ -945,13 +945,13 @@ class MutableBigInteger {
x--; y--;
diff = (a.value[x+a.offset] & LONG_MASK) -
(b.value[y+b.offset] & LONG_MASK) - ((int)-(diff>>32));
(b.value[y+b.offset] & LONG_MASK) + (diff >> 32);
result[rstart--] = (int)diff;
}
// Subtract remainder of longer number
while (x > 0) {
x--;
diff = (a.value[x+a.offset] & LONG_MASK) - ((int)-(diff>>32));
diff = (a.value[x+a.offset] & LONG_MASK) + (diff >> 32);
result[rstart--] = (int)diff;
}
@ -986,13 +986,13 @@ class MutableBigInteger {
while (y > 0) {
x--; y--;
diff = (a.value[a.offset+ x] & LONG_MASK) -
(b.value[b.offset+ y] & LONG_MASK) - ((int)-(diff>>32));
(b.value[b.offset+ y] & LONG_MASK) + (diff >> 32);
a.value[a.offset+x] = (int)diff;
}
// Subtract remainder of longer number
while (x > 0) {
while (diff < 0 && x > 0) {
x--;
diff = (a.value[a.offset+ x] & LONG_MASK) - ((int)-(diff>>32));
diff = (a.value[a.offset+ x] & LONG_MASK) + (diff >> 32);
a.value[a.offset+x] = (int)diff;
}