return BigInteger.make((long) xlen * (long) y);
return valueOf((long) xlen * (long) y);
  private static final BigInteger times(BigInteger x, int y)  {    if (y == 0)      return ZERO;    if (y == 1)      return x;    int[] xwords = x.words;    int xlen = x.ival;    if (xwords == null)      return BigInteger.make((long) xlen * (long) y);    boolean negative;    BigInteger result = BigInteger.alloc(xlen + 1);    if (xwords[xlen - 1] < 0)      {	negative = true;	negate(result.words, xwords, xlen);	xwords = result.words;      }    else      negative = false;    if (y < 0)      {	negative = !negative;	y = -y;      }    result.words[xlen] = MPN.mul_1(result.words, xwords, xlen, y);    result.ival = xlen + 1;    if (negative)      result.setNegative();    return result.canonicalize();  }