words[d_len-1] |= -1 << (32 - count);
words[d_len-1] |= -2 << (31 - count);
  private void setShiftRight(BigInteger x, int count)  {    if (x.words == null)      set(count < 32 ? x.ival >> count : x.ival < 0 ? -1 : 0);    else if (count == 0)      set(x);    else      {	boolean neg = x.isNegative();	int word_count = count >> 5;	count &= 31;	int d_len = x.ival - word_count;	if (d_len <= 0)	  set(neg ? -1 : 0);	else	  {	    if (words == null || words.length < d_len)	      realloc(d_len);	    MPN.rshift0 (words, x.words, word_count, d_len, count);	    ival = d_len;	    if (neg)	      words[d_len-1] |= -1 << (32 - count);	  }      }  }