public class sun.misc.FloatingDecimal
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.FloatingDecimal
super_class: java.lang.Object
{
boolean isExceptional;
descriptor: Z
flags: (0x0000)
boolean isNegative;
descriptor: Z
flags: (0x0000)
int decExponent;
descriptor: I
flags: (0x0000)
char[] digits;
descriptor: [C
flags: (0x0000)
int nDigits;
descriptor: I
flags: (0x0000)
int bigIntExp;
descriptor: I
flags: (0x0000)
int bigIntNBits;
descriptor: I
flags: (0x0000)
boolean mustSetRoundDir;
descriptor: Z
flags: (0x0000)
boolean fromHex;
descriptor: Z
flags: (0x0000)
int roundDir;
descriptor: I
flags: (0x0000)
static final long signMask;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -9223372036854775808
static final long expMask;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 9218868437227405312
static final long fractMask;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4503599627370495
static final int expShift;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 52
static final int expBias;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1023
static final long fractHOB;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4503599627370496
static final long expOne;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4607182418800017408
static final int maxSmallBinExp;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 62
static final int minSmallBinExp;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -21
static final int maxDecimalDigits;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 15
static final int maxDecimalExponent;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 308
static final int minDecimalExponent;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -324
static final int bigDecimalExponent;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 324
static final int MAX_NDIGITS;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1100
static final long highbyte;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -72057594037927936
static final long highbit;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -9223372036854775808
static final long lowbytes;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 72057594037927935
static final int singleSignMask;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
static final int singleExpMask;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2139095040
static final int singleFractMask;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8388607
static final int singleExpShift;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 23
static final int singleFractHOB;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 8388608
static final int singleExpBias;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 127
static final int singleMaxDecimalDigits;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 7
static final int singleMaxDecimalExponent;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 38
static final int singleMinDecimalExponent;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -45
static final int intDecimalDigits;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static sun.misc.FDBigInt[] b5p;
descriptor: [Lsun/misc/FDBigInt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static java.lang.ThreadLocal perThreadBuffer;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final double[] small10pow;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float[] singleSmall10pow;
descriptor: [F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double[] big10pow;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double[] tiny10pow;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int maxSmallTen;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int singleMaxSmallTen;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] small5pow;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long[] long5pow;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] n5bits;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] infinity;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] notANumber;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final char[] zero;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.util.regex.Pattern hexFloatPattern;
descriptor: Ljava/util/regex/Pattern;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: .line 33
ldc Lsun/misc/FloatingDecimal;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
3: .line 991
new sun.misc.FloatingDecimal$1
dup
invokespecial sun.misc.FloatingDecimal$1.<init>:()V
putstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
4: .line 1769
bipush 23
newarray 7
dup
iconst_0
5: .line 1770
dconst_1
dastore
dup
iconst_1
6: .line 1771
ldc 10.0
dastore
dup
iconst_2
ldc 100.0
dastore
dup
iconst_3
ldc 1000.0
dastore
dup
iconst_4
ldc 10000.0
dastore
dup
iconst_5
ldc 100000.0
dastore
dup
bipush 6
7: .line 1772
ldc 1000000.0
dastore
dup
bipush 7
ldc 1.0E7
dastore
dup
bipush 8
ldc 1.0E8
dastore
dup
bipush 9
ldc 1.0E9
dastore
dup
bipush 10
ldc 1.0E10
dastore
dup
bipush 11
8: .line 1773
ldc 1.0E11
dastore
dup
bipush 12
ldc 1.0E12
dastore
dup
bipush 13
ldc 1.0E13
dastore
dup
bipush 14
ldc 1.0E14
dastore
dup
bipush 15
ldc 1.0E15
dastore
dup
bipush 16
9: .line 1774
ldc 1.0E16
dastore
dup
bipush 17
ldc 1.0E17
dastore
dup
bipush 18
ldc 1.0E18
dastore
dup
bipush 19
ldc 1.0E19
dastore
dup
bipush 20
ldc 1.0E20
dastore
dup
bipush 21
10: .line 1775
ldc 1.0E21
dastore
dup
bipush 22
ldc 1.0E22
dastore
11: .line 1769
putstatic sun.misc.FloatingDecimal.small10pow:[D
12: .line 1778
bipush 11
newarray 6
dup
iconst_0
13: .line 1779
fconst_1
fastore
dup
iconst_1
14: .line 1780
ldc 10.0
fastore
dup
iconst_2
ldc 100.0
fastore
dup
iconst_3
ldc 1000.0
fastore
dup
iconst_4
ldc 10000.0
fastore
dup
iconst_5
ldc 100000.0
fastore
dup
bipush 6
15: .line 1781
ldc 1000000.0
fastore
dup
bipush 7
ldc 1.0E7
fastore
dup
bipush 8
ldc 1.0E8
fastore
dup
bipush 9
ldc 1.0E9
fastore
dup
bipush 10
ldc 1.0E10
fastore
16: .line 1778
putstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
17: .line 1784
iconst_5
newarray 7
dup
iconst_0
18: .line 1785
ldc 1.0E16
dastore
dup
iconst_1
ldc 1.0E32
dastore
dup
iconst_2
ldc 1.0E64
dastore
dup
iconst_3
ldc 1.0E128
dastore
dup
iconst_4
ldc 1.0E256
dastore
19: .line 1784
putstatic sun.misc.FloatingDecimal.big10pow:[D
20: .line 1786
iconst_5
newarray 7
dup
iconst_0
21: .line 1787
ldc 1.0E-16
dastore
dup
iconst_1
ldc 1.0E-32
dastore
dup
iconst_2
ldc 1.0E-64
dastore
dup
iconst_3
ldc 1.0E-128
dastore
dup
iconst_4
ldc 1.0E-256
dastore
22: .line 1786
putstatic sun.misc.FloatingDecimal.tiny10pow:[D
23: .line 1789
getstatic sun.misc.FloatingDecimal.small10pow:[D
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal.maxSmallTen:I
24: .line 1790
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
25: .line 1792
bipush 14
newarray 10
dup
iconst_0
26: .line 1793
iconst_1
iastore
dup
iconst_1
27: .line 1794
iconst_5
iastore
dup
iconst_2
28: .line 1795
bipush 25
iastore
dup
iconst_3
29: .line 1796
bipush 125
iastore
dup
iconst_4
30: .line 1797
sipush 625
iastore
dup
iconst_5
31: .line 1798
sipush 3125
iastore
dup
bipush 6
32: .line 1799
sipush 15625
iastore
dup
bipush 7
33: .line 1800
ldc 78125
iastore
dup
bipush 8
34: .line 1801
ldc 390625
iastore
dup
bipush 9
35: .line 1802
ldc 1953125
iastore
dup
bipush 10
36: .line 1803
ldc 9765625
iastore
dup
bipush 11
37: .line 1804
ldc 48828125
iastore
dup
bipush 12
38: .line 1805
ldc 244140625
iastore
dup
bipush 13
39: .line 1806
ldc 1220703125
iastore
40: .line 1792
putstatic sun.misc.FloatingDecimal.small5pow:[I
41: .line 1810
bipush 27
newarray 11
dup
iconst_0
42: .line 1811
lconst_1
lastore
dup
iconst_1
43: .line 1812
ldc 5
lastore
dup
iconst_2
44: .line 1813
ldc 25
lastore
dup
iconst_3
45: .line 1814
ldc 125
lastore
dup
iconst_4
46: .line 1815
ldc 625
lastore
dup
iconst_5
47: .line 1816
ldc 3125
lastore
dup
bipush 6
48: .line 1817
ldc 15625
lastore
dup
bipush 7
49: .line 1818
ldc 78125
lastore
dup
bipush 8
50: .line 1819
ldc 390625
lastore
dup
bipush 9
51: .line 1820
ldc 1953125
lastore
dup
bipush 10
52: .line 1821
ldc 9765625
lastore
dup
bipush 11
53: .line 1822
ldc 48828125
lastore
dup
bipush 12
54: .line 1823
ldc 244140625
lastore
dup
bipush 13
55: .line 1824
ldc 1220703125
lastore
dup
bipush 14
56: .line 1825
ldc 6103515625
lastore
dup
bipush 15
57: .line 1826
ldc 30517578125
lastore
dup
bipush 16
58: .line 1827
ldc 152587890625
lastore
dup
bipush 17
59: .line 1828
ldc 762939453125
lastore
dup
bipush 18
60: .line 1829
ldc 3814697265625
lastore
dup
bipush 19
61: .line 1830
ldc 19073486328125
lastore
dup
bipush 20
62: .line 1831
ldc 95367431640625
lastore
dup
bipush 21
63: .line 1832
ldc 476837158203125
lastore
dup
bipush 22
64: .line 1833
ldc 2384185791015625
lastore
dup
bipush 23
65: .line 1834
ldc 11920928955078125
lastore
dup
bipush 24
66: .line 1835
ldc 59604644775390625
lastore
dup
bipush 25
67: .line 1836
ldc 298023223876953125
lastore
dup
bipush 26
68: .line 1837
ldc 1490116119384765625
lastore
69: .line 1810
putstatic sun.misc.FloatingDecimal.long5pow:[J
70: .line 1841
bipush 27
newarray 10
dup
iconst_1
71: .line 1843
iconst_3
iastore
dup
iconst_2
72: .line 1844
iconst_5
iastore
dup
iconst_3
73: .line 1845
bipush 7
iastore
dup
iconst_4
74: .line 1846
bipush 10
iastore
dup
iconst_5
75: .line 1847
bipush 12
iastore
dup
bipush 6
76: .line 1848
bipush 14
iastore
dup
bipush 7
77: .line 1849
bipush 17
iastore
dup
bipush 8
78: .line 1850
bipush 19
iastore
dup
bipush 9
79: .line 1851
bipush 21
iastore
dup
bipush 10
80: .line 1852
bipush 24
iastore
dup
bipush 11
81: .line 1853
bipush 26
iastore
dup
bipush 12
82: .line 1854
bipush 28
iastore
dup
bipush 13
83: .line 1855
bipush 31
iastore
dup
bipush 14
84: .line 1856
bipush 33
iastore
dup
bipush 15
85: .line 1857
bipush 35
iastore
dup
bipush 16
86: .line 1858
bipush 38
iastore
dup
bipush 17
87: .line 1859
bipush 40
iastore
dup
bipush 18
88: .line 1860
bipush 42
iastore
dup
bipush 19
89: .line 1861
bipush 45
iastore
dup
bipush 20
90: .line 1862
bipush 47
iastore
dup
bipush 21
91: .line 1863
bipush 49
iastore
dup
bipush 22
92: .line 1864
bipush 52
iastore
dup
bipush 23
93: .line 1865
bipush 54
iastore
dup
bipush 24
94: .line 1866
bipush 56
iastore
dup
bipush 25
95: .line 1867
bipush 59
iastore
dup
bipush 26
96: .line 1868
bipush 61
iastore
97: .line 1841
putstatic sun.misc.FloatingDecimal.n5bits:[I
98: .line 1871
bipush 8
newarray 5
dup
iconst_0
bipush 73
castore
dup
iconst_1
bipush 110
castore
dup
iconst_2
bipush 102
castore
dup
iconst_3
bipush 105
castore
dup
iconst_4
bipush 110
castore
dup
iconst_5
bipush 105
castore
dup
bipush 6
bipush 116
castore
dup
bipush 7
bipush 121
castore
putstatic sun.misc.FloatingDecimal.infinity:[C
99: .line 1872
iconst_3
newarray 5
dup
iconst_0
bipush 78
castore
dup
iconst_1
bipush 97
castore
dup
iconst_2
bipush 78
castore
putstatic sun.misc.FloatingDecimal.notANumber:[C
100: .line 1873
bipush 8
newarray 5
dup
iconst_0
bipush 48
castore
dup
iconst_1
bipush 48
castore
dup
iconst_2
bipush 48
castore
dup
iconst_3
bipush 48
castore
dup
iconst_4
bipush 48
castore
dup
iconst_5
bipush 48
castore
dup
bipush 6
bipush 48
castore
dup
bipush 7
bipush 48
castore
putstatic sun.misc.FloatingDecimal.zero:[C
101: .line 1880
aconst_null
putstatic sun.misc.FloatingDecimal.hexFloatPattern:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(boolean, int, char[], int, boolean);
descriptor: (ZI[CIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=6
start local 0 // sun.misc.FloatingDecimal this
start local 1 // boolean negSign
start local 2 // int decExponent
start local 3 // char[] digits
start local 4 // int n
start local 5 // boolean e
0: .line 45
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 41
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
2: .line 42
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.fromHex:Z
3: .line 43
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.roundDir:I
4: .line 47
aload 0 /* this */
iload 1 /* negSign */
putfield sun.misc.FloatingDecimal.isNegative:Z
5: .line 48
aload 0 /* this */
iload 5 /* e */
putfield sun.misc.FloatingDecimal.isExceptional:Z
6: .line 49
aload 0 /* this */
iload 2 /* decExponent */
putfield sun.misc.FloatingDecimal.decExponent:I
7: .line 50
aload 0 /* this */
aload 3 /* digits */
putfield sun.misc.FloatingDecimal.digits:[C
8: .line 51
aload 0 /* this */
iload 4 /* n */
putfield sun.misc.FloatingDecimal.nDigits:I
9: .line 52
return
end local 5 // boolean e
end local 4 // int n
end local 3 // char[] digits
end local 2 // int decExponent
end local 1 // boolean negSign
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/misc/FloatingDecimal;
0 10 1 negSign Z
0 10 2 decExponent I
0 10 3 digits [C
0 10 4 n I
0 10 5 e Z
MethodParameters:
Name Flags
negSign
decExponent
digits
n
e
private static int countBits(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 // long v
0: .line 110
lload 0 /* v */
lconst_0
lcmp
ifne 2
iconst_0
ireturn
1: .line 113
StackMap locals:
StackMap stack:
lload 0 /* v */
bipush 8
lshl
lstore 0 /* v */
2: .line 112
StackMap locals:
StackMap stack:
lload 0 /* v */
ldc -72057594037927936
land
lconst_0
lcmp
ifeq 1
3: .line 115
goto 5
4: .line 116
StackMap locals:
StackMap stack:
lload 0 /* v */
iconst_1
lshl
lstore 0 /* v */
5: .line 115
StackMap locals:
StackMap stack:
lload 0 /* v */
lconst_0
lcmp
ifgt 4
6: .line 119
iconst_0
istore 2 /* n */
start local 2 // int n
7: .line 120
goto 10
8: .line 121
StackMap locals: int
StackMap stack:
lload 0 /* v */
bipush 8
lshl
lstore 0 /* v */
9: .line 122
iinc 2 /* n */ 8
10: .line 120
StackMap locals:
StackMap stack:
lload 0 /* v */
ldc 72057594037927935
land
lconst_0
lcmp
ifne 8
11: .line 124
goto 14
12: .line 125
StackMap locals:
StackMap stack:
lload 0 /* v */
iconst_1
lshl
lstore 0 /* v */
13: .line 126
iinc 2 /* n */ 1
14: .line 124
StackMap locals:
StackMap stack:
lload 0 /* v */
lconst_0
lcmp
ifne 12
15: .line 128
iload 2 /* n */
ireturn
end local 2 // int n
end local 0 // long v
LocalVariableTable:
Start End Slot Name Signature
0 16 0 v J
7 16 2 n I
MethodParameters:
Name Flags
v
private static synchronized sun.misc.FDBigInt big5pow(int);
descriptor: (I)Lsun/misc/FDBigInt;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=5, args_size=1
start local 0 // int p
0: .line 138
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 1
iload 0 /* p */
ifge 1
new java.lang.AssertionError
dup
iload 0 /* p */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
1: .line 139
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
ifnonnull 4
2: .line 140
iload 0 /* p */
iconst_1
iadd
anewarray sun.misc.FDBigInt
putstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
3: .line 141
goto 8
StackMap locals:
StackMap stack:
4: getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
arraylength
iload 0 /* p */
if_icmpgt 8
5: .line 142
iload 0 /* p */
iconst_1
iadd
anewarray sun.misc.FDBigInt
astore 1 /* t */
start local 1 // sun.misc.FDBigInt[] t
6: .line 143
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iconst_0
aload 1 /* t */
iconst_0
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: .line 144
aload 1 /* t */
putstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
end local 1 // sun.misc.FDBigInt[] t
8: .line 146
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aaload
ifnull 10
9: .line 147
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aaload
areturn
10: .line 148
StackMap locals:
StackMap stack:
iload 0 /* p */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 12
11: .line 149
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
new sun.misc.FDBigInt
dup
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 0 /* p */
iaload
invokespecial sun.misc.FDBigInt.<init>:(I)V
dup_x2
aastore
areturn
12: .line 150
StackMap locals:
StackMap stack:
iload 0 /* p */
getstatic sun.misc.FloatingDecimal.long5pow:[J
arraylength
if_icmpge 14
13: .line 151
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
new sun.misc.FDBigInt
dup
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 0 /* p */
laload
invokespecial sun.misc.FDBigInt.<init>:(J)V
dup_x2
aastore
areturn
14: .line 160
StackMap locals:
StackMap stack:
iload 0 /* p */
iconst_1
ishr
istore 1 /* q */
start local 1 // int q
15: .line 161
iload 0 /* p */
iload 1 /* q */
isub
istore 2 /* r */
start local 2 // int r
16: .line 162
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 1 /* q */
aaload
astore 3 /* bigq */
start local 3 // sun.misc.FDBigInt bigq
17: .line 163
aload 3 /* bigq */
ifnonnull 19
18: .line 164
iload 1 /* q */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
astore 3 /* bigq */
19: .line 165
StackMap locals: int int sun.misc.FDBigInt
StackMap stack:
iload 2 /* r */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 21
20: .line 166
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aload 3 /* bigq */
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 2 /* r */
iaload
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
dup_x2
aastore
areturn
21: .line 168
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 2 /* r */
aaload
astore 4 /* bigr */
start local 4 // sun.misc.FDBigInt bigr
22: .line 169
aload 4 /* bigr */
ifnonnull 24
23: .line 170
iload 2 /* r */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
astore 4 /* bigr */
24: .line 171
StackMap locals: sun.misc.FDBigInt
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aload 3 /* bigq */
aload 4 /* bigr */
invokevirtual sun.misc.FDBigInt.mult:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
dup_x2
aastore
areturn
end local 4 // sun.misc.FDBigInt bigr
end local 3 // sun.misc.FDBigInt bigq
end local 2 // int r
end local 1 // int q
end local 0 // int p
LocalVariableTable:
Start End Slot Name Signature
0 25 0 p I
6 8 1 t [Lsun/misc/FDBigInt;
15 25 1 q I
16 25 2 r I
17 25 3 bigq Lsun/misc/FDBigInt;
22 25 4 bigr Lsun/misc/FDBigInt;
MethodParameters:
Name Flags
p
private static sun.misc.FDBigInt multPow52(sun.misc.FDBigInt, int, int);
descriptor: (Lsun/misc/FDBigInt;II)Lsun/misc/FDBigInt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.misc.FDBigInt v
start local 1 // int p5
start local 2 // int p2
0: .line 181
iload 1 /* p5 */
ifeq 5
1: .line 182
iload 1 /* p5 */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 4
2: .line 183
aload 0 /* v */
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 1 /* p5 */
iaload
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 0 /* v */
3: .line 184
goto 5
4: .line 185
StackMap locals:
StackMap stack:
aload 0 /* v */
iload 1 /* p5 */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
invokevirtual sun.misc.FDBigInt.mult:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
astore 0 /* v */
5: .line 188
StackMap locals:
StackMap stack:
iload 2 /* p2 */
ifeq 7
6: .line 189
aload 0 /* v */
iload 2 /* p2 */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
7: .line 191
StackMap locals:
StackMap stack:
aload 0 /* v */
areturn
end local 2 // int p2
end local 1 // int p5
end local 0 // sun.misc.FDBigInt v
LocalVariableTable:
Start End Slot Name Signature
0 8 0 v Lsun/misc/FDBigInt;
0 8 1 p5 I
0 8 2 p2 I
MethodParameters:
Name Flags
v
p5
p2
private static sun.misc.FDBigInt constructPow52(int, int);
descriptor: (II)Lsun/misc/FDBigInt;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 // int p5
start local 1 // int p2
0: .line 199
new sun.misc.FDBigInt
dup
iload 0 /* p5 */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
invokespecial sun.misc.FDBigInt.<init>:(Lsun/misc/FDBigInt;)V
astore 2 /* v */
start local 2 // sun.misc.FDBigInt v
1: .line 200
iload 1 /* p2 */
ifeq 3
2: .line 201
aload 2 /* v */
iload 1 /* p2 */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
3: .line 203
StackMap locals: sun.misc.FDBigInt
StackMap stack:
aload 2 /* v */
areturn
end local 2 // sun.misc.FDBigInt v
end local 1 // int p2
end local 0 // int p5
LocalVariableTable:
Start End Slot Name Signature
0 4 0 p5 I
0 4 1 p2 I
1 4 2 v Lsun/misc/FDBigInt;
MethodParameters:
Name Flags
p5
p2
private sun.misc.FDBigInt doubleToBigInt(double);
descriptor: (D)Lsun/misc/FDBigInt;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // double dval
0: .line 218
dload 1 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
ldc 9223372036854775807
land
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 219
lload 3 /* lbits */
bipush 52
lushr
l2i
istore 5 /* binexp */
start local 5 // int binexp
2: .line 220
lload 3 /* lbits */
ldc 4503599627370495
land
lstore 3 /* lbits */
3: .line 221
iload 5 /* binexp */
ifle 6
4: .line 222
lload 3 /* lbits */
ldc 4503599627370496
lor
lstore 3 /* lbits */
5: .line 223
goto 12
6: .line 224
StackMap locals: long int
StackMap stack:
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 7
lload 3 /* lbits */
lconst_0
lcmp
ifne 7
new java.lang.AssertionError
dup
lload 3 /* lbits */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
7: .line 225
StackMap locals:
StackMap stack:
iinc 5 /* binexp */ 1
8: .line 226
goto 11
9: .line 227
StackMap locals:
StackMap stack:
lload 3 /* lbits */
iconst_1
lshl
lstore 3 /* lbits */
10: .line 228
iinc 5 /* binexp */ -1
11: .line 226
StackMap locals:
StackMap stack:
lload 3 /* lbits */
ldc 4503599627370496
land
lconst_0
lcmp
ifeq 9
12: .line 231
StackMap locals:
StackMap stack:
iinc 5 /* binexp */ -1023
13: .line 232
lload 3 /* lbits */
invokestatic sun.misc.FloatingDecimal.countBits:(J)I
istore 6 /* nbits */
start local 6 // int nbits
14: .line 237
bipush 53
iload 6 /* nbits */
isub
istore 7 /* lowOrderZeros */
start local 7 // int lowOrderZeros
15: .line 238
lload 3 /* lbits */
iload 7 /* lowOrderZeros */
lushr
lstore 3 /* lbits */
16: .line 240
aload 0 /* this */
iload 5 /* binexp */
iconst_1
iadd
iload 6 /* nbits */
isub
putfield sun.misc.FloatingDecimal.bigIntExp:I
17: .line 241
aload 0 /* this */
iload 6 /* nbits */
putfield sun.misc.FloatingDecimal.bigIntNBits:I
18: .line 242
new sun.misc.FDBigInt
dup
lload 3 /* lbits */
invokespecial sun.misc.FDBigInt.<init>:(J)V
areturn
end local 7 // int lowOrderZeros
end local 6 // int nbits
end local 5 // int binexp
end local 3 // long lbits
end local 1 // double dval
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/misc/FloatingDecimal;
0 19 1 dval D
1 19 3 lbits J
2 19 5 binexp I
14 19 6 nbits I
15 19 7 lowOrderZeros I
MethodParameters:
Name Flags
dval
private static double ulp(double, boolean);
descriptor: (DZ)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 // double dval
start local 2 // boolean subtracting
0: .line 252
dload 0 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
ldc 9223372036854775807
land
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 253
lload 3 /* lbits */
bipush 52
lushr
l2i
istore 5 /* binexp */
start local 5 // int binexp
2: .line 255
iload 2 /* subtracting */
ifeq 4
iload 5 /* binexp */
bipush 52
if_icmplt 4
lload 3 /* lbits */
ldc 4503599627370495
land
lconst_0
lcmp
ifne 4
3: .line 258
iinc 5 /* binexp */ -1
4: .line 260
StackMap locals: long int
StackMap stack:
iload 5 /* binexp */
bipush 52
if_icmple 7
5: .line 261
iload 5 /* binexp */
bipush 52
isub
i2l
bipush 52
lshl
invokestatic java.lang.Double.longBitsToDouble:(J)D
dstore 6 /* ulpval */
start local 6 // double ulpval
6: .line 262
goto 11
end local 6 // double ulpval
StackMap locals:
StackMap stack:
7: iload 5 /* binexp */
ifne 10
8: .line 263
ldc 4.9E-324
dstore 6 /* ulpval */
start local 6 // double ulpval
9: .line 264
goto 11
end local 6 // double ulpval
10: .line 265
StackMap locals:
StackMap stack:
lconst_1
iload 5 /* binexp */
iconst_1
isub
lshl
invokestatic java.lang.Double.longBitsToDouble:(J)D
dstore 6 /* ulpval */
start local 6 // double ulpval
11: .line 267
StackMap locals: double
StackMap stack:
iload 2 /* subtracting */
ifeq 12
dload 6 /* ulpval */
dneg
dstore 6 /* ulpval */
12: .line 269
StackMap locals:
StackMap stack:
dload 6 /* ulpval */
dreturn
end local 6 // double ulpval
end local 5 // int binexp
end local 3 // long lbits
end local 2 // boolean subtracting
end local 0 // double dval
LocalVariableTable:
Start End Slot Name Signature
0 13 0 dval D
0 13 2 subtracting Z
1 13 3 lbits J
2 13 5 binexp I
6 7 6 ulpval D
9 10 6 ulpval D
11 13 6 ulpval D
MethodParameters:
Name Flags
dval
subtracting
float stickyRound(double);
descriptor: (D)F
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // double dval
0: .line 283
dload 1 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 284
lload 3 /* lbits */
ldc 9218868437227405312
land
lstore 5 /* binexp */
start local 5 // long binexp
2: .line 285
lload 5 /* binexp */
lconst_0
lcmp
ifeq 3
lload 5 /* binexp */
ldc 9218868437227405312
lcmp
ifne 4
3: .line 288
StackMap locals: long long
StackMap stack:
dload 1 /* dval */
d2f
freturn
4: .line 290
StackMap locals:
StackMap stack:
lload 3 /* lbits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.roundDir:I
i2l
ladd
lstore 3 /* lbits */
5: .line 291
lload 3 /* lbits */
invokestatic java.lang.Double.longBitsToDouble:(J)D
d2f
freturn
end local 5 // long binexp
end local 3 // long lbits
end local 1 // double dval
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/misc/FloatingDecimal;
0 6 1 dval D
1 6 3 lbits J
2 6 5 binexp J
MethodParameters:
Name Flags
dval
private void developLongDigits(int, long, long);
descriptor: (IJJ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=4
start local 0 // sun.misc.FloatingDecimal this
start local 1 // int decExponent
start local 2 // long lvalue
start local 4 // long insignificant
0: .line 320
iconst_0
istore 10 /* i */
start local 10 // int i
1: goto 4
2: .line 321
StackMap locals: sun.misc.FloatingDecimal int long long top top top top int
StackMap stack:
lload 4 /* insignificant */
ldc 10
ldiv
lstore 4 /* insignificant */
3: .line 320
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
4: lload 4 /* insignificant */
ldc 10
lcmp
ifge 2
5: .line 322
iload 10 /* i */
ifeq 12
6: .line 323
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 10 /* i */
laload
iload 10 /* i */
lshl
lstore 11 /* pow10 */
start local 11 // long pow10
7: .line 324
lload 2 /* lvalue */
lload 11 /* pow10 */
lrem
lstore 13 /* residue */
start local 13 // long residue
8: .line 325
lload 2 /* lvalue */
lload 11 /* pow10 */
ldiv
lstore 2 /* lvalue */
9: .line 326
iload 1 /* decExponent */
iload 10 /* i */
iadd
istore 1 /* decExponent */
10: .line 327
lload 13 /* residue */
lload 11 /* pow10 */
iconst_1
lshr
lcmp
iflt 12
11: .line 329
lload 2 /* lvalue */
lconst_1
ladd
lstore 2 /* lvalue */
end local 13 // long residue
end local 11 // long pow10
12: .line 332
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
ldc 2147483647
lcmp
ifgt 33
13: .line 333
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 14
lload 2 /* lvalue */
lconst_0
lcmp
ifgt 14
new java.lang.AssertionError
dup
lload 2 /* lvalue */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
14: .line 336
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
l2i
istore 11 /* ivalue */
start local 11 // int ivalue
15: .line 337
bipush 10
istore 7 /* ndigits */
start local 7 // int ndigits
16: .line 338
getstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast char[]
astore 6 /* digits */
start local 6 // char[] digits
17: .line 339
iload 7 /* ndigits */
iconst_1
isub
istore 8 /* digitno */
start local 8 // int digitno
18: .line 340
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
start local 9 // int c
19: .line 341
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
20: .line 342
goto 24
21: .line 343
StackMap locals: sun.misc.FloatingDecimal int long long char[] int int int int int
StackMap stack:
iinc 1 /* decExponent */ 1
22: .line 344
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
23: .line 345
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
24: .line 342
StackMap locals:
StackMap stack:
iload 9 /* c */
ifeq 21
25: .line 347
goto 30
26: .line 348
StackMap locals:
StackMap stack:
aload 6 /* digits */
iload 8 /* digitno */
iinc 8 /* digitno */ -1
iload 9 /* c */
bipush 48
iadd
i2c
castore
27: .line 349
iinc 1 /* decExponent */ 1
28: .line 350
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
29: .line 351
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
30: .line 347
StackMap locals:
StackMap stack:
iload 11 /* ivalue */
ifne 26
31: .line 353
aload 6 /* digits */
iload 8 /* digitno */
iload 9 /* c */
bipush 48
iadd
i2c
castore
end local 11 // int ivalue
32: .line 354
goto 50
end local 9 // int c
end local 8 // int digitno
end local 7 // int ndigits
end local 6 // char[] digits
33: .line 357
StackMap locals: sun.misc.FloatingDecimal int long long top top top top int
StackMap stack:
bipush 20
istore 7 /* ndigits */
start local 7 // int ndigits
34: .line 358
getstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast char[]
astore 6 /* digits */
start local 6 // char[] digits
35: .line 359
iload 7 /* ndigits */
iconst_1
isub
istore 8 /* digitno */
start local 8 // int digitno
36: .line 360
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
start local 9 // int c
37: .line 361
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
38: .line 362
goto 42
39: .line 363
StackMap locals: sun.misc.FloatingDecimal int long long char[] int int int int
StackMap stack:
iinc 1 /* decExponent */ 1
40: .line 364
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
41: .line 365
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
42: .line 362
StackMap locals:
StackMap stack:
iload 9 /* c */
ifeq 39
43: .line 367
goto 48
44: .line 368
StackMap locals:
StackMap stack:
aload 6 /* digits */
iload 8 /* digitno */
iinc 8 /* digitno */ -1
iload 9 /* c */
bipush 48
iadd
i2c
castore
45: .line 369
iinc 1 /* decExponent */ 1
46: .line 370
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
47: .line 371
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
48: .line 367
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
lconst_0
lcmp
ifne 44
49: .line 373
aload 6 /* digits */
iload 8 /* digitno */
iload 9 /* c */
bipush 48
iadd
i2c
castore
50: .line 376
StackMap locals:
StackMap stack:
iload 7 /* ndigits */
iload 8 /* digitno */
isub
istore 7 /* ndigits */
51: .line 377
iload 7 /* ndigits */
newarray 5
astore 11 /* result */
start local 11 // char[] result
52: .line 378
aload 6 /* digits */
iload 8 /* digitno */
aload 11 /* result */
iconst_0
iload 7 /* ndigits */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
53: .line 379
aload 0 /* this */
aload 11 /* result */
putfield sun.misc.FloatingDecimal.digits:[C
54: .line 380
aload 0 /* this */
iload 1 /* decExponent */
iconst_1
iadd
putfield sun.misc.FloatingDecimal.decExponent:I
55: .line 381
aload 0 /* this */
iload 7 /* ndigits */
putfield sun.misc.FloatingDecimal.nDigits:I
56: .line 382
return
end local 11 // char[] result
end local 10 // int i
end local 9 // int c
end local 8 // int digitno
end local 7 // int ndigits
end local 6 // char[] digits
end local 4 // long insignificant
end local 2 // long lvalue
end local 1 // int decExponent
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Lsun/misc/FloatingDecimal;
0 57 1 decExponent I
0 57 2 lvalue J
0 57 4 insignificant J
17 33 6 digits [C
35 57 6 digits [C
16 33 7 ndigits I
34 57 7 ndigits I
18 33 8 digitno I
36 57 8 digitno I
19 33 9 c I
37 57 9 c I
1 57 10 i I
7 12 11 pow10 J
8 12 13 residue J
15 32 11 ivalue I
52 57 11 result [C
MethodParameters:
Name Flags
decExponent
lvalue
insignificant
private void roundup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 394
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
isub
dup
istore 1 /* i */
start local 1 // int i
1: caload
istore 2 /* q */
start local 2 // int q
2: .line 395
iload 2 /* q */
bipush 57
if_icmpne 11
3: .line 396
goto 6
4: .line 397
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 1 /* i */
bipush 48
castore
5: .line 398
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iinc 1 /* i */ -1
iload 1 /* i */
caload
istore 2 /* q */
6: .line 396
StackMap locals:
StackMap stack:
iload 2 /* q */
bipush 57
if_icmpne 7
iload 1 /* i */
ifgt 4
7: .line 400
StackMap locals:
StackMap stack:
iload 2 /* q */
bipush 57
if_icmpne 11
8: .line 402
aload 0 /* this */
dup
getfield sun.misc.FloatingDecimal.decExponent:I
iconst_1
iadd
putfield sun.misc.FloatingDecimal.decExponent:I
9: .line 403
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
bipush 49
castore
10: .line 404
return
11: .line 408
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 1 /* i */
iload 2 /* q */
iconst_1
iadd
i2c
castore
12: .line 409
return
end local 2 // int q
end local 1 // int i
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/misc/FloatingDecimal;
1 13 1 i I
2 13 2 q I
public void <init>(double);
descriptor: (D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // double d
0: .line 414
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 41
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
2: .line 42
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.fromHex:Z
3: .line 43
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.roundDir:I
4: .line 416
dload 1 /* d */
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 3 /* dBits */
start local 3 // long dBits
5: .line 422
lload 3 /* dBits */
ldc -9223372036854775808
land
lconst_0
lcmp
ifeq 9
6: .line 423
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isNegative:Z
7: .line 424
lload 3 /* dBits */
ldc -9223372036854775808
lxor
lstore 3 /* dBits */
8: .line 425
goto 10
9: .line 426
StackMap locals: sun.misc.FloatingDecimal double long
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
10: .line 430
StackMap locals:
StackMap stack:
lload 3 /* dBits */
ldc 9218868437227405312
land
bipush 52
lshr
l2i
istore 7 /* binExp */
start local 7 // int binExp
11: .line 431
lload 3 /* dBits */
ldc 4503599627370495
land
lstore 5 /* fractBits */
start local 5 // long fractBits
12: .line 432
iload 7 /* binExp */
sipush 2047
if_icmpne 21
13: .line 433
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isExceptional:Z
14: .line 434
lload 5 /* fractBits */
lconst_0
lcmp
ifne 17
15: .line 435
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.infinity:[C
putfield sun.misc.FloatingDecimal.digits:[C
16: .line 436
goto 19
17: .line 437
StackMap locals: long int
StackMap stack:
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.notANumber:[C
putfield sun.misc.FloatingDecimal.digits:[C
18: .line 438
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
19: .line 440
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
arraylength
putfield sun.misc.FloatingDecimal.nDigits:I
20: .line 441
return
21: .line 443
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isExceptional:Z
22: .line 448
iload 7 /* binExp */
ifne 34
23: .line 449
lload 5 /* fractBits */
lconst_0
lcmp
ifne 30
24: .line 451
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.decExponent:I
25: .line 452
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.zero:[C
putfield sun.misc.FloatingDecimal.digits:[C
26: .line 453
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.nDigits:I
27: .line 454
return
28: .line 457
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
iconst_1
lshl
lstore 5 /* fractBits */
29: .line 458
iinc 7 /* binExp */ -1
30: .line 456
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
ldc 4503599627370496
land
lconst_0
lcmp
ifeq 28
31: .line 460
bipush 52
iload 7 /* binExp */
iadd
iconst_1
iadd
istore 8 /* nSignificantBits */
start local 8 // int nSignificantBits
32: .line 461
iinc 7 /* binExp */ 1
33: .line 462
goto 36
end local 8 // int nSignificantBits
34: .line 463
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
ldc 4503599627370496
lor
lstore 5 /* fractBits */
35: .line 464
bipush 53
istore 8 /* nSignificantBits */
start local 8 // int nSignificantBits
36: .line 466
StackMap locals: int
StackMap stack:
iinc 7 /* binExp */ -1023
37: .line 468
aload 0 /* this */
iload 7 /* binExp */
lload 5 /* fractBits */
iload 8 /* nSignificantBits */
invokevirtual sun.misc.FloatingDecimal.dtoa:(IJI)V
38: .line 469
return
end local 8 // int nSignificantBits
end local 7 // int binExp
end local 5 // long fractBits
end local 3 // long dBits
end local 1 // double d
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/misc/FloatingDecimal;
0 39 1 d D
5 39 3 dBits J
12 39 5 fractBits J
11 39 7 binExp I
32 34 8 nSignificantBits I
36 39 8 nSignificantBits I
MethodParameters:
Name Flags
d
public void <init>(float);
descriptor: (F)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // float f
0: .line 474
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 41
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
2: .line 42
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.fromHex:Z
3: .line 43
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.roundDir:I
4: .line 476
fload 1 /* f */
invokestatic java.lang.Float.floatToIntBits:(F)I
istore 2 /* fBits */
start local 2 // int fBits
5: .line 482
iload 2 /* fBits */
ldc -2147483648
iand
ifeq 9
6: .line 483
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isNegative:Z
7: .line 484
iload 2 /* fBits */
ldc -2147483648
ixor
istore 2 /* fBits */
8: .line 485
goto 10
9: .line 486
StackMap locals: sun.misc.FloatingDecimal float int
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
10: .line 490
StackMap locals:
StackMap stack:
iload 2 /* fBits */
ldc 2139095040
iand
bipush 23
ishr
istore 4 /* binExp */
start local 4 // int binExp
11: .line 491
iload 2 /* fBits */
ldc 8388607
iand
istore 3 /* fractBits */
start local 3 // int fractBits
12: .line 492
iload 4 /* binExp */
sipush 255
if_icmpne 21
13: .line 493
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isExceptional:Z
14: .line 494
iload 3 /* fractBits */
i2l
lconst_0
lcmp
ifne 17
15: .line 495
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.infinity:[C
putfield sun.misc.FloatingDecimal.digits:[C
16: .line 496
goto 19
17: .line 497
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.notANumber:[C
putfield sun.misc.FloatingDecimal.digits:[C
18: .line 498
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
19: .line 500
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
arraylength
putfield sun.misc.FloatingDecimal.nDigits:I
20: .line 501
return
21: .line 503
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isExceptional:Z
22: .line 508
iload 4 /* binExp */
ifne 34
23: .line 509
iload 3 /* fractBits */
ifne 30
24: .line 511
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.decExponent:I
25: .line 512
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.zero:[C
putfield sun.misc.FloatingDecimal.digits:[C
26: .line 513
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.nDigits:I
27: .line 514
return
28: .line 517
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
iconst_1
ishl
istore 3 /* fractBits */
29: .line 518
iinc 4 /* binExp */ -1
30: .line 516
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
ldc 8388608
iand
ifeq 28
31: .line 520
bipush 23
iload 4 /* binExp */
iadd
iconst_1
iadd
istore 5 /* nSignificantBits */
start local 5 // int nSignificantBits
32: .line 521
iinc 4 /* binExp */ 1
33: .line 522
goto 36
end local 5 // int nSignificantBits
34: .line 523
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
ldc 8388608
ior
istore 3 /* fractBits */
35: .line 524
bipush 24
istore 5 /* nSignificantBits */
start local 5 // int nSignificantBits
36: .line 526
StackMap locals: int
StackMap stack:
iinc 4 /* binExp */ -127
37: .line 528
aload 0 /* this */
iload 4 /* binExp */
iload 3 /* fractBits */
i2l
bipush 29
lshl
iload 5 /* nSignificantBits */
invokevirtual sun.misc.FloatingDecimal.dtoa:(IJI)V
38: .line 529
return
end local 5 // int nSignificantBits
end local 4 // int binExp
end local 3 // int fractBits
end local 2 // int fBits
end local 1 // float f
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/misc/FloatingDecimal;
0 39 1 f F
5 39 2 fBits I
12 39 3 fractBits I
11 39 4 binExp I
32 34 5 nSignificantBits I
36 39 5 nSignificantBits I
MethodParameters:
Name Flags
f
private void dtoa(int, long, int);
descriptor: (IJI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=37, args_size=4
start local 0 // sun.misc.FloatingDecimal this
start local 1 // int binExp
start local 2 // long fractBits
start local 4 // int nSignificantBits
0: .line 541
lload 2 /* fractBits */
invokestatic sun.misc.FloatingDecimal.countBits:(J)I
istore 5 /* nFractBits */
start local 5 // int nFractBits
1: .line 542
iconst_0
iload 5 /* nFractBits */
iload 1 /* binExp */
isub
iconst_1
isub
invokestatic java.lang.Math.max:(II)I
istore 6 /* nTinyBits */
start local 6 // int nTinyBits
2: .line 543
iload 1 /* binExp */
bipush 62
if_icmpgt 15
iload 1 /* binExp */
bipush -21
if_icmplt 15
3: .line 547
iload 6 /* nTinyBits */
getstatic sun.misc.FloatingDecimal.long5pow:[J
arraylength
if_icmpge 15
iload 5 /* nFractBits */
getstatic sun.misc.FloatingDecimal.n5bits:[I
iload 6 /* nTinyBits */
iaload
iadd
bipush 64
if_icmpge 15
4: .line 564
iload 6 /* nTinyBits */
ifne 15
5: .line 565
iload 1 /* binExp */
iload 4 /* nSignificantBits */
if_icmple 8
6: .line 566
lconst_1
iload 1 /* binExp */
iload 4 /* nSignificantBits */
isub
iconst_1
isub
lshl
lstore 8 /* halfULP */
start local 8 // long halfULP
7: .line 567
goto 9
end local 8 // long halfULP
8: .line 568
StackMap locals: int int
StackMap stack:
lconst_0
lstore 8 /* halfULP */
start local 8 // long halfULP
9: .line 570
StackMap locals: sun.misc.FloatingDecimal int long int int int top long
StackMap stack:
iload 1 /* binExp */
bipush 52
if_icmplt 12
10: .line 571
lload 2 /* fractBits */
iload 1 /* binExp */
bipush 52
isub
lshl
lstore 2 /* fractBits */
11: .line 572
goto 13
12: .line 573
StackMap locals:
StackMap stack:
lload 2 /* fractBits */
bipush 52
iload 1 /* binExp */
isub
lushr
lstore 2 /* fractBits */
13: .line 575
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
lload 2 /* fractBits */
lload 8 /* halfULP */
invokevirtual sun.misc.FloatingDecimal.developLongDigits:(IJJ)V
14: .line 576
return
end local 8 // long halfULP
15: .line 628
StackMap locals: sun.misc.FloatingDecimal int long int int int
StackMap stack:
ldc 4607182418800017408
lload 2 /* fractBits */
ldc -4503599627370497
land
lor
16: .line 627
invokestatic java.lang.Double.longBitsToDouble:(J)D
dstore 8 /* d2 */
start local 8 // double d2
17: .line 630
dload 8 /* d2 */
ldc 1.5
dsub
ldc 0.289529654
dmul
ldc 0.176091259
dadd
iload 1 /* binExp */
i2d
ldc 0.301029995663981
dmul
dadd
18: .line 629
invokestatic java.lang.Math.floor:(D)D
d2i
istore 7 /* decExp */
start local 7 // int decExp
19: .line 638
iconst_0
iload 7 /* decExp */
ineg
invokestatic java.lang.Math.max:(II)I
istore 11 /* B5 */
start local 11 // int B5
20: .line 639
iload 11 /* B5 */
iload 6 /* nTinyBits */
iadd
iload 1 /* binExp */
iadd
istore 10 /* B2 */
start local 10 // int B2
21: .line 641
iconst_0
iload 7 /* decExp */
invokestatic java.lang.Math.max:(II)I
istore 13 /* S5 */
start local 13 // int S5
22: .line 642
iload 13 /* S5 */
iload 6 /* nTinyBits */
iadd
istore 12 /* S2 */
start local 12 // int S2
23: .line 644
iload 11 /* B5 */
istore 15 /* M5 */
start local 15 // int M5
24: .line 645
iload 10 /* B2 */
iload 4 /* nSignificantBits */
isub
istore 14 /* M2 */
start local 14 // int M2
25: .line 655
lload 2 /* fractBits */
bipush 53
iload 5 /* nFractBits */
isub
lushr
lstore 2 /* fractBits */
26: .line 656
iload 10 /* B2 */
iload 5 /* nFractBits */
iconst_1
isub
isub
istore 10 /* B2 */
27: .line 657
iload 10 /* B2 */
iload 12 /* S2 */
invokestatic java.lang.Math.min:(II)I
istore 21 /* common2factor */
start local 21 // int common2factor
28: .line 658
iload 10 /* B2 */
iload 21 /* common2factor */
isub
istore 10 /* B2 */
29: .line 659
iload 12 /* S2 */
iload 21 /* common2factor */
isub
istore 12 /* S2 */
30: .line 660
iload 14 /* M2 */
iload 21 /* common2factor */
isub
istore 14 /* M2 */
31: .line 668
iload 5 /* nFractBits */
iconst_1
if_icmpne 33
32: .line 669
iinc 14 /* M2 */ -1
33: .line 671
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int top top top top top int
StackMap stack:
iload 14 /* M2 */
ifge 37
34: .line 675
iload 10 /* B2 */
iload 14 /* M2 */
isub
istore 10 /* B2 */
35: .line 676
iload 12 /* S2 */
iload 14 /* M2 */
isub
istore 12 /* S2 */
36: .line 677
iconst_0
istore 14 /* M2 */
37: .line 687
StackMap locals:
StackMap stack:
aload 0 /* this */
bipush 18
newarray 5
dup_x1
putfield sun.misc.FloatingDecimal.digits:[C
astore 22 /* digits */
start local 22 // char[] digits
38: .line 688
iconst_0
istore 23 /* ndigit */
start local 23 // int ndigit
39: .line 708
iload 5 /* nFractBits */
iload 10 /* B2 */
iadd
iload 11 /* B5 */
getstatic sun.misc.FloatingDecimal.n5bits:[I
arraylength
if_icmpge 40
getstatic sun.misc.FloatingDecimal.n5bits:[I
iload 11 /* B5 */
iaload
goto 41
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int top top top top top int char[] int
StackMap stack: int
40: iload 11 /* B5 */
iconst_3
imul
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int top top top top top int char[] int
StackMap stack: int int
41: iadd
istore 16 /* Bbits */
start local 16 // int Bbits
42: .line 709
iload 12 /* S2 */
iconst_1
iadd
iload 13 /* S5 */
iconst_1
iadd
getstatic sun.misc.FloatingDecimal.n5bits:[I
arraylength
if_icmpge 43
getstatic sun.misc.FloatingDecimal.n5bits:[I
iload 13 /* S5 */
iconst_1
iadd
iaload
goto 44
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int top top top top int char[] int
StackMap stack: int
43: iload 13 /* S5 */
iconst_1
iadd
iconst_3
imul
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int top top top top int char[] int
StackMap stack: int int
44: iadd
istore 17 /* tenSbits */
start local 17 // int tenSbits
45: .line 710
iload 16 /* Bbits */
bipush 64
if_icmpge 127
iload 17 /* tenSbits */
bipush 64
if_icmpge 127
46: .line 711
iload 16 /* Bbits */
bipush 32
if_icmpge 87
iload 17 /* tenSbits */
bipush 32
if_icmpge 87
47: .line 713
lload 2 /* fractBits */
l2i
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 11 /* B5 */
iaload
imul
iload 10 /* B2 */
ishl
istore 29 /* b */
start local 29 // int b
48: .line 714
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 13 /* S5 */
iaload
iload 12 /* S2 */
ishl
istore 30 /* s */
start local 30 // int s
49: .line 715
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 15 /* M5 */
iaload
iload 14 /* M2 */
ishl
istore 31 /* m */
start local 31 // int m
50: .line 716
iload 30 /* s */
bipush 10
imul
istore 32 /* tens */
start local 32 // int tens
51: .line 722
iconst_0
istore 23 /* ndigit */
52: .line 723
iload 29 /* b */
iload 30 /* s */
idiv
istore 28 /* q */
start local 28 // int q
53: .line 724
bipush 10
iload 29 /* b */
iload 30 /* s */
irem
imul
istore 29 /* b */
54: .line 725
iload 31 /* m */
bipush 10
imul
istore 31 /* m */
55: .line 726
iload 29 /* b */
iload 31 /* m */
if_icmpge 56
iconst_1
goto 57
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int top top top top int int int int int
StackMap stack:
56: iconst_0
StackMap locals:
StackMap stack: int
57: istore 24 /* low */
start local 24 // boolean low
58: .line 727
iload 29 /* b */
iload 31 /* m */
iadd
iload 32 /* tens */
if_icmple 59
iconst_1
goto 60
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int int top top top int int int int int
StackMap stack:
59: iconst_0
StackMap locals:
StackMap stack: int
60: istore 25 /* high */
start local 25 // boolean high
61: .line 728
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 62
iload 28 /* q */
bipush 10
if_icmplt 62
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
62: .line 729
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int int int top top int int int int int
StackMap stack:
iload 28 /* q */
ifne 65
iload 25 /* high */
ifne 65
63: .line 731
iinc 7 /* decExp */ -1
64: .line 732
goto 66
65: .line 733
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
66: .line 741
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 67
iload 7 /* decExp */
bipush 8
if_icmplt 84
67: .line 742
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
68: .line 744
goto 84
69: .line 745
StackMap locals:
StackMap stack:
iload 29 /* b */
iload 30 /* s */
idiv
istore 28 /* q */
70: .line 746
bipush 10
iload 29 /* b */
iload 30 /* s */
irem
imul
istore 29 /* b */
71: .line 747
iload 31 /* m */
bipush 10
imul
istore 31 /* m */
72: .line 748
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 73
iload 28 /* q */
bipush 10
if_icmplt 73
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
73: .line 749
StackMap locals:
StackMap stack:
iload 31 /* m */
i2l
lconst_0
lcmp
ifle 81
74: .line 750
iload 29 /* b */
iload 31 /* m */
if_icmpge 75
iconst_1
goto 76
StackMap locals:
StackMap stack:
75: iconst_0
StackMap locals:
StackMap stack: int
76: istore 24 /* low */
77: .line 751
iload 29 /* b */
iload 31 /* m */
iadd
iload 32 /* tens */
if_icmple 78
iconst_1
goto 79
StackMap locals:
StackMap stack:
78: iconst_0
StackMap locals:
StackMap stack: int
79: istore 25 /* high */
80: .line 752
goto 83
81: .line 758
StackMap locals:
StackMap stack:
iconst_1
istore 24 /* low */
82: .line 759
iconst_1
istore 25 /* high */
83: .line 761
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
84: .line 744
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 85
iload 25 /* high */
ifeq 69
85: .line 763
StackMap locals:
StackMap stack:
iload 29 /* b */
iconst_1
ishl
iload 32 /* tens */
isub
i2l
lstore 26 /* lowDigitDifference */
end local 32 // int tens
end local 31 // int m
end local 30 // int s
end local 29 // int b
start local 26 // long lowDigitDifference
86: .line 764
goto 167
end local 28 // int q
end local 26 // long lowDigitDifference
end local 25 // boolean high
end local 24 // boolean low
87: .line 766
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int
StackMap stack:
lload 2 /* fractBits */
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 11 /* B5 */
laload
lmul
iload 10 /* B2 */
lshl
lstore 29 /* b */
start local 29 // long b
88: .line 767
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 13 /* S5 */
laload
iload 12 /* S2 */
lshl
lstore 31 /* s */
start local 31 // long s
89: .line 768
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 15 /* M5 */
laload
iload 14 /* M2 */
lshl
lstore 33 /* m */
start local 33 // long m
90: .line 769
lload 31 /* s */
ldc 10
lmul
lstore 35 /* tens */
start local 35 // long tens
91: .line 775
iconst_0
istore 23 /* ndigit */
92: .line 776
lload 29 /* b */
lload 31 /* s */
ldiv
l2i
istore 28 /* q */
start local 28 // int q
93: .line 777
ldc 10
lload 29 /* b */
lload 31 /* s */
lrem
lmul
lstore 29 /* b */
94: .line 778
lload 33 /* m */
ldc 10
lmul
lstore 33 /* m */
95: .line 779
lload 29 /* b */
lload 33 /* m */
lcmp
ifge 96
iconst_1
goto 97
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int top top top top int long long long long
StackMap stack:
96: iconst_0
StackMap locals:
StackMap stack: int
97: istore 24 /* low */
start local 24 // boolean low
98: .line 780
lload 29 /* b */
lload 33 /* m */
ladd
lload 35 /* tens */
lcmp
ifle 99
iconst_1
goto 100
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int int top top top int long long long long
StackMap stack:
99: iconst_0
StackMap locals:
StackMap stack: int
100: istore 25 /* high */
start local 25 // boolean high
101: .line 781
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 102
iload 28 /* q */
bipush 10
if_icmplt 102
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
102: .line 782
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int int int top top int long long long long
StackMap stack:
iload 28 /* q */
ifne 105
iload 25 /* high */
ifne 105
103: .line 784
iinc 7 /* decExp */ -1
104: .line 785
goto 106
105: .line 786
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
106: .line 794
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 107
iload 7 /* decExp */
bipush 8
if_icmplt 124
107: .line 795
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
108: .line 797
goto 124
109: .line 798
StackMap locals:
StackMap stack:
lload 29 /* b */
lload 31 /* s */
ldiv
l2i
istore 28 /* q */
110: .line 799
ldc 10
lload 29 /* b */
lload 31 /* s */
lrem
lmul
lstore 29 /* b */
111: .line 800
lload 33 /* m */
ldc 10
lmul
lstore 33 /* m */
112: .line 801
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 113
iload 28 /* q */
bipush 10
if_icmplt 113
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
113: .line 802
StackMap locals:
StackMap stack:
lload 33 /* m */
lconst_0
lcmp
ifle 121
114: .line 803
lload 29 /* b */
lload 33 /* m */
lcmp
ifge 115
iconst_1
goto 116
StackMap locals:
StackMap stack:
115: iconst_0
StackMap locals:
StackMap stack: int
116: istore 24 /* low */
117: .line 804
lload 29 /* b */
lload 33 /* m */
ladd
lload 35 /* tens */
lcmp
ifle 118
iconst_1
goto 119
StackMap locals:
StackMap stack:
118: iconst_0
StackMap locals:
StackMap stack: int
119: istore 25 /* high */
120: .line 805
goto 123
121: .line 811
StackMap locals:
StackMap stack:
iconst_1
istore 24 /* low */
122: .line 812
iconst_1
istore 25 /* high */
123: .line 814
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
124: .line 797
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 125
iload 25 /* high */
ifeq 109
125: .line 816
StackMap locals:
StackMap stack:
lload 29 /* b */
iconst_1
lshl
lload 35 /* tens */
lsub
lstore 26 /* lowDigitDifference */
end local 35 // long tens
end local 33 // long m
end local 31 // long s
end local 29 // long b
start local 26 // long lowDigitDifference
126: .line 818
goto 167
end local 28 // int q
end local 26 // long lowDigitDifference
end local 25 // boolean high
end local 24 // boolean low
127: .line 826
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int
StackMap stack:
new sun.misc.FDBigInt
dup
lload 2 /* fractBits */
invokespecial sun.misc.FDBigInt.<init>:(J)V
iload 11 /* B5 */
iload 10 /* B2 */
invokestatic sun.misc.FloatingDecimal.multPow52:(Lsun/misc/FDBigInt;II)Lsun/misc/FDBigInt;
astore 19 /* Bval */
start local 19 // sun.misc.FDBigInt Bval
128: .line 827
iload 13 /* S5 */
iload 12 /* S2 */
invokestatic sun.misc.FloatingDecimal.constructPow52:(II)Lsun/misc/FDBigInt;
astore 18 /* Sval */
start local 18 // sun.misc.FDBigInt Sval
129: .line 828
iload 15 /* M5 */
iload 14 /* M2 */
invokestatic sun.misc.FloatingDecimal.constructPow52:(II)Lsun/misc/FDBigInt;
astore 20 /* Mval */
start local 20 // sun.misc.FDBigInt Mval
130: .line 832
aload 19 /* Bval */
aload 18 /* Sval */
invokevirtual sun.misc.FDBigInt.normalizeMe:()I
dup
istore 30 /* shiftBias */
start local 30 // int shiftBias
131: invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
132: .line 833
aload 20 /* Mval */
iload 30 /* shiftBias */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
133: .line 834
aload 18 /* Sval */
bipush 10
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 29 /* tenSval */
start local 29 // sun.misc.FDBigInt tenSval
134: .line 840
iconst_0
istore 23 /* ndigit */
135: .line 841
aload 19 /* Bval */
aload 18 /* Sval */
invokevirtual sun.misc.FDBigInt.quoRemIteration:(Lsun/misc/FDBigInt;)I
istore 28 /* q */
start local 28 // int q
136: .line 842
aload 20 /* Mval */
bipush 10
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 20 /* Mval */
137: .line 843
aload 19 /* Bval */
aload 20 /* Mval */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
ifge 138
iconst_1
goto 139
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt sun.misc.FDBigInt int char[] int top top top top int sun.misc.FDBigInt int
StackMap stack:
138: iconst_0
StackMap locals:
StackMap stack: int
139: istore 24 /* low */
start local 24 // boolean low
140: .line 844
aload 19 /* Bval */
aload 20 /* Mval */
invokevirtual sun.misc.FDBigInt.add:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
aload 29 /* tenSval */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
ifle 141
iconst_1
goto 142
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt sun.misc.FDBigInt int char[] int int top top top int sun.misc.FDBigInt int
StackMap stack:
141: iconst_0
StackMap locals:
StackMap stack: int
142: istore 25 /* high */
start local 25 // boolean high
143: .line 845
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 144
iload 28 /* q */
bipush 10
if_icmplt 144
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
144: .line 846
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt sun.misc.FDBigInt int char[] int int int top top int sun.misc.FDBigInt int
StackMap stack:
iload 28 /* q */
ifne 147
iload 25 /* high */
ifne 147
145: .line 848
iinc 7 /* decExp */ -1
146: .line 849
goto 148
147: .line 850
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
148: .line 858
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 149
iload 7 /* decExp */
bipush 8
if_icmplt 161
149: .line 859
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
150: .line 861
goto 161
151: .line 862
StackMap locals:
StackMap stack:
aload 19 /* Bval */
aload 18 /* Sval */
invokevirtual sun.misc.FDBigInt.quoRemIteration:(Lsun/misc/FDBigInt;)I
istore 28 /* q */
152: .line 863
aload 20 /* Mval */
bipush 10
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 20 /* Mval */
153: .line 864
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 154
iload 28 /* q */
bipush 10
if_icmplt 154
new java.lang.AssertionError
dup
iload 28 /* q */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
154: .line 865
StackMap locals:
StackMap stack:
aload 19 /* Bval */
aload 20 /* Mval */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
ifge 155
iconst_1
goto 156
StackMap locals:
StackMap stack:
155: iconst_0
StackMap locals:
StackMap stack: int
156: istore 24 /* low */
157: .line 866
aload 19 /* Bval */
aload 20 /* Mval */
invokevirtual sun.misc.FDBigInt.add:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
aload 29 /* tenSval */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
ifle 158
iconst_1
goto 159
StackMap locals:
StackMap stack:
158: iconst_0
StackMap locals:
StackMap stack: int
159: istore 25 /* high */
160: .line 867
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
161: .line 861
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 162
iload 25 /* high */
ifeq 151
162: .line 869
StackMap locals:
StackMap stack:
iload 25 /* high */
ifeq 166
iload 24 /* low */
ifeq 166
163: .line 870
aload 19 /* Bval */
iconst_1
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
164: .line 871
aload 19 /* Bval */
aload 29 /* tenSval */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
i2l
lstore 26 /* lowDigitDifference */
start local 26 // long lowDigitDifference
165: .line 872
goto 167
end local 26 // long lowDigitDifference
166: .line 873
StackMap locals:
StackMap stack:
lconst_0
lstore 26 /* lowDigitDifference */
end local 30 // int shiftBias
end local 29 // sun.misc.FDBigInt tenSval
end local 20 // sun.misc.FDBigInt Mval
end local 19 // sun.misc.FDBigInt Bval
end local 18 // sun.misc.FDBigInt Sval
start local 26 // long lowDigitDifference
167: .line 875
StackMap locals: sun.misc.FloatingDecimal int long int int int int double int int int int int int int int top top top int char[] int int int long int
StackMap stack:
aload 0 /* this */
iload 7 /* decExp */
iconst_1
iadd
putfield sun.misc.FloatingDecimal.decExponent:I
168: .line 876
aload 0 /* this */
aload 22 /* digits */
putfield sun.misc.FloatingDecimal.digits:[C
169: .line 877
aload 0 /* this */
iload 23 /* ndigit */
putfield sun.misc.FloatingDecimal.nDigits:I
170: .line 881
iload 25 /* high */
ifeq 179
171: .line 882
iload 24 /* low */
ifeq 178
172: .line 883
lload 26 /* lowDigitDifference */
lconst_0
lcmp
ifne 175
173: .line 886
aload 22 /* digits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
isub
caload
iconst_1
iand
ifeq 179
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.roundup:()V
174: .line 887
goto 179
StackMap locals:
StackMap stack:
175: lload 26 /* lowDigitDifference */
lconst_0
lcmp
ifle 179
176: .line 888
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.roundup:()V
177: .line 890
goto 179
178: .line 891
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.roundup:()V
179: .line 894
StackMap locals:
StackMap stack:
return
end local 28 // int q
end local 26 // long lowDigitDifference
end local 25 // boolean high
end local 24 // boolean low
end local 23 // int ndigit
end local 22 // char[] digits
end local 21 // int common2factor
end local 17 // int tenSbits
end local 16 // int Bbits
end local 15 // int M5
end local 14 // int M2
end local 13 // int S5
end local 12 // int S2
end local 11 // int B5
end local 10 // int B2
end local 8 // double d2
end local 7 // int decExp
end local 6 // int nTinyBits
end local 5 // int nFractBits
end local 4 // int nSignificantBits
end local 2 // long fractBits
end local 1 // int binExp
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 180 0 this Lsun/misc/FloatingDecimal;
0 180 1 binExp I
0 180 2 fractBits J
0 180 4 nSignificantBits I
1 180 5 nFractBits I
2 180 6 nTinyBits I
19 180 7 decExp I
7 8 8 halfULP J
9 15 8 halfULP J
17 180 8 d2 D
21 180 10 B2 I
20 180 11 B5 I
23 180 12 S2 I
22 180 13 S5 I
25 180 14 M2 I
24 180 15 M5 I
42 180 16 Bbits I
45 180 17 tenSbits I
129 167 18 Sval Lsun/misc/FDBigInt;
128 167 19 Bval Lsun/misc/FDBigInt;
130 167 20 Mval Lsun/misc/FDBigInt;
28 180 21 common2factor I
38 180 22 digits [C
39 180 23 ndigit I
58 87 24 low Z
98 127 24 low Z
140 180 24 low Z
61 87 25 high Z
101 127 25 high Z
143 180 25 high Z
86 87 26 lowDigitDifference J
126 127 26 lowDigitDifference J
165 166 26 lowDigitDifference J
167 180 26 lowDigitDifference J
53 87 28 q I
93 127 28 q I
136 180 28 q I
48 86 29 b I
49 86 30 s I
50 86 31 m I
51 86 32 tens I
88 126 29 b J
89 126 31 s J
90 126 33 m J
91 126 35 tens J
134 167 29 tenSval Lsun/misc/FDBigInt;
131 167 30 shiftBias I
MethodParameters:
Name Flags
binExp
fractBits
nSignificantBits
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 899
new java.lang.StringBuffer
dup
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 8
iadd
invokespecial java.lang.StringBuffer.<init>:(I)V
astore 1 /* result */
start local 1 // java.lang.StringBuffer result
1: .line 900
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 2
aload 1 /* result */
bipush 45
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
2: .line 901
StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isExceptional:Z
ifeq 5
3: .line 902
aload 1 /* result */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokevirtual java.lang.StringBuffer.append:([CII)Ljava/lang/StringBuffer;
pop
4: .line 903
goto 9
5: .line 904
StackMap locals:
StackMap stack:
aload 1 /* result */
ldc "0."
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
6: .line 905
aload 1 /* result */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokevirtual java.lang.StringBuffer.append:([CII)Ljava/lang/StringBuffer;
pop
7: .line 906
aload 1 /* result */
bipush 101
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
8: .line 907
aload 1 /* result */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
pop
9: .line 909
StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 1 /* result */
invokespecial java.lang.String.<init>:(Ljava/lang/StringBuffer;)V
areturn
end local 1 // java.lang.StringBuffer result
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/misc/FloatingDecimal;
1 10 1 result Ljava/lang/StringBuffer;
public java.lang.String toJavaFormatString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 913
getstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast char[]
astore 1 /* result */
start local 1 // char[] result
1: .line 914
aload 0 /* this */
aload 1 /* result */
invokevirtual sun.misc.FloatingDecimal.getChars:([C)I
istore 2 /* i */
start local 2 // int i
2: .line 915
new java.lang.String
dup
aload 1 /* result */
iconst_0
iload 2 /* i */
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 2 // int i
end local 1 // char[] result
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/misc/FloatingDecimal;
1 3 1 result [C
2 3 2 i I
private int getChars(char[]);
descriptor: ([C)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // char[] result
0: .line 919
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 19
if_icmple 1
new java.lang.AssertionError
dup
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
1: .line 920
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* i */
start local 2 // int i
2: .line 921
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 3
aload 1 /* result */
iconst_0
bipush 45
castore
iconst_1
istore 2 /* i */
3: .line 922
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isExceptional:Z
ifeq 7
4: .line 923
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 924
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iadd
istore 2 /* i */
6: .line 925
goto 59
7: .line 926
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifle 26
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush 8
if_icmpge 26
8: .line 928
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
invokestatic java.lang.Math.min:(II)I
istore 3 /* charLength */
start local 3 // int charLength
9: .line 929
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
aload 1 /* result */
iload 2 /* i */
iload 3 /* charLength */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: .line 930
iload 2 /* i */
iload 3 /* charLength */
iadd
istore 2 /* i */
11: .line 931
iload 3 /* charLength */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
if_icmpge 18
12: .line 932
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 3 /* charLength */
isub
istore 3 /* charLength */
13: .line 933
getstatic sun.misc.FloatingDecimal.zero:[C
iconst_0
aload 1 /* result */
iload 2 /* i */
iload 3 /* charLength */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: .line 934
iload 2 /* i */
iload 3 /* charLength */
iadd
istore 2 /* i */
15: .line 935
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
16: .line 936
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
17: .line 937
goto 59
18: .line 938
StackMap locals: int
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
19: .line 939
iload 3 /* charLength */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
if_icmpge 24
20: .line 940
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iload 3 /* charLength */
isub
istore 4 /* t */
start local 4 // int t
21: .line 941
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 3 /* charLength */
aload 1 /* result */
iload 2 /* i */
iload 4 /* t */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: .line 942
iload 2 /* i */
iload 4 /* t */
iadd
istore 2 /* i */
end local 4 // int t
23: .line 943
goto 59
24: .line 944
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
end local 3 // int charLength
25: .line 947
goto 59
StackMap locals:
StackMap stack:
26: aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifgt 35
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush -3
if_icmple 35
27: .line 948
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
28: .line 949
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
29: .line 950
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifeq 32
30: .line 951
getstatic sun.misc.FloatingDecimal.zero:[C
iconst_0
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ineg
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: .line 952
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
isub
istore 2 /* i */
32: .line 954
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: .line 955
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iadd
istore 2 /* i */
34: .line 956
goto 59
35: .line 957
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
caload
castore
36: .line 958
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
37: .line 959
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
if_icmple 41
38: .line 960
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_1
aload 1 /* result */
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: .line 961
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
isub
iadd
istore 2 /* i */
40: .line 962
goto 42
41: .line 963
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
42: .line 965
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 69
castore
43: .line 967
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifgt 47
44: .line 968
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 45
castore
45: .line 969
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ineg
iconst_1
iadd
istore 3 /* e */
start local 3 // int e
46: .line 970
goto 48
end local 3 // int e
47: .line 971
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iconst_1
isub
istore 3 /* e */
start local 3 // int e
48: .line 974
StackMap locals: int
StackMap stack:
iload 3 /* e */
bipush 9
if_icmpgt 51
49: .line 975
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 48
iadd
i2c
castore
50: .line 976
goto 59
StackMap locals:
StackMap stack:
51: iload 3 /* e */
bipush 99
if_icmpgt 55
52: .line 977
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
idiv
bipush 48
iadd
i2c
castore
53: .line 978
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
irem
bipush 48
iadd
i2c
castore
54: .line 979
goto 59
55: .line 980
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 100
idiv
bipush 48
iadd
i2c
castore
56: .line 981
iload 3 /* e */
bipush 100
irem
istore 3 /* e */
57: .line 982
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
idiv
bipush 48
iadd
i2c
castore
58: .line 983
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
irem
bipush 48
iadd
i2c
castore
end local 3 // int e
59: .line 987
StackMap locals:
StackMap stack:
iload 2 /* i */
ireturn
end local 2 // int i
end local 1 // char[] result
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lsun/misc/FloatingDecimal;
0 60 1 result [C
2 60 2 i I
9 25 3 charLength I
21 23 4 t I
46 47 3 e I
48 59 3 e I
MethodParameters:
Name Flags
result
public void appendTo(java.lang.Appendable);
descriptor: (Ljava/lang/Appendable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 // sun.misc.FloatingDecimal this
start local 1 // java.lang.Appendable buf
0: .line 998
getstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast char[]
astore 2 /* result */
start local 2 // char[] result
1: .line 999
aload 0 /* this */
aload 2 /* result */
invokevirtual sun.misc.FloatingDecimal.getChars:([C)I
istore 3 /* i */
start local 3 // int i
2: .line 1000
aload 1 /* buf */
instanceof java.lang.StringBuilder
ifeq 4
3: .line 1001
aload 1 /* buf */
checkcast java.lang.StringBuilder
aload 2 /* result */
iconst_0
iload 3 /* i */
invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
pop
goto 7
4: .line 1002
StackMap locals: char[] int
StackMap stack:
aload 1 /* buf */
instanceof java.lang.StringBuffer
ifeq 6
5: .line 1003
aload 1 /* buf */
checkcast java.lang.StringBuffer
aload 2 /* result */
iconst_0
iload 3 /* i */
invokevirtual java.lang.StringBuffer.append:([CII)Ljava/lang/StringBuffer;
pop
goto 7
6: .line 1005
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: .line 1006
StackMap locals:
StackMap stack:
return
end local 3 // int i
end local 2 // char[] result
end local 1 // java.lang.Appendable buf
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/misc/FloatingDecimal;
0 8 1 buf Ljava/lang/Appendable;
1 8 2 result [C
2 8 3 i I
MethodParameters:
Name Flags
buf
public static sun.misc.FloatingDecimal readJavaFormatString(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/misc/FloatingDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=19, args_size=1
start local 0 // java.lang.String in
0: .line 1010
iconst_0
istore 1 /* isNegative */
start local 1 // boolean isNegative
1: .line 1011
iconst_0
istore 2 /* signSeen */
start local 2 // boolean signSeen
2: .line 1017
aload 0 /* in */
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 0 /* in */
3: .line 1019
aload 0 /* in */
invokevirtual java.lang.String.length:()I
istore 5 /* l */
start local 5 // int l
4: .line 1020
iload 5 /* l */
ifne 5
new java.lang.NumberFormatException
dup
ldc "empty String"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
5: .line 1021
StackMap locals: java.lang.String int int top top int
StackMap stack:
iconst_0
istore 6 /* i */
start local 6 // int i
6: .line 1022
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
dup
istore 4 /* c */
start local 4 // char c
7: tableswitch { // 43 - 45
43: 9
44: 11
45: 8
default: 11
}
8: .line 1024
StackMap locals: java.lang.String int int top int int int
StackMap stack:
iconst_1
istore 1 /* isNegative */
9: .line 1027
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
10: .line 1028
iconst_1
istore 2 /* signSeen */
11: .line 1032
StackMap locals:
StackMap stack:
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 4 /* c */
12: .line 1033
iload 4 /* c */
bipush 78
if_icmpeq 13
iload 4 /* c */
bipush 73
if_icmpne 32
13: .line 1034
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* potentialNaN */
start local 7 // boolean potentialNaN
14: .line 1035
aconst_null
astore 8 /* targetChars */
start local 8 // char[] targetChars
15: .line 1037
iload 4 /* c */
bipush 78
if_icmpne 19
16: .line 1038
getstatic sun.misc.FloatingDecimal.notANumber:[C
astore 8 /* targetChars */
17: .line 1039
iconst_1
istore 7 /* potentialNaN */
18: .line 1040
goto 20
19: .line 1041
StackMap locals: int char[]
StackMap stack:
getstatic sun.misc.FloatingDecimal.infinity:[C
astore 8 /* targetChars */
20: .line 1045
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* j */
start local 9 // int j
21: .line 1046
goto 24
22: .line 1047
StackMap locals: int
StackMap stack:
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
aload 8 /* targetChars */
iload 9 /* j */
caload
if_icmpne 111
23: .line 1048
iinc 6 /* i */ 1
iinc 9 /* j */ 1
24: .line 1046
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmpge 25
iload 9 /* j */
aload 8 /* targetChars */
arraylength
if_icmplt 22
25: .line 1058
StackMap locals:
StackMap stack:
iload 9 /* j */
aload 8 /* targetChars */
arraylength
if_icmpne 111
iload 6 /* i */
iload 5 /* l */
if_icmpne 111
26: .line 1059
iload 7 /* potentialNaN */
ifeq 27
new sun.misc.FloatingDecimal
dup
ldc NaN
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
goto 31
27: .line 1060
StackMap locals:
StackMap stack:
new sun.misc.FloatingDecimal
dup
iload 1 /* isNegative */
ifeq 29
28: .line 1061
ldc -Infinity
goto 30
29: .line 1062
StackMap locals: java.lang.String int int top int int int int char[] int
StackMap stack: new 27 new 27
ldc Infinity
30: .line 1060
StackMap locals: java.lang.String int int top int int int int char[] int
StackMap stack: new 27 new 27 double
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
31: .line 1059
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
areturn
end local 9 // int j
end local 8 // char[] targetChars
end local 7 // boolean potentialNaN
32: .line 1068
StackMap locals:
StackMap stack:
iload 4 /* c */
bipush 48
if_icmpne 38
33: .line 1069
iload 5 /* l */
iload 6 /* i */
iconst_1
iadd
if_icmple 38
34: .line 1070
aload 0 /* in */
iload 6 /* i */
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
istore 7 /* ch */
start local 7 // char ch
35: .line 1071
iload 7 /* ch */
bipush 120
if_icmpeq 36
iload 7 /* ch */
bipush 88
if_icmpne 38
36: .line 1072
StackMap locals: int
StackMap stack:
aload 0 /* in */
invokestatic sun.misc.FloatingDecimal.parseHexString:(Ljava/lang/String;)Lsun/misc/FloatingDecimal;
37: areturn
end local 7 // char ch
38: .line 1076
StackMap locals:
StackMap stack:
iload 5 /* l */
newarray 5
astore 7 /* digits */
start local 7 // char[] digits
39: .line 1077
iconst_0
istore 8 /* nDigits */
start local 8 // int nDigits
40: .line 1078
iconst_0
istore 9 /* decSeen */
start local 9 // boolean decSeen
41: .line 1079
iconst_0
istore 10 /* decPt */
start local 10 // int decPt
42: .line 1080
iconst_0
istore 11 /* nLeadZero */
start local 11 // int nLeadZero
43: .line 1081
iconst_0
istore 12 /* nTrailZero */
start local 12 // int nTrailZero
44: .line 1083
goto 66
45: .line 1084
StackMap locals: java.lang.String int int top int int int char[] int int int int int
StackMap stack:
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
dup
istore 4 /* c */
tableswitch { // 46 - 57
46: 57
47: 64
48: 46
49: 51
50: 51
51: 51
52: 51
53: 51
54: 51
55: 51
56: 51
57: 51
default: 64
}
46: .line 1086
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
ifle 49
47: .line 1087
iinc 12 /* nTrailZero */ 1
48: .line 1088
goto 65
49: .line 1089
StackMap locals:
StackMap stack:
iinc 11 /* nLeadZero */ 1
50: .line 1091
goto 65
51: .line 1101
StackMap locals:
StackMap stack:
goto 54
52: .line 1102
StackMap locals:
StackMap stack:
aload 7 /* digits */
iload 8 /* nDigits */
iinc 8 /* nDigits */ 1
bipush 48
castore
53: .line 1103
iinc 12 /* nTrailZero */ -1
54: .line 1101
StackMap locals:
StackMap stack:
iload 12 /* nTrailZero */
ifgt 52
55: .line 1105
aload 7 /* digits */
iload 8 /* nDigits */
iinc 8 /* nDigits */ 1
iload 4 /* c */
castore
56: .line 1106
goto 65
57: .line 1108
StackMap locals:
StackMap stack:
iload 9 /* decSeen */
ifeq 59
58: .line 1110
new java.lang.NumberFormatException
dup
ldc "multiple points"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
59: .line 1112
StackMap locals:
StackMap stack:
iload 6 /* i */
istore 10 /* decPt */
60: .line 1113
iload 2 /* signSeen */
ifeq 62
61: .line 1114
iinc 10 /* decPt */ -1
62: .line 1116
StackMap locals:
StackMap stack:
iconst_1
istore 9 /* decSeen */
63: .line 1117
goto 65
64: .line 1119
StackMap locals:
StackMap stack:
goto 67
65: .line 1121
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
66: .line 1083
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmplt 45
67: .line 1142
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
ifne 72
68: .line 1143
getstatic sun.misc.FloatingDecimal.zero:[C
astore 7 /* digits */
69: .line 1144
iconst_1
istore 8 /* nDigits */
70: .line 1145
iload 11 /* nLeadZero */
ifne 72
71: .line 1149
goto 111
72: .line 1158
StackMap locals:
StackMap stack:
iload 9 /* decSeen */
ifeq 75
73: .line 1159
iload 10 /* decPt */
iload 11 /* nLeadZero */
isub
istore 3 /* decExp */
start local 3 // int decExp
74: .line 1160
goto 76
end local 3 // int decExp
75: .line 1161
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
iload 12 /* nTrailZero */
iadd
istore 3 /* decExp */
start local 3 // int decExp
76: .line 1167
StackMap locals: java.lang.String int int int int int int char[] int int int int int
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmpge 101
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
dup
istore 4 /* c */
bipush 101
if_icmpeq 77
iload 4 /* c */
bipush 69
if_icmpne 101
77: .line 1168
StackMap locals:
StackMap stack:
iconst_1
istore 13 /* expSign */
start local 13 // int expSign
78: .line 1169
iconst_0
istore 14 /* expVal */
start local 14 // int expVal
79: .line 1170
ldc 214748364
istore 15 /* reallyBig */
start local 15 // int reallyBig
80: .line 1171
iconst_0
istore 16 /* expOverflow */
start local 16 // boolean expOverflow
81: .line 1172
aload 0 /* in */
iinc 6 /* i */ 1
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
tableswitch { // 43 - 45
43: 83
44: 84
45: 82
default: 84
}
82: .line 1174
StackMap locals: java.lang.String int int int int int int char[] int int int int int int int int int
StackMap stack:
iconst_m1
istore 13 /* expSign */
83: .line 1177
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
84: .line 1179
StackMap locals:
StackMap stack:
iload 6 /* i */
istore 17 /* expAt */
start local 17 // int expAt
85: .line 1181
goto 93
86: .line 1182
StackMap locals: int
StackMap stack:
iload 14 /* expVal */
iload 15 /* reallyBig */
if_icmplt 88
87: .line 1185
iconst_1
istore 16 /* expOverflow */
88: .line 1187
StackMap locals:
StackMap stack:
aload 0 /* in */
iload 6 /* i */
iinc 6 /* i */ 1
invokevirtual java.lang.String.charAt:(I)C
dup
istore 4 /* c */
tableswitch { // 48 - 57
48: 89
49: 89
50: 89
51: 89
52: 89
53: 89
54: 89
55: 89
56: 89
57: 89
default: 91
}
89: .line 1198
StackMap locals:
StackMap stack:
iload 14 /* expVal */
bipush 10
imul
iload 4 /* c */
bipush 48
isub
iadd
istore 14 /* expVal */
90: .line 1199
goto 93
91: .line 1201
StackMap locals:
StackMap stack:
iinc 6 /* i */ -1
92: .line 1202
goto 94
93: .line 1181
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmplt 86
94: .line 1205
StackMap locals:
StackMap stack:
sipush 324
iload 8 /* nDigits */
iadd
iload 12 /* nTrailZero */
iadd
istore 18 /* expLimit */
start local 18 // int expLimit
95: .line 1206
iload 16 /* expOverflow */
ifne 96
iload 14 /* expVal */
iload 18 /* expLimit */
if_icmple 98
96: .line 1219
StackMap locals: int
StackMap stack:
iload 13 /* expSign */
iload 18 /* expLimit */
imul
istore 3 /* decExp */
97: .line 1220
goto 99
98: .line 1223
StackMap locals:
StackMap stack:
iload 3 /* decExp */
iload 13 /* expSign */
iload 14 /* expVal */
imul
iadd
istore 3 /* decExp */
99: .line 1232
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 17 /* expAt */
if_icmpne 101
100: .line 1233
goto 111
end local 18 // int expLimit
end local 17 // int expAt
end local 16 // boolean expOverflow
end local 15 // int reallyBig
end local 14 // int expVal
end local 13 // int expSign
101: .line 1239
StackMap locals: java.lang.String int int int int int int char[] int int int int int
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmpge 108
102: .line 1240
iload 6 /* i */
iload 5 /* l */
iconst_1
isub
if_icmpne 111
103: .line 1241
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 102
if_icmpeq 108
104: .line 1242
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 70
if_icmpeq 108
105: .line 1243
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 100
if_icmpeq 108
106: .line 1244
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 68
if_icmpeq 108
107: .line 1245
goto 111
108: .line 1248
StackMap locals:
StackMap stack:
new sun.misc.FloatingDecimal
dup
iload 1 /* isNegative */
iload 3 /* decExp */
aload 7 /* digits */
iload 8 /* nDigits */
iconst_0
invokespecial sun.misc.FloatingDecimal.<init>:(ZI[CIZ)V
109: areturn
end local 12 // int nTrailZero
end local 11 // int nLeadZero
end local 10 // int decPt
end local 9 // boolean decSeen
end local 8 // int nDigits
end local 7 // char[] digits
end local 6 // int i
end local 5 // int l
end local 4 // char c
end local 3 // int decExp
110: .line 1249
StackMap locals: java.lang.String int int
StackMap stack: java.lang.StringIndexOutOfBoundsException
pop
111: .line 1250
StackMap locals:
StackMap stack:
new java.lang.NumberFormatException
dup
new java.lang.StringBuilder
dup
ldc "For input string: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* in */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 2 // boolean signSeen
end local 1 // boolean isNegative
end local 0 // java.lang.String in
LocalVariableTable:
Start End Slot Name Signature
0 112 0 in Ljava/lang/String;
1 112 1 isNegative Z
2 112 2 signSeen Z
74 75 3 decExp I
76 110 3 decExp I
7 110 4 c C
4 110 5 l I
6 110 6 i I
14 32 7 potentialNaN Z
15 32 8 targetChars [C
21 32 9 j I
35 38 7 ch C
39 110 7 digits [C
40 110 8 nDigits I
41 110 9 decSeen Z
42 110 10 decPt I
43 110 11 nLeadZero I
44 110 12 nTrailZero I
78 101 13 expSign I
79 101 14 expVal I
80 101 15 reallyBig I
81 101 16 expOverflow Z
85 101 17 expAt I
95 101 18 expLimit I
Exception table:
from to target type
2 31 110 Class java.lang.StringIndexOutOfBoundsException
32 37 110 Class java.lang.StringIndexOutOfBoundsException
38 71 110 Class java.lang.StringIndexOutOfBoundsException
72 100 110 Class java.lang.StringIndexOutOfBoundsException
101 107 110 Class java.lang.StringIndexOutOfBoundsException
108 109 110 Class java.lang.StringIndexOutOfBoundsException
Exceptions:
throws java.lang.NumberFormatException
MethodParameters:
Name Flags
in
public strict double doubleValue();
descriptor: ()D
flags: (0x0801) ACC_PUBLIC, ACC_STRICT
Code:
stack=7, locals=27, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 1263
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 16
invokestatic java.lang.Math.min:(II)I
istore 1 /* kDigits */
start local 1 // int kDigits
1: .line 1269
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.infinity:[C
if_acmpeq 2
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.notANumber:[C
if_acmpne 7
2: .line 1270
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.notANumber:[C
if_acmpne 4
3: .line 1271
ldc NaN
dreturn
4: .line 1273
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 5
ldc -Infinity
goto 6
StackMap locals:
StackMap stack:
5: ldc Infinity
StackMap locals:
StackMap stack: double
6: dreturn
7: .line 1276
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 9
8: .line 1277
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.roundDir:I
9: .line 1283
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
caload
bipush 48
isub
istore 10 /* iValue */
start local 10 // int iValue
10: .line 1284
iload 1 /* kDigits */
bipush 9
invokestatic java.lang.Math.min:(II)I
istore 11 /* iDigits */
start local 11 // int iDigits
11: .line 1285
iconst_1
istore 12 /* i */
start local 12 // int i
12: goto 15
13: .line 1286
StackMap locals: sun.misc.FloatingDecimal int top top top top top top top top int int int
StackMap stack:
iload 10 /* iValue */
bipush 10
imul
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 12 /* i */
caload
iadd
bipush 48
isub
istore 10 /* iValue */
14: .line 1285
iinc 12 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 12 /* i */
iload 11 /* iDigits */
if_icmplt 13
end local 12 // int i
16: .line 1288
iload 10 /* iValue */
i2l
lstore 2 /* lValue */
start local 2 // long lValue
17: .line 1289
iload 11 /* iDigits */
istore 12 /* i */
start local 12 // int i
18: goto 21
19: .line 1290
StackMap locals: sun.misc.FloatingDecimal int long top top top top top top int int int
StackMap stack:
lload 2 /* lValue */
ldc 10
lmul
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 12 /* i */
caload
bipush 48
isub
i2l
ladd
lstore 2 /* lValue */
20: .line 1289
iinc 12 /* i */ 1
StackMap locals:
StackMap stack:
21: iload 12 /* i */
iload 1 /* kDigits */
if_icmplt 19
end local 12 // int i
22: .line 1292
lload 2 /* lValue */
l2d
dstore 4 /* dValue */
start local 4 // double dValue
23: .line 1293
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 1 /* kDigits */
isub
istore 12 /* exp */
start local 12 // int exp
24: .line 1300
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 15
if_icmpgt 65
25: .line 1311
iload 12 /* exp */
ifeq 26
dload 4 /* dValue */
dconst_0
dcmpl
ifne 29
26: .line 1312
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 27
dload 4 /* dValue */
dneg
goto 28
StackMap locals:
StackMap stack:
27: dload 4 /* dValue */
StackMap locals:
StackMap stack: double
28: dreturn
29: .line 1313
StackMap locals:
StackMap stack:
iload 12 /* exp */
iflt 54
30: .line 1314
iload 12 /* exp */
getstatic sun.misc.FloatingDecimal.maxSmallTen:I
if_icmpgt 41
31: .line 1319
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
daload
dmul
dstore 6 /* rValue */
start local 6 // double rValue
32: .line 1320
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 38
33: .line 1321
dload 6 /* rValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
daload
ddiv
dstore 8 /* tValue */
start local 8 // double tValue
34: .line 1322
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 35
iconst_0
goto 37
35: .line 1323
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int
StackMap stack: sun.misc.FloatingDecimal
dload 8 /* tValue */
dload 4 /* dValue */
dcmpg
ifge 36
iconst_1
goto 37
36: .line 1324
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
37: .line 1322
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int
StackMap stack: sun.misc.FloatingDecimal int
putfield sun.misc.FloatingDecimal.roundDir:I
end local 8 // double tValue
38: .line 1326
StackMap locals: sun.misc.FloatingDecimal int long double double top top int int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 39
dload 6 /* rValue */
dneg
goto 40
StackMap locals:
StackMap stack:
39: dload 6 /* rValue */
StackMap locals:
StackMap stack: double
40: dreturn
end local 6 // double rValue
41: .line 1328
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int
StackMap stack:
bipush 15
iload 1 /* kDigits */
isub
istore 13 /* slop */
start local 13 // int slop
42: .line 1329
iload 12 /* exp */
getstatic sun.misc.FloatingDecimal.maxSmallTen:I
iload 13 /* slop */
iadd
if_icmpgt 65
43: .line 1336
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 13 /* slop */
daload
dmul
dstore 4 /* dValue */
44: .line 1337
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
iload 13 /* slop */
isub
daload
dmul
dstore 6 /* rValue */
start local 6 // double rValue
45: .line 1339
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 51
46: .line 1340
dload 6 /* rValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
iload 13 /* slop */
isub
daload
ddiv
dstore 8 /* tValue */
start local 8 // double tValue
47: .line 1341
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 48
iconst_0
goto 50
48: .line 1342
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int int
StackMap stack: sun.misc.FloatingDecimal
dload 8 /* tValue */
dload 4 /* dValue */
dcmpg
ifge 49
iconst_1
goto 50
49: .line 1343
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
50: .line 1341
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int int
StackMap stack: sun.misc.FloatingDecimal int
putfield sun.misc.FloatingDecimal.roundDir:I
end local 8 // double tValue
51: .line 1345
StackMap locals: sun.misc.FloatingDecimal int long double double top top int int int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 52
dload 6 /* rValue */
dneg
goto 53
StackMap locals:
StackMap stack:
52: dload 6 /* rValue */
StackMap locals:
StackMap stack: double
53: dreturn
end local 13 // int slop
end local 6 // double rValue
54: .line 1351
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int
StackMap stack:
iload 12 /* exp */
getstatic sun.misc.FloatingDecimal.maxSmallTen:I
ineg
if_icmplt 65
55: .line 1355
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
ineg
daload
ddiv
dstore 6 /* rValue */
start local 6 // double rValue
56: .line 1356
dload 6 /* rValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
ineg
daload
dmul
dstore 8 /* tValue */
start local 8 // double tValue
57: .line 1357
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 62
58: .line 1358
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 59
iconst_0
goto 61
59: .line 1359
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int
StackMap stack: sun.misc.FloatingDecimal
dload 8 /* tValue */
dload 4 /* dValue */
dcmpg
ifge 60
iconst_1
goto 61
60: .line 1360
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
61: .line 1358
StackMap locals: sun.misc.FloatingDecimal int long double double double int int int
StackMap stack: sun.misc.FloatingDecimal int
putfield sun.misc.FloatingDecimal.roundDir:I
62: .line 1362
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 63
dload 6 /* rValue */
dneg
goto 64
StackMap locals:
StackMap stack:
63: dload 6 /* rValue */
StackMap locals:
StackMap stack: double
64: dreturn
end local 8 // double tValue
end local 6 // double rValue
65: .line 1378
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int
StackMap stack:
iload 12 /* exp */
ifle 90
66: .line 1379
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
sipush 309
if_icmple 70
67: .line 1384
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 68
ldc -Infinity
goto 69
StackMap locals:
StackMap stack:
68: ldc Infinity
StackMap locals:
StackMap stack: double
69: dreturn
70: .line 1386
StackMap locals:
StackMap stack:
iload 12 /* exp */
bipush 15
iand
ifeq 72
71: .line 1387
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
bipush 15
iand
daload
dmul
dstore 4 /* dValue */
72: .line 1389
StackMap locals:
StackMap stack:
iload 12 /* exp */
iconst_4
ishr
dup
istore 12 /* exp */
ifeq 115
73: .line 1391
iconst_0
istore 13 /* j */
start local 13 // int j
74: goto 78
75: .line 1392
StackMap locals: int
StackMap stack:
iload 12 /* exp */
iconst_1
iand
ifeq 77
76: .line 1393
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 4 /* dValue */
77: .line 1391
StackMap locals:
StackMap stack:
iinc 13 /* j */ 1
iload 12 /* exp */
iconst_1
ishr
istore 12 /* exp */
StackMap locals:
StackMap stack:
78: iload 12 /* exp */
iconst_1
if_icmpgt 75
79: .line 1401
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
start local 14 // double t
80: .line 1402
dload 14 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 88
81: .line 1415
dload 4 /* dValue */
ldc 2.0
ddiv
dstore 14 /* t */
82: .line 1416
dload 14 /* t */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
83: .line 1417
dload 14 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 87
84: .line 1418
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 85
ldc -Infinity
goto 86
StackMap locals: double
StackMap stack:
85: ldc Infinity
StackMap locals:
StackMap stack: double
86: dreturn
87: .line 1420
StackMap locals:
StackMap stack:
ldc 1.7976931348623157E308
dstore 14 /* t */
88: .line 1422
StackMap locals:
StackMap stack:
dload 14 /* t */
dstore 4 /* dValue */
end local 14 // double t
end local 13 // int j
89: .line 1424
goto 115
StackMap locals:
StackMap stack:
90: iload 12 /* exp */
ifge 115
91: .line 1425
iload 12 /* exp */
ineg
istore 12 /* exp */
92: .line 1426
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
sipush -325
if_icmpge 96
93: .line 1431
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 94
ldc -0.0
goto 95
StackMap locals:
StackMap stack:
94: dconst_0
StackMap locals:
StackMap stack: double
95: dreturn
96: .line 1433
StackMap locals:
StackMap stack:
iload 12 /* exp */
bipush 15
iand
ifeq 98
97: .line 1434
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
bipush 15
iand
daload
ddiv
dstore 4 /* dValue */
98: .line 1436
StackMap locals:
StackMap stack:
iload 12 /* exp */
iconst_4
ishr
dup
istore 12 /* exp */
ifeq 115
99: .line 1438
iconst_0
istore 13 /* j */
start local 13 // int j
100: goto 104
101: .line 1439
StackMap locals: int
StackMap stack:
iload 12 /* exp */
iconst_1
iand
ifeq 103
102: .line 1440
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 4 /* dValue */
103: .line 1438
StackMap locals:
StackMap stack:
iinc 13 /* j */ 1
iload 12 /* exp */
iconst_1
ishr
istore 12 /* exp */
StackMap locals:
StackMap stack:
104: iload 12 /* exp */
iconst_1
if_icmpgt 101
105: .line 1448
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
start local 14 // double t
106: .line 1449
dload 14 /* t */
dconst_0
dcmpl
ifne 114
107: .line 1462
dload 4 /* dValue */
ldc 2.0
dmul
dstore 14 /* t */
108: .line 1463
dload 14 /* t */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
109: .line 1464
dload 14 /* t */
dconst_0
dcmpl
ifne 113
110: .line 1465
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 111
ldc -0.0
goto 112
StackMap locals: double
StackMap stack:
111: dconst_0
StackMap locals:
StackMap stack: double
112: dreturn
113: .line 1467
StackMap locals:
StackMap stack:
ldc 4.9E-324
dstore 14 /* t */
114: .line 1469
StackMap locals:
StackMap stack:
dload 14 /* t */
dstore 4 /* dValue */
end local 14 // double t
end local 13 // int j
115: .line 1480
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
sipush 1100
if_icmple 118
116: .line 1481
aload 0 /* this */
sipush 1101
putfield sun.misc.FloatingDecimal.nDigits:I
117: .line 1482
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
sipush 1100
bipush 49
castore
118: .line 1484
StackMap locals:
StackMap stack:
new sun.misc.FDBigInt
dup
lload 2 /* lValue */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 1 /* kDigits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
invokespecial sun.misc.FDBigInt.<init>:(J[CII)V
astore 13 /* bigD0 */
start local 13 // sun.misc.FDBigInt bigD0
119: .line 1485
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
isub
istore 12 /* exp */
120: .line 1492
StackMap locals: sun.misc.FDBigInt
StackMap stack:
aload 0 /* this */
dload 4 /* dValue */
invokevirtual sun.misc.FloatingDecimal.doubleToBigInt:(D)Lsun/misc/FDBigInt;
astore 14 /* bigB */
start local 14 // sun.misc.FDBigInt bigB
121: .line 1506
iload 12 /* exp */
iflt 127
122: .line 1507
iconst_0
dup
istore 16 /* B5 */
start local 16 // int B5
123: istore 15 /* B2 */
start local 15 // int B2
124: .line 1508
iload 12 /* exp */
dup
istore 18 /* D5 */
start local 18 // int D5
125: istore 17 /* D2 */
start local 17 // int D2
126: .line 1509
goto 131
end local 18 // int D5
end local 17 // int D2
end local 16 // int B5
end local 15 // int B2
127: .line 1510
StackMap locals: sun.misc.FDBigInt
StackMap stack:
iload 12 /* exp */
ineg
dup
istore 16 /* B5 */
start local 16 // int B5
128: istore 15 /* B2 */
start local 15 // int B2
129: .line 1511
iconst_0
dup
istore 18 /* D5 */
start local 18 // int D5
130: istore 17 /* D2 */
start local 17 // int D2
131: .line 1513
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
iflt 134
132: .line 1514
iload 15 /* B2 */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
iadd
istore 15 /* B2 */
133: .line 1515
goto 135
134: .line 1516
StackMap locals:
StackMap stack:
iload 17 /* D2 */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
isub
istore 17 /* D2 */
135: .line 1518
StackMap locals:
StackMap stack:
iload 15 /* B2 */
istore 19 /* Ulp2 */
start local 19 // int Ulp2
136: .line 1522
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntNBits:I
iadd
sipush -1022
if_icmpgt 139
137: .line 1526
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
sipush 1023
iadd
bipush 52
iadd
istore 20 /* hulpbias */
start local 20 // int hulpbias
138: .line 1527
goto 140
end local 20 // int hulpbias
139: .line 1528
StackMap locals: int
StackMap stack:
bipush 54
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntNBits:I
isub
istore 20 /* hulpbias */
start local 20 // int hulpbias
140: .line 1530
StackMap locals: int
StackMap stack:
iload 15 /* B2 */
iload 20 /* hulpbias */
iadd
istore 15 /* B2 */
141: .line 1531
iload 17 /* D2 */
iload 20 /* hulpbias */
iadd
istore 17 /* D2 */
142: .line 1534
iload 15 /* B2 */
iload 17 /* D2 */
iload 19 /* Ulp2 */
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.min:(II)I
istore 21 /* common2 */
start local 21 // int common2
143: .line 1535
iload 15 /* B2 */
iload 21 /* common2 */
isub
istore 15 /* B2 */
144: .line 1536
iload 17 /* D2 */
iload 21 /* common2 */
isub
istore 17 /* D2 */
145: .line 1537
iload 19 /* Ulp2 */
iload 21 /* common2 */
isub
istore 19 /* Ulp2 */
146: .line 1539
aload 14 /* bigB */
iload 16 /* B5 */
iload 15 /* B2 */
invokestatic sun.misc.FloatingDecimal.multPow52:(Lsun/misc/FDBigInt;II)Lsun/misc/FDBigInt;
astore 14 /* bigB */
147: .line 1540
new sun.misc.FDBigInt
dup
aload 13 /* bigD0 */
invokespecial sun.misc.FDBigInt.<init>:(Lsun/misc/FDBigInt;)V
iload 18 /* D5 */
iload 17 /* D2 */
invokestatic sun.misc.FloatingDecimal.multPow52:(Lsun/misc/FDBigInt;II)Lsun/misc/FDBigInt;
astore 22 /* bigD */
start local 22 // sun.misc.FDBigInt bigD
148: .line 1558
aload 14 /* bigB */
aload 22 /* bigD */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
dup
istore 24 /* cmpResult */
start local 24 // int cmpResult
149: ifle 158
150: .line 1559
iconst_1
istore 25 /* overvalue */
start local 25 // boolean overvalue
151: .line 1560
aload 14 /* bigB */
aload 22 /* bigD */
invokevirtual sun.misc.FDBigInt.sub:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
astore 23 /* diff */
start local 23 // sun.misc.FDBigInt diff
152: .line 1561
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntNBits:I
iconst_1
if_icmpne 161
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
sipush -1022
if_icmple 161
153: .line 1566
iinc 19 /* Ulp2 */ -1
154: .line 1567
iload 19 /* Ulp2 */
ifge 161
155: .line 1570
iconst_0
istore 19 /* Ulp2 */
156: .line 1571
aload 23 /* diff */
iconst_1
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
157: .line 1574
goto 161
end local 25 // boolean overvalue
end local 23 // sun.misc.FDBigInt diff
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int int int int sun.misc.FDBigInt top int
StackMap stack:
158: iload 24 /* cmpResult */
ifge 177
159: .line 1575
iconst_0
istore 25 /* overvalue */
start local 25 // boolean overvalue
160: .line 1576
aload 22 /* bigD */
aload 14 /* bigB */
invokevirtual sun.misc.FDBigInt.sub:(Lsun/misc/FDBigInt;)Lsun/misc/FDBigInt;
astore 23 /* diff */
start local 23 // sun.misc.FDBigInt diff
161: .line 1582
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt int int
StackMap stack:
iload 16 /* B5 */
iload 19 /* Ulp2 */
invokestatic sun.misc.FloatingDecimal.constructPow52:(II)Lsun/misc/FDBigInt;
astore 26 /* halfUlp */
start local 26 // sun.misc.FDBigInt halfUlp
162: .line 1583
aload 23 /* diff */
aload 26 /* halfUlp */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
dup
istore 24 /* cmpResult */
ifge 168
163: .line 1586
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 177
164: .line 1587
aload 0 /* this */
iload 25 /* overvalue */
ifeq 165
iconst_m1
goto 166
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt int int sun.misc.FDBigInt
StackMap stack: sun.misc.FloatingDecimal
165: iconst_1
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt int int sun.misc.FDBigInt
StackMap stack: sun.misc.FloatingDecimal int
166: putfield sun.misc.FloatingDecimal.roundDir:I
167: .line 1589
goto 177
168: .line 1590
StackMap locals:
StackMap stack:
iload 24 /* cmpResult */
ifne 175
169: .line 1593
dload 4 /* dValue */
ldc 0.5
dload 4 /* dValue */
iload 25 /* overvalue */
invokestatic sun.misc.FloatingDecimal.ulp:(DZ)D
dmul
dadd
dstore 4 /* dValue */
170: .line 1595
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 177
171: .line 1596
aload 0 /* this */
iload 25 /* overvalue */
ifeq 172
iconst_m1
goto 173
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
172: iconst_1
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt sun.misc.FDBigInt int int int int int int int sun.misc.FDBigInt sun.misc.FDBigInt int int sun.misc.FDBigInt
StackMap stack: sun.misc.FloatingDecimal int
173: putfield sun.misc.FloatingDecimal.roundDir:I
174: .line 1598
goto 177
175: .line 1604
StackMap locals:
StackMap stack:
dload 4 /* dValue */
dload 4 /* dValue */
iload 25 /* overvalue */
invokestatic sun.misc.FloatingDecimal.ulp:(DZ)D
dadd
dstore 4 /* dValue */
176: .line 1605
dload 4 /* dValue */
dconst_0
dcmpl
ifeq 177
dload 4 /* dValue */
ldc Infinity
dcmpl
ifne 120
end local 26 // sun.misc.FDBigInt halfUlp
end local 25 // boolean overvalue
end local 24 // int cmpResult
end local 23 // sun.misc.FDBigInt diff
end local 22 // sun.misc.FDBigInt bigD
end local 21 // int common2
end local 20 // int hulpbias
end local 19 // int Ulp2
end local 18 // int D5
end local 17 // int D2
end local 16 // int B5
end local 15 // int B2
end local 14 // sun.misc.FDBigInt bigB
177: .line 1611
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int sun.misc.FDBigInt
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 178
dload 4 /* dValue */
dneg
goto 179
StackMap locals:
StackMap stack:
178: dload 4 /* dValue */
StackMap locals:
StackMap stack: double
179: dreturn
end local 13 // sun.misc.FDBigInt bigD0
end local 12 // int exp
end local 11 // int iDigits
end local 10 // int iValue
end local 4 // double dValue
end local 2 // long lValue
end local 1 // int kDigits
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 180 0 this Lsun/misc/FloatingDecimal;
1 180 1 kDigits I
17 180 2 lValue J
23 180 4 dValue D
32 41 6 rValue D
45 54 6 rValue D
56 65 6 rValue D
34 38 8 tValue D
47 51 8 tValue D
57 65 8 tValue D
10 180 10 iValue I
11 180 11 iDigits I
12 16 12 i I
18 22 12 i I
24 180 12 exp I
42 54 13 slop I
74 89 13 j I
80 89 14 t D
100 115 13 j I
106 115 14 t D
119 180 13 bigD0 Lsun/misc/FDBigInt;
121 177 14 bigB Lsun/misc/FDBigInt;
124 127 15 B2 I
129 177 15 B2 I
123 127 16 B5 I
128 177 16 B5 I
126 127 17 D2 I
131 177 17 D2 I
125 127 18 D5 I
130 177 18 D5 I
136 177 19 Ulp2 I
138 139 20 hulpbias I
140 177 20 hulpbias I
143 177 21 common2 I
148 177 22 bigD Lsun/misc/FDBigInt;
152 158 23 diff Lsun/misc/FDBigInt;
161 177 23 diff Lsun/misc/FDBigInt;
149 177 24 cmpResult I
151 158 25 overvalue Z
160 177 25 overvalue Z
162 177 26 halfUlp Lsun/misc/FDBigInt;
public strict float floatValue();
descriptor: ()F
flags: (0x0801) ACC_PUBLIC, ACC_STRICT
Code:
stack=4, locals=9, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 1626
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 8
invokestatic java.lang.Math.min:(II)I
istore 1 /* kDigits */
start local 1 // int kDigits
1: .line 1631
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.infinity:[C
if_acmpeq 2
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.notANumber:[C
if_acmpne 7
2: .line 1632
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
getstatic sun.misc.FloatingDecimal.notANumber:[C
if_acmpne 4
3: .line 1633
ldc NaN
freturn
4: .line 1635
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 5
ldc -Infinity
goto 6
StackMap locals:
StackMap stack:
5: ldc Infinity
StackMap locals:
StackMap stack: float
6: freturn
7: .line 1641
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
caload
bipush 48
isub
istore 2 /* iValue */
start local 2 // int iValue
8: .line 1642
iconst_1
istore 4 /* i */
start local 4 // int i
9: goto 12
10: .line 1643
StackMap locals: sun.misc.FloatingDecimal int int top int
StackMap stack:
iload 2 /* iValue */
bipush 10
imul
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 4 /* i */
caload
iadd
bipush 48
isub
istore 2 /* iValue */
11: .line 1642
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 4 /* i */
iload 1 /* kDigits */
if_icmplt 10
end local 4 // int i
13: .line 1645
iload 2 /* iValue */
i2f
fstore 3 /* fValue */
start local 3 // float fValue
14: .line 1646
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 1 /* kDigits */
isub
istore 4 /* exp */
start local 4 // int exp
15: .line 1653
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 7
if_icmpgt 38
16: .line 1664
iload 4 /* exp */
ifeq 17
fload 3 /* fValue */
fconst_0
fcmpl
ifne 20
17: .line 1665
StackMap locals: sun.misc.FloatingDecimal int int float int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 18
fload 3 /* fValue */
fneg
goto 19
StackMap locals:
StackMap stack:
18: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
19: freturn
20: .line 1666
StackMap locals:
StackMap stack:
iload 4 /* exp */
iflt 33
21: .line 1667
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
if_icmpgt 26
22: .line 1672
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
faload
fmul
fstore 3 /* fValue */
23: .line 1673
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 24
fload 3 /* fValue */
fneg
goto 25
StackMap locals:
StackMap stack:
24: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
25: freturn
26: .line 1675
StackMap locals:
StackMap stack:
bipush 7
iload 1 /* kDigits */
isub
istore 5 /* slop */
start local 5 // int slop
27: .line 1676
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
iload 5 /* slop */
iadd
if_icmpgt 52
28: .line 1683
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 5 /* slop */
faload
fmul
fstore 3 /* fValue */
29: .line 1684
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
iload 5 /* slop */
isub
faload
fmul
fstore 3 /* fValue */
30: .line 1685
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 31
fload 3 /* fValue */
fneg
goto 32
StackMap locals: int
StackMap stack:
31: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
32: freturn
end local 5 // int slop
33: .line 1691
StackMap locals:
StackMap stack:
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
ineg
if_icmplt 52
34: .line 1695
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
ineg
faload
fdiv
fstore 3 /* fValue */
35: .line 1696
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 36
fload 3 /* fValue */
fneg
goto 37
StackMap locals:
StackMap stack:
36: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
37: freturn
38: .line 1702
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
if_icmplt 52
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iadd
bipush 15
if_icmpgt 52
39: .line 1712
iload 2 /* iValue */
i2l
lstore 5 /* lValue */
start local 5 // long lValue
40: .line 1713
iload 1 /* kDigits */
istore 7 /* i */
start local 7 // int i
41: goto 44
42: .line 1714
StackMap locals: long int
StackMap stack:
lload 5 /* lValue */
ldc 10
lmul
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 7 /* i */
caload
bipush 48
isub
i2l
ladd
lstore 5 /* lValue */
43: .line 1713
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
44: iload 7 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
if_icmplt 42
end local 7 // int i
45: .line 1716
lload 5 /* lValue */
l2d
dstore 7 /* dValue */
start local 7 // double dValue
46: .line 1717
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
isub
istore 4 /* exp */
47: .line 1718
dload 7 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 4 /* exp */
daload
dmul
dstore 7 /* dValue */
48: .line 1719
dload 7 /* dValue */
d2f
fstore 3 /* fValue */
49: .line 1720
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 50
fload 3 /* fValue */
fneg
goto 51
StackMap locals: sun.misc.FloatingDecimal int int float int long double
StackMap stack:
50: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
51: freturn
end local 7 // double dValue
end local 5 // long lValue
52: .line 1732
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush 39
if_icmple 56
53: .line 1737
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 54
ldc -Infinity
goto 55
StackMap locals:
StackMap stack:
54: ldc Infinity
StackMap locals:
StackMap stack: float
55: freturn
56: .line 1738
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush -46
if_icmpge 60
57: .line 1743
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isNegative:Z
ifeq 58
ldc -0.0
goto 59
StackMap locals:
StackMap stack:
58: fconst_0
StackMap locals:
StackMap stack: float
59: freturn
60: .line 1758
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.fromHex:Z
ifeq 61
iconst_0
goto 62
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
61: iconst_1
StackMap locals: sun.misc.FloatingDecimal int int float int
StackMap stack: sun.misc.FloatingDecimal int
62: putfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
63: .line 1759
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.doubleValue:()D
dstore 5 /* dValue */
start local 5 // double dValue
64: .line 1760
aload 0 /* this */
dload 5 /* dValue */
invokevirtual sun.misc.FloatingDecimal.stickyRound:(D)F
freturn
end local 5 // double dValue
end local 4 // int exp
end local 3 // float fValue
end local 2 // int iValue
end local 1 // int kDigits
end local 0 // sun.misc.FloatingDecimal this
LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lsun/misc/FloatingDecimal;
1 65 1 kDigits I
8 65 2 iValue I
14 65 3 fValue F
9 13 4 i I
15 65 4 exp I
27 33 5 slop I
40 52 5 lValue J
41 45 7 i I
46 52 7 dValue D
64 65 5 dValue D
private static synchronized java.util.regex.Pattern getHexFloatPattern();
descriptor: ()Ljava/util/regex/Pattern;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=0, args_size=0
0: .line 1882
getstatic sun.misc.FloatingDecimal.hexFloatPattern:Ljava/util/regex/Pattern;
ifnonnull 3
1: .line 1885
ldc "([-+])?0[xX](((\\p{XDigit}+)\\.?)|((\\p{XDigit}*)\\.(\\p{XDigit}+)))[pP]([-+])?(\\p{Digit}+)[fFdD]?"
2: .line 1883
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic sun.misc.FloatingDecimal.hexFloatPattern:Ljava/util/regex/Pattern;
3: .line 1888
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.hexFloatPattern:Ljava/util/regex/Pattern;
areturn
LocalVariableTable:
Start End Slot Name Signature
static sun.misc.FloatingDecimal parseHexString(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/misc/FloatingDecimal;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=28, args_size=1
start local 0 // java.lang.String s
0: .line 1899
invokestatic sun.misc.FloatingDecimal.getHexFloatPattern:()Ljava/util/regex/Pattern;
aload 0 /* s */
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 1 /* m */
start local 1 // java.util.regex.Matcher m
1: .line 1900
aload 1 /* m */
invokevirtual java.util.regex.Matcher.matches:()Z
istore 2 /* validInput */
start local 2 // boolean validInput
2: .line 1902
iload 2 /* validInput */
ifne 4
3: .line 1904
new java.lang.NumberFormatException
dup
new java.lang.StringBuilder
dup
ldc "For input string: \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* s */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
4: .line 1931
StackMap locals: java.util.regex.Matcher int
StackMap stack:
aload 1 /* m */
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 3 /* group1 */
start local 3 // java.lang.String group1
5: .line 1932
aload 3 /* group1 */
ifnull 6
aload 3 /* group1 */
ldc "+"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
StackMap locals: java.lang.String
StackMap stack:
6: dconst_1
goto 8
StackMap locals:
StackMap stack:
7: ldc -1.0
StackMap locals:
StackMap stack: double
8: dstore 4 /* sign */
start local 4 // double sign
9: .line 1964
aconst_null
astore 6 /* significandString */
start local 6 // java.lang.String significandString
10: .line 1965
iconst_0
istore 7 /* signifLength */
start local 7 // int signifLength
11: .line 1966
iconst_0
istore 8 /* exponentAdjust */
start local 8 // int exponentAdjust
12: .line 1968
iconst_0
istore 9 /* leftDigits */
start local 9 // int leftDigits
13: .line 1971
iconst_0
istore 10 /* rightDigits */
start local 10 // int rightDigits
14: .line 1985
aload 1 /* m */
iconst_4
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
dup
astore 11 /* group4 */
start local 11 // java.lang.String group4
15: ifnull 19
16: .line 1987
aload 11 /* group4 */
invokestatic sun.misc.FloatingDecimal.stripLeadingZeros:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* significandString */
17: .line 1988
aload 6 /* significandString */
invokevirtual java.lang.String.length:()I
istore 9 /* leftDigits */
18: .line 1989
goto 29
19: .line 1993
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int int int java.lang.String
StackMap stack:
aload 1 /* m */
bipush 6
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic sun.misc.FloatingDecimal.stripLeadingZeros:(Ljava/lang/String;)Ljava/lang/String;
astore 12 /* group6 */
start local 12 // java.lang.String group6
20: .line 1994
aload 12 /* group6 */
invokevirtual java.lang.String.length:()I
istore 9 /* leftDigits */
21: .line 1997
aload 1 /* m */
bipush 7
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 13 /* group7 */
start local 13 // java.lang.String group7
22: .line 1998
aload 13 /* group7 */
invokevirtual java.lang.String.length:()I
istore 10 /* rightDigits */
23: .line 2002
new java.lang.StringBuilder
dup
aload 12 /* group6 */
ifnonnull 24
ldc ""
goto 25
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int int int java.lang.String java.lang.String java.lang.String
StackMap stack: new 23 new 23
24: aload 12 /* group6 */
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int int int java.lang.String java.lang.String java.lang.String
StackMap stack: new 23 new 23 java.lang.String
25: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: .line 2004
aload 13 /* group7 */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: .line 2002
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: .line 2001
astore 6 /* significandString */
end local 13 // java.lang.String group7
end local 12 // java.lang.String group6
29: .line 2007
StackMap locals:
StackMap stack:
aload 6 /* significandString */
invokestatic sun.misc.FloatingDecimal.stripLeadingZeros:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* significandString */
30: .line 2008
aload 6 /* significandString */
invokevirtual java.lang.String.length:()I
istore 7 /* signifLength */
31: .line 2013
iload 9 /* leftDigits */
iconst_1
if_icmplt 34
32: .line 2014
iconst_4
iload 9 /* leftDigits */
iconst_1
isub
imul
istore 8 /* exponentAdjust */
33: .line 2015
goto 35
34: .line 2016
StackMap locals:
StackMap stack:
bipush -4
iload 10 /* rightDigits */
iload 7 /* signifLength */
isub
iconst_1
iadd
imul
istore 8 /* exponentAdjust */
35: .line 2022
StackMap locals:
StackMap stack:
iload 7 /* signifLength */
ifne 37
36: .line 2023
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
dconst_0
dmul
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
end local 11 // java.lang.String group4
end local 10 // int rightDigits
end local 9 // int leftDigits
37: .line 2035
StackMap locals:
StackMap stack:
aload 1 /* m */
bipush 8
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
astore 9 /* group8 */
start local 9 // java.lang.String group8
38: .line 2036
aload 9 /* group8 */
ifnull 39
aload 9 /* group8 */
ldc "+"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 39
iconst_0
goto 40
StackMap locals: java.lang.String
StackMap stack:
39: iconst_1
StackMap locals:
StackMap stack: int
40: istore 10 /* positiveExponent */
start local 10 // boolean positiveExponent
41: .line 2039
aload 1 /* m */
bipush 9
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
i2l
lstore 11 /* unsignedRawExponent */
start local 11 // long unsignedRawExponent
42: .line 2040
goto 49
end local 11 // long unsignedRawExponent
43: .line 2041
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int java.lang.String int
StackMap stack: java.lang.NumberFormatException
pop
44: .line 2055
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
iload 10 /* positiveExponent */
ifeq 46
45: .line 2056
ldc Infinity
goto 47
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int java.lang.String int
StackMap stack: new 44 new 44 double
46: dconst_0
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int java.lang.String int
StackMap stack: new 44 new 44 double double
47: dmul
48: .line 2055
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
start local 11 // long unsignedRawExponent
49: .line 2060
StackMap locals: long
StackMap stack:
iload 10 /* positiveExponent */
ifeq 50
lconst_1
goto 51
StackMap locals:
StackMap stack:
50: ldc -1
51: .line 2061
StackMap locals:
StackMap stack: long
lload 11 /* unsignedRawExponent */
52: .line 2060
lmul
53: .line 2059
lstore 13 /* rawExponent */
start local 13 // long rawExponent
54: .line 2064
lload 13 /* rawExponent */
iload 8 /* exponentAdjust */
i2l
ladd
lstore 15 /* exponent */
start local 15 // long exponent
55: .line 2070
iconst_0
istore 17 /* round */
start local 17 // boolean round
56: .line 2071
iconst_0
istore 18 /* sticky */
start local 18 // boolean sticky
57: .line 2073
iconst_0
istore 19 /* nextShift */
start local 19 // int nextShift
58: .line 2074
lconst_0
lstore 20 /* significand */
start local 20 // long significand
59: .line 2081
aload 6 /* significandString */
iconst_0
invokestatic sun.misc.FloatingDecimal.getHexDigit:(Ljava/lang/String;I)I
i2l
lstore 22 /* leadingDigit */
start local 22 // long leadingDigit
60: .line 2092
lload 22 /* leadingDigit */
lconst_1
lcmp
ifne 64
61: .line 2093
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 52
lshl
lor
lstore 20 /* significand */
62: .line 2094
bipush 48
istore 19 /* nextShift */
63: .line 2095
goto 80
64: .line 2096
StackMap locals: java.lang.String java.util.regex.Matcher int java.lang.String double java.lang.String int int java.lang.String int long long long int int int long long
StackMap stack:
lload 22 /* leadingDigit */
ldc 3
lcmp
ifgt 69
65: .line 2097
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 51
lshl
lor
lstore 20 /* significand */
66: .line 2098
bipush 47
istore 19 /* nextShift */
67: .line 2099
lload 15 /* exponent */
lconst_1
ladd
lstore 15 /* exponent */
68: .line 2100
goto 80
69: .line 2101
StackMap locals:
StackMap stack:
lload 22 /* leadingDigit */
ldc 7
lcmp
ifgt 74
70: .line 2102
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 50
lshl
lor
lstore 20 /* significand */
71: .line 2103
bipush 46
istore 19 /* nextShift */
72: .line 2104
lload 15 /* exponent */
ldc 2
ladd
lstore 15 /* exponent */
73: .line 2105
goto 80
74: .line 2106
StackMap locals:
StackMap stack:
lload 22 /* leadingDigit */
ldc 15
lcmp
ifgt 79
75: .line 2107
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 49
lshl
lor
lstore 20 /* significand */
76: .line 2108
bipush 45
istore 19 /* nextShift */
77: .line 2109
lload 15 /* exponent */
ldc 3
ladd
lstore 15 /* exponent */
78: .line 2110
goto 80
79: .line 2111
StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Result from digit conversion too large!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
80: .line 2133
StackMap locals:
StackMap stack:
iconst_0
istore 24 /* i */
start local 24 // int i
81: .line 2134
iconst_1
istore 24 /* i */
82: .line 2135
goto 87
83: .line 2137
StackMap locals: int
StackMap stack:
aload 6 /* significandString */
iload 24 /* i */
invokestatic sun.misc.FloatingDecimal.getHexDigit:(Ljava/lang/String;I)I
i2l
lstore 25 /* currentDigit */
start local 25 // long currentDigit
84: .line 2138
lload 20 /* significand */
lload 25 /* currentDigit */
iload 19 /* nextShift */
lshl
lor
lstore 20 /* significand */
85: .line 2139
iinc 19 /* nextShift */ -4
end local 25 // long currentDigit
86: .line 2136
iinc 24 /* i */ 1
87: .line 2135
StackMap locals:
StackMap stack:
iload 24 /* i */
iload 7 /* signifLength */
if_icmpge 89
iload 19 /* nextShift */
88: .line 2134
ifge 83
89: .line 2147
StackMap locals:
StackMap stack:
iload 24 /* i */
iload 7 /* signifLength */
if_icmpge 129
90: .line 2148
aload 6 /* significandString */
iload 24 /* i */
invokestatic sun.misc.FloatingDecimal.getHexDigit:(Ljava/lang/String;I)I
i2l
lstore 25 /* currentDigit */
start local 25 // long currentDigit
91: .line 2152
iload 19 /* nextShift */
tableswitch { // -4 - -1
-4: 113
-3: 105
-2: 97
-1: 92
default: 120
}
92: .line 2156
StackMap locals: long
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 14
land
iconst_1
lshr
lor
lstore 20 /* significand */
93: .line 2157
lload 25 /* currentDigit */
lconst_1
land
lconst_0
lcmp
ifeq 94
iconst_1
goto 95
StackMap locals:
StackMap stack:
94: iconst_0
StackMap locals:
StackMap stack: int
95: istore 17 /* round */
96: .line 2158
goto 121
97: .line 2163
StackMap locals:
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 12
land
iconst_2
lshr
lor
lstore 20 /* significand */
98: .line 2164
lload 25 /* currentDigit */
ldc 2
land
lconst_0
lcmp
ifeq 99
iconst_1
goto 100
StackMap locals:
StackMap stack:
99: iconst_0
StackMap locals:
StackMap stack: int
100: istore 17 /* round */
101: .line 2165
lload 25 /* currentDigit */
lconst_1
land
lconst_0
lcmp
ifeq 102
iconst_1
goto 103
StackMap locals:
StackMap stack:
102: iconst_0
StackMap locals:
StackMap stack: int
103: istore 18 /* sticky */
104: .line 2166
goto 121
105: .line 2170
StackMap locals:
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 8
land
iconst_3
lshr
lor
lstore 20 /* significand */
106: .line 2172
lload 25 /* currentDigit */
ldc 4
land
lconst_0
lcmp
ifeq 107
iconst_1
goto 108
StackMap locals:
StackMap stack:
107: iconst_0
StackMap locals:
StackMap stack: int
108: istore 17 /* round */
109: .line 2173
lload 25 /* currentDigit */
ldc 3
land
lconst_0
lcmp
ifeq 110
iconst_1
goto 111
StackMap locals:
StackMap stack:
110: iconst_0
StackMap locals:
StackMap stack: int
111: istore 18 /* sticky */
112: .line 2174
goto 121
113: .line 2179
StackMap locals:
StackMap stack:
lload 25 /* currentDigit */
ldc 8
land
lconst_0
lcmp
ifeq 114
iconst_1
goto 115
StackMap locals:
StackMap stack:
114: iconst_0
StackMap locals:
StackMap stack: int
115: istore 17 /* round */
116: .line 2181
lload 25 /* currentDigit */
ldc 7
land
lconst_0
lcmp
ifeq 117
iconst_1
goto 118
StackMap locals:
StackMap stack:
117: iconst_0
StackMap locals:
StackMap stack: int
118: istore 18 /* sticky */
119: .line 2182
goto 121
120: .line 2185
StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
ldc "Unexpected shift distance remainder."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
121: .line 2194
StackMap locals:
StackMap stack:
iinc 24 /* i */ 1
122: .line 2195
goto 128
123: .line 2196
StackMap locals:
StackMap stack:
aload 6 /* significandString */
iload 24 /* i */
invokestatic sun.misc.FloatingDecimal.getHexDigit:(Ljava/lang/String;I)I
i2l
lstore 25 /* currentDigit */
124: .line 2197
iload 18 /* sticky */
ifne 125
lload 25 /* currentDigit */
lconst_0
lcmp
ifne 125
iconst_0
goto 126
StackMap locals:
StackMap stack:
125: iconst_1
StackMap locals:
StackMap stack: int
126: istore 18 /* sticky */
127: .line 2198
iinc 24 /* i */ 1
128: .line 2195
StackMap locals:
StackMap stack:
iload 24 /* i */
iload 7 /* signifLength */
if_icmpge 129
iload 18 /* sticky */
ifeq 123
end local 25 // long currentDigit
129: .line 2208
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc 1023
lcmp
ifle 131
130: .line 2210
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
ldc Infinity
dmul
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
131: .line 2212
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc 1023
lcmp
ifgt 143
132: .line 2213
lload 15 /* exponent */
ldc -1022
lcmp
iflt 143
133: .line 2226
lload 15 /* exponent */
134: .line 2227
ldc 1023
135: .line 2226
ladd
136: .line 2228
bipush 52
137: .line 2226
lshl
138: .line 2229
ldc 9218868437227405312
139: .line 2226
land
140: .line 2230
ldc 4503599627370495
lload 20 /* significand */
land
141: .line 2226
lor
lstore 20 /* significand */
142: .line 2232
goto 165
143: .line 2235
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc -1075
lcmp
ifge 145
144: .line 2239
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
dconst_0
dmul
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
145: .line 2247
StackMap locals:
StackMap stack:
iload 18 /* sticky */
ifne 146
iload 17 /* round */
ifne 146
iconst_0
goto 147
StackMap locals:
StackMap stack:
146: iconst_1
StackMap locals:
StackMap stack: int
147: istore 18 /* sticky */
148: .line 2248
iconst_0
istore 17 /* round */
149: .line 2256
bipush 53
150: .line 2257
lload 15 /* exponent */
l2i
sipush -1074
isub
iconst_1
iadd
151: .line 2256
isub
istore 25 /* bitsDiscarded */
start local 25 // int bitsDiscarded
152: .line 2258
getstatic sun.misc.FloatingDecimal.$assertionsDisabled:Z
ifne 154
iload 25 /* bitsDiscarded */
iconst_1
if_icmplt 153
iload 25 /* bitsDiscarded */
bipush 53
if_icmple 154
StackMap locals: int
StackMap stack:
153: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
154: .line 2262
StackMap locals:
StackMap stack:
lload 20 /* significand */
lconst_1
iload 25 /* bitsDiscarded */
iconst_1
isub
lshl
land
lconst_0
lcmp
ifeq 155
iconst_1
goto 156
StackMap locals:
StackMap stack:
155: iconst_0
StackMap locals:
StackMap stack: int
156: istore 17 /* round */
157: .line 2263
iload 25 /* bitsDiscarded */
iconst_1
if_icmple 162
158: .line 2266
ldc -1
iload 25 /* bitsDiscarded */
iconst_1
isub
lshl
ldc -1
lxor
lstore 26 /* mask */
start local 26 // long mask
159: .line 2267
iload 18 /* sticky */
ifne 160
lload 20 /* significand */
lload 26 /* mask */
land
lconst_0
lcmp
ifne 160
iconst_0
goto 161
StackMap locals: long
StackMap stack:
160: iconst_1
StackMap locals:
StackMap stack: int
161: istore 18 /* sticky */
end local 26 // long mask
162: .line 2271
StackMap locals:
StackMap stack:
lload 20 /* significand */
iload 25 /* bitsDiscarded */
lshr
lstore 20 /* significand */
163: .line 2277
ldc 4503599627370495
lload 20 /* significand */
land
164: .line 2273
lstore 20 /* significand */
end local 25 // int bitsDiscarded
165: .line 2306
StackMap locals:
StackMap stack:
lload 20 /* significand */
lconst_1
land
lconst_0
lcmp
ifne 166
iconst_1
goto 167
StackMap locals:
StackMap stack:
166: iconst_0
StackMap locals:
StackMap stack: int
167: istore 25 /* leastZero */
start local 25 // boolean leastZero
168: .line 2307
iload 25 /* leastZero */
ifeq 169
iload 17 /* round */
ifeq 169
iload 18 /* sticky */
ifne 170
169: .line 2308
StackMap locals: int
StackMap stack:
iload 25 /* leastZero */
ifne 171
iload 17 /* round */
ifeq 171
170: .line 2310
StackMap locals:
StackMap stack:
lload 20 /* significand */
lconst_1
ladd
lstore 20 /* significand */
171: .line 2313
StackMap locals:
StackMap stack:
new sun.misc.FloatingDecimal
dup
172: .line 2314
lload 20 /* significand */
invokestatic java.lang.Double.longBitsToDouble:(J)D
173: .line 2315
dload 4 /* sign */
174: .line 2313
invokestatic sun.misc.FpUtils.rawCopySign:(DD)D
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
astore 26 /* fd */
start local 26 // sun.misc.FloatingDecimal fd
175: .line 2340
lload 15 /* exponent */
ldc -150
lcmp
iflt 185
176: .line 2341
lload 15 /* exponent */
ldc 127
lcmp
ifgt 185
177: .line 2359
lload 20 /* significand */
ldc 268435455
land
lconst_0
lcmp
ifne 185
178: .line 2368
iload 17 /* round */
ifne 179
iload 18 /* sticky */
ifeq 185
179: .line 2369
StackMap locals: sun.misc.FloatingDecimal
StackMap stack:
iload 25 /* leastZero */
ifeq 183
180: .line 2378
iload 17 /* round */
iload 18 /* sticky */
ixor
ifeq 185
181: .line 2379
aload 26 /* fd */
iconst_1
putfield sun.misc.FloatingDecimal.roundDir:I
182: .line 2381
goto 185
183: .line 2390
StackMap locals:
StackMap stack:
iload 17 /* round */
ifeq 185
184: .line 2391
aload 26 /* fd */
iconst_m1
putfield sun.misc.FloatingDecimal.roundDir:I
185: .line 2397
StackMap locals:
StackMap stack:
aload 26 /* fd */
iconst_1
putfield sun.misc.FloatingDecimal.fromHex:Z
186: .line 2398
aload 26 /* fd */
areturn
end local 26 // sun.misc.FloatingDecimal fd
end local 25 // boolean leastZero
end local 24 // int i
end local 22 // long leadingDigit
end local 20 // long significand
end local 19 // int nextShift
end local 18 // boolean sticky
end local 17 // boolean round
end local 15 // long exponent
end local 13 // long rawExponent
end local 11 // long unsignedRawExponent
end local 10 // boolean positiveExponent
end local 9 // java.lang.String group8
end local 8 // int exponentAdjust
end local 7 // int signifLength
end local 6 // java.lang.String significandString
end local 4 // double sign
end local 3 // java.lang.String group1
end local 2 // boolean validInput
end local 1 // java.util.regex.Matcher m
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 187 0 s Ljava/lang/String;
1 187 1 m Ljava/util/regex/Matcher;
2 187 2 validInput Z
5 187 3 group1 Ljava/lang/String;
9 187 4 sign D
10 187 6 significandString Ljava/lang/String;
11 187 7 signifLength I
12 187 8 exponentAdjust I
13 37 9 leftDigits I
14 37 10 rightDigits I
15 37 11 group4 Ljava/lang/String;
20 29 12 group6 Ljava/lang/String;
22 29 13 group7 Ljava/lang/String;
38 187 9 group8 Ljava/lang/String;
41 187 10 positiveExponent Z
42 43 11 unsignedRawExponent J
49 187 11 unsignedRawExponent J
54 187 13 rawExponent J
55 187 15 exponent J
56 187 17 round Z
57 187 18 sticky Z
58 187 19 nextShift I
59 187 20 significand J
60 187 22 leadingDigit J
81 187 24 i I
84 86 25 currentDigit J
91 129 25 currentDigit J
152 165 25 bitsDiscarded I
159 162 26 mask J
168 187 25 leastZero Z
175 187 26 fd Lsun/misc/FloatingDecimal;
Exception table:
from to target type
41 42 43 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
s
static java.lang.String stripLeadingZeros(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.lang.String s
0: .line 2407
aload 0 /* s */
ldc "^0+"
ldc ""
invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
static int getHexDigit(java.lang.String, int);
descriptor: (Ljava/lang/String;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 // java.lang.String s
start local 1 // int position
0: .line 2415
aload 0 /* s */
iload 1 /* position */
invokevirtual java.lang.String.charAt:(I)C
bipush 16
invokestatic java.lang.Character.digit:(CI)I
istore 2 /* value */
start local 2 // int value
1: .line 2416
iload 2 /* value */
iconst_m1
if_icmple 2
iload 2 /* value */
bipush 16
if_icmplt 5
2: .line 2417
StackMap locals: int
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected failure of digit conversion of "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: .line 2418
aload 0 /* s */
iload 1 /* position */
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: .line 2417
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: .line 2420
StackMap locals:
StackMap stack:
iload 2 /* value */
ireturn
end local 2 // int value
end local 1 // int position
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 6 0 s Ljava/lang/String;
0 6 1 position I
1 6 2 value I
MethodParameters:
Name Flags
s
position
}
SourceFile: "FloatingDecimal.java"
NestMembers:
sun.misc.FloatingDecimal$1
InnerClasses:
sun.misc.FloatingDecimal$1