aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/libjava/testsuite/libjava.lang/PR31264.java
blob: 5c0e85f010e189b640a834d629a2665c957799f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
 * Copyright (C) 2006 - Javolution (http://javolution.org/)
 * All rights reserved.
 * 
 * Permission to use, copy, modify, and distribute this software is
 * freely granted, provided that this notice is preserved.
 */

public final class PR31264 
{
  public static long fubar(double d, int n) 
  {
    long bits = Double.doubleToRawLongBits(d);
    int exp = ((int)(bits >> 52)) & 0x7FF;
    long m = bits & 0x000fffffffffffffL;
    if (exp == 0) 
      {
	if (m == 0) return 0L;
	return fubar(d * 18014398509481984L, n - 54); // 2^54 Exact.
      }
    return m;
  }

  public static void main(String[] argv)
  {
  }
}