aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/math
diff options
context:
space:
mode:
authorHans Boehm <Hans_Boehm@hp.com>2001-01-17 01:00:53 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2001-01-17 01:00:53 +0000
commitc7fb0b92185d393914931d0e1c48de3dc8bb91a7 (patch)
treea6e89306ae13b7a6c1e2bdd715c221c90e817f8b /libjava/java/math
parent930f6690257ef41320ffe11c7278e435028e32ff (diff)
downloadgcc-c7fb0b92185d393914931d0e1c48de3dc8bb91a7.zip
gcc-c7fb0b92185d393914931d0e1c48de3dc8bb91a7.tar.gz
gcc-c7fb0b92185d393914931d0e1c48de3dc8bb91a7.tar.bz2
BigInteger.java (setShiftRight): Only do negative shift if count != 0.
2001-01-16 Hans Boehm <hans_boehm@hp.com> * java/math/BigInteger.java (setShiftRight): Only do negative shift if count != 0. From-SVN: r39080
Diffstat (limited to 'libjava/java/math')
-rw-r--r--libjava/java/math/BigInteger.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/libjava/java/math/BigInteger.java b/libjava/java/math/BigInteger.java
index ed1f4f0..d3fcb02 100644
--- a/libjava/java/math/BigInteger.java
+++ b/libjava/java/math/BigInteger.java
@@ -1401,11 +1401,13 @@ public class BigInteger extends Number implements Comparable
realloc(d_len);
if (count == 0)
System.arraycopy(x.words, word_count, words, 0, d_len);
- else
- MPN.rshift(words, x.words, word_count, d_len, count);
+ else
+ {
+ MPN.rshift(words, x.words, word_count, d_len, count);
+ if (neg)
+ words[d_len-1] |= -1 << (32 - count);
+ }
ival = d_len;
- if (neg)
- words[ival-1] |= -1 << (32 - count);
}
}
}