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 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 983
new sun.misc.FloatingDecimal$1
dup
invokespecial sun.misc.FloatingDecimal$1.<init>:()V
putstatic sun.misc.FloatingDecimal.perThreadBuffer:Ljava/lang/ThreadLocal;
4: .line 1759
bipush 23
newarray 7
dup
iconst_0
5: .line 1760
dconst_1
dastore
dup
iconst_1
6: .line 1761
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 1762
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 1763
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 1764
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 1765
ldc 1.0E21
dastore
dup
bipush 22
ldc 1.0E22
dastore
11: .line 1759
putstatic sun.misc.FloatingDecimal.small10pow:[D
12: .line 1768
bipush 11
newarray 6
dup
iconst_0
13: .line 1769
fconst_1
fastore
dup
iconst_1
14: .line 1770
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 1771
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 1768
putstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
17: .line 1774
iconst_5
newarray 7
dup
iconst_0
18: .line 1775
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 1774
putstatic sun.misc.FloatingDecimal.big10pow:[D
20: .line 1776
iconst_5
newarray 7
dup
iconst_0
21: .line 1777
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 1776
putstatic sun.misc.FloatingDecimal.tiny10pow:[D
23: .line 1779
getstatic sun.misc.FloatingDecimal.small10pow:[D
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal.maxSmallTen:I
24: .line 1780
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
25: .line 1782
bipush 14
newarray 10
dup
iconst_0
26: .line 1783
iconst_1
iastore
dup
iconst_1
27: .line 1784
iconst_5
iastore
dup
iconst_2
28: .line 1785
bipush 25
iastore
dup
iconst_3
29: .line 1786
bipush 125
iastore
dup
iconst_4
30: .line 1787
sipush 625
iastore
dup
iconst_5
31: .line 1788
sipush 3125
iastore
dup
bipush 6
32: .line 1789
sipush 15625
iastore
dup
bipush 7
33: .line 1790
ldc 78125
iastore
dup
bipush 8
34: .line 1791
ldc 390625
iastore
dup
bipush 9
35: .line 1792
ldc 1953125
iastore
dup
bipush 10
36: .line 1793
ldc 9765625
iastore
dup
bipush 11
37: .line 1794
ldc 48828125
iastore
dup
bipush 12
38: .line 1795
ldc 244140625
iastore
dup
bipush 13
39: .line 1796
ldc 1220703125
iastore
40: .line 1782
putstatic sun.misc.FloatingDecimal.small5pow:[I
41: .line 1800
bipush 27
newarray 11
dup
iconst_0
42: .line 1801
lconst_1
lastore
dup
iconst_1
43: .line 1802
ldc 5
lastore
dup
iconst_2
44: .line 1803
ldc 25
lastore
dup
iconst_3
45: .line 1804
ldc 125
lastore
dup
iconst_4
46: .line 1805
ldc 625
lastore
dup
iconst_5
47: .line 1806
ldc 3125
lastore
dup
bipush 6
48: .line 1807
ldc 15625
lastore
dup
bipush 7
49: .line 1808
ldc 78125
lastore
dup
bipush 8
50: .line 1809
ldc 390625
lastore
dup
bipush 9
51: .line 1810
ldc 1953125
lastore
dup
bipush 10
52: .line 1811
ldc 9765625
lastore
dup
bipush 11
53: .line 1812
ldc 48828125
lastore
dup
bipush 12
54: .line 1813
ldc 244140625
lastore
dup
bipush 13
55: .line 1814
ldc 1220703125
lastore
dup
bipush 14
56: .line 1815
ldc 6103515625
lastore
dup
bipush 15
57: .line 1816
ldc 30517578125
lastore
dup
bipush 16
58: .line 1817
ldc 152587890625
lastore
dup
bipush 17
59: .line 1818
ldc 762939453125
lastore
dup
bipush 18
60: .line 1819
ldc 3814697265625
lastore
dup
bipush 19
61: .line 1820
ldc 19073486328125
lastore
dup
bipush 20
62: .line 1821
ldc 95367431640625
lastore
dup
bipush 21
63: .line 1822
ldc 476837158203125
lastore
dup
bipush 22
64: .line 1823
ldc 2384185791015625
lastore
dup
bipush 23
65: .line 1824
ldc 11920928955078125
lastore
dup
bipush 24
66: .line 1825
ldc 59604644775390625
lastore
dup
bipush 25
67: .line 1826
ldc 298023223876953125
lastore
dup
bipush 26
68: .line 1827
ldc 1490116119384765625
lastore
69: .line 1800
putstatic sun.misc.FloatingDecimal.long5pow:[J
70: .line 1831
bipush 27
newarray 10
dup
iconst_1
71: .line 1833
iconst_3
iastore
dup
iconst_2
72: .line 1834
iconst_5
iastore
dup
iconst_3
73: .line 1835
bipush 7
iastore
dup
iconst_4
74: .line 1836
bipush 10
iastore
dup
iconst_5
75: .line 1837
bipush 12
iastore
dup
bipush 6
76: .line 1838
bipush 14
iastore
dup
bipush 7
77: .line 1839
bipush 17
iastore
dup
bipush 8
78: .line 1840
bipush 19
iastore
dup
bipush 9
79: .line 1841
bipush 21
iastore
dup
bipush 10
80: .line 1842
bipush 24
iastore
dup
bipush 11
81: .line 1843
bipush 26
iastore
dup
bipush 12
82: .line 1844
bipush 28
iastore
dup
bipush 13
83: .line 1845
bipush 31
iastore
dup
bipush 14
84: .line 1846
bipush 33
iastore
dup
bipush 15
85: .line 1847
bipush 35
iastore
dup
bipush 16
86: .line 1848
bipush 38
iastore
dup
bipush 17
87: .line 1849
bipush 40
iastore
dup
bipush 18
88: .line 1850
bipush 42
iastore
dup
bipush 19
89: .line 1851
bipush 45
iastore
dup
bipush 20
90: .line 1852
bipush 47
iastore
dup
bipush 21
91: .line 1853
bipush 49
iastore
dup
bipush 22
92: .line 1854
bipush 52
iastore
dup
bipush 23
93: .line 1855
bipush 54
iastore
dup
bipush 24
94: .line 1856
bipush 56
iastore
dup
bipush 25
95: .line 1857
bipush 59
iastore
dup
bipush 26
96: .line 1858
bipush 61
iastore
97: .line 1831
putstatic sun.misc.FloatingDecimal.n5bits:[I
98: .line 1861
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 1862
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 1863
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 1872
ldc "([-+])?0[xX](((\\p{XDigit}+)\\.?)|((\\p{XDigit}*)\\.(\\p{XDigit}+)))[pP]([-+])?(\\p{Digit}+)[fFdD]?"
102: .line 1870
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic sun.misc.FloatingDecimal.hexFloatPattern:Ljava/util/regex/Pattern;
103: .line 1873
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 101
lload 0 /* v */
lconst_0
lcmp
ifne 2
iconst_0
ireturn
1: .line 104
StackMap locals:
StackMap stack:
lload 0 /* v */
bipush 8
lshl
lstore 0 /* v */
2: .line 103
StackMap locals:
StackMap stack:
lload 0 /* v */
ldc -72057594037927936
land
lconst_0
lcmp
ifeq 1
3: .line 106
goto 5
4: .line 107
StackMap locals:
StackMap stack:
lload 0 /* v */
iconst_1
lshl
lstore 0 /* v */
5: .line 106
StackMap locals:
StackMap stack:
lload 0 /* v */
lconst_0
lcmp
ifgt 4
6: .line 110
iconst_0
istore 2 /* n */
start local 2 // int n
7: .line 111
goto 10
8: .line 112
StackMap locals: int
StackMap stack:
lload 0 /* v */
bipush 8
lshl
lstore 0 /* v */
9: .line 113
iinc 2 /* n */ 8
10: .line 111
StackMap locals:
StackMap stack:
lload 0 /* v */
ldc 72057594037927935
land
lconst_0
lcmp
ifne 8
11: .line 115
goto 14
12: .line 116
StackMap locals:
StackMap stack:
lload 0 /* v */
iconst_1
lshl
lstore 0 /* v */
13: .line 117
iinc 2 /* n */ 1
14: .line 115
StackMap locals:
StackMap stack:
lload 0 /* v */
lconst_0
lcmp
ifne 12
15: .line 119
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 129
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 130
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
ifnonnull 4
2: .line 131
iload 0 /* p */
iconst_1
iadd
anewarray sun.misc.FDBigInt
putstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
3: .line 132
goto 8
StackMap locals:
StackMap stack:
4: getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
arraylength
iload 0 /* p */
if_icmpgt 8
5: .line 133
iload 0 /* p */
iconst_1
iadd
anewarray sun.misc.FDBigInt
astore 1 /* t */
start local 1 // sun.misc.FDBigInt[] t
6: .line 134
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 135
aload 1 /* t */
putstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
end local 1 // sun.misc.FDBigInt[] t
8: .line 137
StackMap locals:
StackMap stack:
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aaload
ifnull 10
9: .line 138
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 0 /* p */
aaload
areturn
10: .line 139
StackMap locals:
StackMap stack:
iload 0 /* p */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 12
11: .line 140
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 141
StackMap locals:
StackMap stack:
iload 0 /* p */
getstatic sun.misc.FloatingDecimal.long5pow:[J
arraylength
if_icmpge 14
13: .line 142
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 151
StackMap locals:
StackMap stack:
iload 0 /* p */
iconst_1
ishr
istore 1 /* q */
start local 1 // int q
15: .line 152
iload 0 /* p */
iload 1 /* q */
isub
istore 2 /* r */
start local 2 // int r
16: .line 153
getstatic sun.misc.FloatingDecimal.b5p:[Lsun/misc/FDBigInt;
iload 1 /* q */
aaload
astore 3 /* bigq */
start local 3 // sun.misc.FDBigInt bigq
17: .line 154
aload 3 /* bigq */
ifnonnull 19
18: .line 155
iload 1 /* q */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
astore 3 /* bigq */
19: .line 156
StackMap locals: int int sun.misc.FDBigInt
StackMap stack:
iload 2 /* r */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 21
20: .line 157
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 159
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 160
aload 4 /* bigr */
ifnonnull 24
23: .line 161
iload 2 /* r */
invokestatic sun.misc.FloatingDecimal.big5pow:(I)Lsun/misc/FDBigInt;
astore 4 /* bigr */
24: .line 162
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 172
iload 1 /* p5 */
ifeq 5
1: .line 173
iload 1 /* p5 */
getstatic sun.misc.FloatingDecimal.small5pow:[I
arraylength
if_icmpge 4
2: .line 174
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 175
goto 5
4: .line 176
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 179
StackMap locals:
StackMap stack:
iload 2 /* p2 */
ifeq 7
6: .line 180
aload 0 /* v */
iload 2 /* p2 */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
7: .line 182
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 190
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 191
iload 1 /* p2 */
ifeq 3
2: .line 192
aload 2 /* v */
iload 1 /* p2 */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
3: .line 194
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 209
dload 1 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
ldc 9223372036854775807
land
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 210
lload 3 /* lbits */
bipush 52
lushr
l2i
istore 5 /* binexp */
start local 5 // int binexp
2: .line 211
lload 3 /* lbits */
ldc 4503599627370495
land
lstore 3 /* lbits */
3: .line 212
iload 5 /* binexp */
ifle 6
4: .line 213
lload 3 /* lbits */
ldc 4503599627370496
lor
lstore 3 /* lbits */
5: .line 214
goto 12
6: .line 215
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 216
StackMap locals:
StackMap stack:
iinc 5 /* binexp */ 1
8: .line 217
goto 11
9: .line 218
StackMap locals:
StackMap stack:
lload 3 /* lbits */
iconst_1
lshl
lstore 3 /* lbits */
10: .line 219
iinc 5 /* binexp */ -1
11: .line 217
StackMap locals:
StackMap stack:
lload 3 /* lbits */
ldc 4503599627370496
land
lconst_0
lcmp
ifeq 9
12: .line 222
StackMap locals:
StackMap stack:
iinc 5 /* binexp */ -1023
13: .line 223
lload 3 /* lbits */
invokestatic sun.misc.FloatingDecimal.countBits:(J)I
istore 6 /* nbits */
start local 6 // int nbits
14: .line 228
bipush 53
iload 6 /* nbits */
isub
istore 7 /* lowOrderZeros */
start local 7 // int lowOrderZeros
15: .line 229
lload 3 /* lbits */
iload 7 /* lowOrderZeros */
lushr
lstore 3 /* lbits */
16: .line 231
aload 0 /* this */
iload 5 /* binexp */
iconst_1
iadd
iload 6 /* nbits */
isub
putfield sun.misc.FloatingDecimal.bigIntExp:I
17: .line 232
aload 0 /* this */
iload 6 /* nbits */
putfield sun.misc.FloatingDecimal.bigIntNBits:I
18: .line 233
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 244
dload 0 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
ldc 9223372036854775807
land
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 245
lload 3 /* lbits */
bipush 52
lushr
l2i
istore 5 /* binexp */
start local 5 // int binexp
2: .line 247
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 250
iinc 5 /* binexp */ -1
4: .line 252
StackMap locals: long int
StackMap stack:
iload 5 /* binexp */
bipush 52
if_icmple 7
5: .line 253
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 254
goto 11
end local 6 // double ulpval
StackMap locals:
StackMap stack:
7: iload 5 /* binexp */
ifne 10
8: .line 255
ldc 4.9E-324
dstore 6 /* ulpval */
start local 6 // double ulpval
9: .line 256
goto 11
end local 6 // double ulpval
10: .line 257
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 259
StackMap locals: double
StackMap stack:
iload 2 /* subtracting */
ifeq 12
dload 6 /* ulpval */
dneg
dstore 6 /* ulpval */
12: .line 261
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 275
dload 1 /* dval */
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 3 /* lbits */
start local 3 // long lbits
1: .line 276
lload 3 /* lbits */
ldc 9218868437227405312
land
lstore 5 /* binexp */
start local 5 // long binexp
2: .line 277
lload 5 /* binexp */
lconst_0
lcmp
ifeq 3
lload 5 /* binexp */
ldc 9218868437227405312
lcmp
ifne 4
3: .line 280
StackMap locals: long long
StackMap stack:
dload 1 /* dval */
d2f
freturn
4: .line 282
StackMap locals:
StackMap stack:
lload 3 /* lbits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.roundDir:I
i2l
ladd
lstore 3 /* lbits */
5: .line 283
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 312
iconst_0
istore 10 /* i */
start local 10 // int i
1: goto 4
2: .line 313
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 312
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
4: lload 4 /* insignificant */
ldc 10
lcmp
ifge 2
5: .line 314
iload 10 /* i */
ifeq 12
6: .line 315
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 10 /* i */
laload
iload 10 /* i */
lshl
lstore 11 /* pow10 */
start local 11 // long pow10
7: .line 316
lload 2 /* lvalue */
lload 11 /* pow10 */
lrem
lstore 13 /* residue */
start local 13 // long residue
8: .line 317
lload 2 /* lvalue */
lload 11 /* pow10 */
ldiv
lstore 2 /* lvalue */
9: .line 318
iload 1 /* decExponent */
iload 10 /* i */
iadd
istore 1 /* decExponent */
10: .line 319
lload 13 /* residue */
lload 11 /* pow10 */
iconst_1
lshr
lcmp
iflt 12
11: .line 321
lload 2 /* lvalue */
lconst_1
ladd
lstore 2 /* lvalue */
end local 13 // long residue
end local 11 // long pow10
12: .line 324
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
ldc 2147483647
lcmp
ifgt 33
13: .line 325
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 328
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
l2i
istore 11 /* ivalue */
start local 11 // int ivalue
15: .line 329
bipush 10
istore 7 /* ndigits */
start local 7 // int ndigits
16: .line 330
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 331
iload 7 /* ndigits */
iconst_1
isub
istore 8 /* digitno */
start local 8 // int digitno
18: .line 332
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
start local 9 // int c
19: .line 333
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
20: .line 334
goto 24
21: .line 335
StackMap locals: sun.misc.FloatingDecimal int long long char[] int int int int int
StackMap stack:
iinc 1 /* decExponent */ 1
22: .line 336
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
23: .line 337
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
24: .line 334
StackMap locals:
StackMap stack:
iload 9 /* c */
ifeq 21
25: .line 339
goto 30
26: .line 340
StackMap locals:
StackMap stack:
aload 6 /* digits */
iload 8 /* digitno */
iinc 8 /* digitno */ -1
iload 9 /* c */
bipush 48
iadd
i2c
castore
27: .line 341
iinc 1 /* decExponent */ 1
28: .line 342
iload 11 /* ivalue */
bipush 10
irem
istore 9 /* c */
29: .line 343
iload 11 /* ivalue */
bipush 10
idiv
istore 11 /* ivalue */
30: .line 339
StackMap locals:
StackMap stack:
iload 11 /* ivalue */
ifne 26
31: .line 345
aload 6 /* digits */
iload 8 /* digitno */
iload 9 /* c */
bipush 48
iadd
i2c
castore
end local 11 // int ivalue
32: .line 346
goto 50
end local 9 // int c
end local 8 // int digitno
end local 7 // int ndigits
end local 6 // char[] digits
33: .line 349
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 350
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 351
iload 7 /* ndigits */
iconst_1
isub
istore 8 /* digitno */
start local 8 // int digitno
36: .line 352
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
start local 9 // int c
37: .line 353
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
38: .line 354
goto 42
39: .line 355
StackMap locals: sun.misc.FloatingDecimal int long long char[] int int int int
StackMap stack:
iinc 1 /* decExponent */ 1
40: .line 356
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
41: .line 357
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
42: .line 354
StackMap locals:
StackMap stack:
iload 9 /* c */
ifeq 39
43: .line 359
goto 48
44: .line 360
StackMap locals:
StackMap stack:
aload 6 /* digits */
iload 8 /* digitno */
iinc 8 /* digitno */ -1
iload 9 /* c */
bipush 48
iadd
i2c
castore
45: .line 361
iinc 1 /* decExponent */ 1
46: .line 362
lload 2 /* lvalue */
ldc 10
lrem
l2i
istore 9 /* c */
47: .line 363
lload 2 /* lvalue */
ldc 10
ldiv
lstore 2 /* lvalue */
48: .line 359
StackMap locals:
StackMap stack:
lload 2 /* lvalue */
lconst_0
lcmp
ifne 44
49: .line 365
aload 6 /* digits */
iload 8 /* digitno */
iload 9 /* c */
bipush 48
iadd
i2c
castore
50: .line 368
StackMap locals:
StackMap stack:
iload 7 /* ndigits */
iload 8 /* digitno */
isub
istore 7 /* ndigits */
51: .line 369
iload 7 /* ndigits */
newarray 5
astore 11 /* result */
start local 11 // char[] result
52: .line 370
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 371
aload 0 /* this */
aload 11 /* result */
putfield sun.misc.FloatingDecimal.digits:[C
54: .line 372
aload 0 /* this */
iload 1 /* decExponent */
iconst_1
iadd
putfield sun.misc.FloatingDecimal.decExponent:I
55: .line 373
aload 0 /* this */
iload 7 /* ndigits */
putfield sun.misc.FloatingDecimal.nDigits:I
56: .line 374
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 386
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 387
iload 2 /* q */
bipush 57
if_icmpne 11
3: .line 388
goto 6
4: .line 389
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iload 1 /* i */
bipush 48
castore
5: .line 390
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iinc 1 /* i */ -1
iload 1 /* i */
caload
istore 2 /* q */
6: .line 388
StackMap locals:
StackMap stack:
iload 2 /* q */
bipush 57
if_icmpne 7
iload 1 /* i */
ifgt 4
7: .line 392
StackMap locals:
StackMap stack:
iload 2 /* q */
bipush 57
if_icmpne 11
8: .line 394
aload 0 /* this */
dup
getfield sun.misc.FloatingDecimal.decExponent:I
iconst_1
iadd
putfield sun.misc.FloatingDecimal.decExponent:I
9: .line 395
aload 0 /* this */
getfield sun.misc.FloatingDecimal.digits:[C
iconst_0
bipush 49
castore
10: .line 396
return
11: .line 400
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 401
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 406
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 408
dload 1 /* d */
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 3 /* dBits */
start local 3 // long dBits
5: .line 414
lload 3 /* dBits */
ldc -9223372036854775808
land
lconst_0
lcmp
ifeq 9
6: .line 415
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isNegative:Z
7: .line 416
lload 3 /* dBits */
ldc -9223372036854775808
lxor
lstore 3 /* dBits */
8: .line 417
goto 10
9: .line 418
StackMap locals: sun.misc.FloatingDecimal double long
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
10: .line 422
StackMap locals:
StackMap stack:
lload 3 /* dBits */
ldc 9218868437227405312
land
bipush 52
lshr
l2i
istore 7 /* binExp */
start local 7 // int binExp
11: .line 423
lload 3 /* dBits */
ldc 4503599627370495
land
lstore 5 /* fractBits */
start local 5 // long fractBits
12: .line 424
iload 7 /* binExp */
sipush 2047
if_icmpne 21
13: .line 425
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isExceptional:Z
14: .line 426
lload 5 /* fractBits */
lconst_0
lcmp
ifne 17
15: .line 427
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.infinity:[C
putfield sun.misc.FloatingDecimal.digits:[C
16: .line 428
goto 19
17: .line 429
StackMap locals: long int
StackMap stack:
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.notANumber:[C
putfield sun.misc.FloatingDecimal.digits:[C
18: .line 430
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
19: .line 432
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 433
return
21: .line 435
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isExceptional:Z
22: .line 440
iload 7 /* binExp */
ifne 34
23: .line 441
lload 5 /* fractBits */
lconst_0
lcmp
ifne 30
24: .line 443
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.decExponent:I
25: .line 444
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.zero:[C
putfield sun.misc.FloatingDecimal.digits:[C
26: .line 445
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.nDigits:I
27: .line 446
return
28: .line 449
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
iconst_1
lshl
lstore 5 /* fractBits */
29: .line 450
iinc 7 /* binExp */ -1
30: .line 448
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
ldc 4503599627370496
land
lconst_0
lcmp
ifeq 28
31: .line 452
bipush 52
iload 7 /* binExp */
iadd
iconst_1
iadd
istore 8 /* nSignificantBits */
start local 8 // int nSignificantBits
32: .line 453
iinc 7 /* binExp */ 1
33: .line 454
goto 36
end local 8 // int nSignificantBits
34: .line 455
StackMap locals:
StackMap stack:
lload 5 /* fractBits */
ldc 4503599627370496
lor
lstore 5 /* fractBits */
35: .line 456
bipush 53
istore 8 /* nSignificantBits */
start local 8 // int nSignificantBits
36: .line 458
StackMap locals: int
StackMap stack:
iinc 7 /* binExp */ -1023
37: .line 460
aload 0 /* this */
iload 7 /* binExp */
lload 5 /* fractBits */
iload 8 /* nSignificantBits */
invokevirtual sun.misc.FloatingDecimal.dtoa:(IJI)V
38: .line 461
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 466
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 468
fload 1 /* f */
invokestatic java.lang.Float.floatToIntBits:(F)I
istore 2 /* fBits */
start local 2 // int fBits
5: .line 474
iload 2 /* fBits */
ldc -2147483648
iand
ifeq 9
6: .line 475
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isNegative:Z
7: .line 476
iload 2 /* fBits */
ldc -2147483648
ixor
istore 2 /* fBits */
8: .line 477
goto 10
9: .line 478
StackMap locals: sun.misc.FloatingDecimal float int
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
10: .line 482
StackMap locals:
StackMap stack:
iload 2 /* fBits */
ldc 2139095040
iand
bipush 23
ishr
istore 4 /* binExp */
start local 4 // int binExp
11: .line 483
iload 2 /* fBits */
ldc 8388607
iand
istore 3 /* fractBits */
start local 3 // int fractBits
12: .line 484
iload 4 /* binExp */
sipush 255
if_icmpne 21
13: .line 485
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.isExceptional:Z
14: .line 486
iload 3 /* fractBits */
i2l
lconst_0
lcmp
ifne 17
15: .line 487
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.infinity:[C
putfield sun.misc.FloatingDecimal.digits:[C
16: .line 488
goto 19
17: .line 489
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.notANumber:[C
putfield sun.misc.FloatingDecimal.digits:[C
18: .line 490
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isNegative:Z
19: .line 492
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 493
return
21: .line 495
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.isExceptional:Z
22: .line 500
iload 4 /* binExp */
ifne 34
23: .line 501
iload 3 /* fractBits */
ifne 30
24: .line 503
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.decExponent:I
25: .line 504
aload 0 /* this */
getstatic sun.misc.FloatingDecimal.zero:[C
putfield sun.misc.FloatingDecimal.digits:[C
26: .line 505
aload 0 /* this */
iconst_1
putfield sun.misc.FloatingDecimal.nDigits:I
27: .line 506
return
28: .line 509
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
iconst_1
ishl
istore 3 /* fractBits */
29: .line 510
iinc 4 /* binExp */ -1
30: .line 508
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
ldc 8388608
iand
ifeq 28
31: .line 512
bipush 23
iload 4 /* binExp */
iadd
iconst_1
iadd
istore 5 /* nSignificantBits */
start local 5 // int nSignificantBits
32: .line 513
iinc 4 /* binExp */ 1
33: .line 514
goto 36
end local 5 // int nSignificantBits
34: .line 515
StackMap locals:
StackMap stack:
iload 3 /* fractBits */
ldc 8388608
ior
istore 3 /* fractBits */
35: .line 516
bipush 24
istore 5 /* nSignificantBits */
start local 5 // int nSignificantBits
36: .line 518
StackMap locals: int
StackMap stack:
iinc 4 /* binExp */ -127
37: .line 520
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 521
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 533
lload 2 /* fractBits */
invokestatic sun.misc.FloatingDecimal.countBits:(J)I
istore 5 /* nFractBits */
start local 5 // int nFractBits
1: .line 534
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 535
iload 1 /* binExp */
bipush 62
if_icmpgt 15
iload 1 /* binExp */
bipush -21
if_icmplt 15
3: .line 539
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 556
iload 6 /* nTinyBits */
ifne 15
5: .line 557
iload 1 /* binExp */
iload 4 /* nSignificantBits */
if_icmple 8
6: .line 558
lconst_1
iload 1 /* binExp */
iload 4 /* nSignificantBits */
isub
iconst_1
isub
lshl
lstore 8 /* halfULP */
start local 8 // long halfULP
7: .line 559
goto 9
end local 8 // long halfULP
8: .line 560
StackMap locals: int int
StackMap stack:
lconst_0
lstore 8 /* halfULP */
start local 8 // long halfULP
9: .line 562
StackMap locals: sun.misc.FloatingDecimal int long int int int top long
StackMap stack:
iload 1 /* binExp */
bipush 52
if_icmplt 12
10: .line 563
lload 2 /* fractBits */
iload 1 /* binExp */
bipush 52
isub
lshl
lstore 2 /* fractBits */
11: .line 564
goto 13
12: .line 565
StackMap locals:
StackMap stack:
lload 2 /* fractBits */
bipush 52
iload 1 /* binExp */
isub
lushr
lstore 2 /* fractBits */
13: .line 567
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
lload 2 /* fractBits */
lload 8 /* halfULP */
invokevirtual sun.misc.FloatingDecimal.developLongDigits:(IJJ)V
14: .line 568
return
end local 8 // long halfULP
15: .line 620
StackMap locals: sun.misc.FloatingDecimal int long int int int
StackMap stack:
ldc 4607182418800017408
lload 2 /* fractBits */
ldc -4503599627370497
land
lor
16: .line 619
invokestatic java.lang.Double.longBitsToDouble:(J)D
dstore 8 /* d2 */
start local 8 // double d2
17: .line 622
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 621
invokestatic java.lang.Math.floor:(D)D
d2i
istore 7 /* decExp */
start local 7 // int decExp
19: .line 630
iconst_0
iload 7 /* decExp */
ineg
invokestatic java.lang.Math.max:(II)I
istore 11 /* B5 */
start local 11 // int B5
20: .line 631
iload 11 /* B5 */
iload 6 /* nTinyBits */
iadd
iload 1 /* binExp */
iadd
istore 10 /* B2 */
start local 10 // int B2
21: .line 633
iconst_0
iload 7 /* decExp */
invokestatic java.lang.Math.max:(II)I
istore 13 /* S5 */
start local 13 // int S5
22: .line 634
iload 13 /* S5 */
iload 6 /* nTinyBits */
iadd
istore 12 /* S2 */
start local 12 // int S2
23: .line 636
iload 11 /* B5 */
istore 15 /* M5 */
start local 15 // int M5
24: .line 637
iload 10 /* B2 */
iload 4 /* nSignificantBits */
isub
istore 14 /* M2 */
start local 14 // int M2
25: .line 647
lload 2 /* fractBits */
bipush 53
iload 5 /* nFractBits */
isub
lushr
lstore 2 /* fractBits */
26: .line 648
iload 10 /* B2 */
iload 5 /* nFractBits */
iconst_1
isub
isub
istore 10 /* B2 */
27: .line 649
iload 10 /* B2 */
iload 12 /* S2 */
invokestatic java.lang.Math.min:(II)I
istore 21 /* common2factor */
start local 21 // int common2factor
28: .line 650
iload 10 /* B2 */
iload 21 /* common2factor */
isub
istore 10 /* B2 */
29: .line 651
iload 12 /* S2 */
iload 21 /* common2factor */
isub
istore 12 /* S2 */
30: .line 652
iload 14 /* M2 */
iload 21 /* common2factor */
isub
istore 14 /* M2 */
31: .line 660
iload 5 /* nFractBits */
iconst_1
if_icmpne 33
32: .line 661
iinc 14 /* M2 */ -1
33: .line 663
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 667
iload 10 /* B2 */
iload 14 /* M2 */
isub
istore 10 /* B2 */
35: .line 668
iload 12 /* S2 */
iload 14 /* M2 */
isub
istore 12 /* S2 */
36: .line 669
iconst_0
istore 14 /* M2 */
37: .line 679
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 680
iconst_0
istore 23 /* ndigit */
start local 23 // int ndigit
39: .line 700
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 701
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 702
iload 16 /* Bbits */
bipush 64
if_icmpge 127
iload 17 /* tenSbits */
bipush 64
if_icmpge 127
46: .line 703
iload 16 /* Bbits */
bipush 32
if_icmpge 87
iload 17 /* tenSbits */
bipush 32
if_icmpge 87
47: .line 705
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 706
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 13 /* S5 */
iaload
iload 12 /* S2 */
ishl
istore 30 /* s */
start local 30 // int s
49: .line 707
getstatic sun.misc.FloatingDecimal.small5pow:[I
iload 15 /* M5 */
iaload
iload 14 /* M2 */
ishl
istore 31 /* m */
start local 31 // int m
50: .line 708
iload 30 /* s */
bipush 10
imul
istore 32 /* tens */
start local 32 // int tens
51: .line 714
iconst_0
istore 23 /* ndigit */
52: .line 715
iload 29 /* b */
iload 30 /* s */
idiv
istore 28 /* q */
start local 28 // int q
53: .line 716
bipush 10
iload 29 /* b */
iload 30 /* s */
irem
imul
istore 29 /* b */
54: .line 717
iload 31 /* m */
bipush 10
imul
istore 31 /* m */
55: .line 718
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 719
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 720
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 721
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 723
iinc 7 /* decExp */ -1
64: .line 724
goto 66
65: .line 725
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
66: .line 733
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 67
iload 7 /* decExp */
bipush 8
if_icmplt 84
67: .line 734
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
68: .line 736
goto 84
69: .line 737
StackMap locals:
StackMap stack:
iload 29 /* b */
iload 30 /* s */
idiv
istore 28 /* q */
70: .line 738
bipush 10
iload 29 /* b */
iload 30 /* s */
irem
imul
istore 29 /* b */
71: .line 739
iload 31 /* m */
bipush 10
imul
istore 31 /* m */
72: .line 740
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 741
StackMap locals:
StackMap stack:
iload 31 /* m */
i2l
lconst_0
lcmp
ifle 81
74: .line 742
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 743
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 744
goto 83
81: .line 750
StackMap locals:
StackMap stack:
iconst_1
istore 24 /* low */
82: .line 751
iconst_1
istore 25 /* high */
83: .line 753
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
84: .line 736
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 85
iload 25 /* high */
ifeq 69
85: .line 755
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 756
goto 167
end local 28 // int q
end local 26 // long lowDigitDifference
end local 25 // boolean high
end local 24 // boolean low
87: .line 758
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 759
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 13 /* S5 */
laload
iload 12 /* S2 */
lshl
lstore 31 /* s */
start local 31 // long s
89: .line 760
getstatic sun.misc.FloatingDecimal.long5pow:[J
iload 15 /* M5 */
laload
iload 14 /* M2 */
lshl
lstore 33 /* m */
start local 33 // long m
90: .line 761
lload 31 /* s */
ldc 10
lmul
lstore 35 /* tens */
start local 35 // long tens
91: .line 767
iconst_0
istore 23 /* ndigit */
92: .line 768
lload 29 /* b */
lload 31 /* s */
ldiv
l2i
istore 28 /* q */
start local 28 // int q
93: .line 769
ldc 10
lload 29 /* b */
lload 31 /* s */
lrem
lmul
lstore 29 /* b */
94: .line 770
lload 33 /* m */
ldc 10
lmul
lstore 33 /* m */
95: .line 771
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 772
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 773
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 774
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 776
iinc 7 /* decExp */ -1
104: .line 777
goto 106
105: .line 778
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
106: .line 786
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 107
iload 7 /* decExp */
bipush 8
if_icmplt 124
107: .line 787
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
108: .line 789
goto 124
109: .line 790
StackMap locals:
StackMap stack:
lload 29 /* b */
lload 31 /* s */
ldiv
l2i
istore 28 /* q */
110: .line 791
ldc 10
lload 29 /* b */
lload 31 /* s */
lrem
lmul
lstore 29 /* b */
111: .line 792
lload 33 /* m */
ldc 10
lmul
lstore 33 /* m */
112: .line 793
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 794
StackMap locals:
StackMap stack:
lload 33 /* m */
lconst_0
lcmp
ifle 121
114: .line 795
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 796
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 797
goto 123
121: .line 803
StackMap locals:
StackMap stack:
iconst_1
istore 24 /* low */
122: .line 804
iconst_1
istore 25 /* high */
123: .line 806
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
124: .line 789
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 125
iload 25 /* high */
ifeq 109
125: .line 808
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 810
goto 167
end local 28 // int q
end local 26 // long lowDigitDifference
end local 25 // boolean high
end local 24 // boolean low
127: .line 818
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 819
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 820
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 824
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 825
aload 20 /* Mval */
iload 30 /* shiftBias */
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
133: .line 826
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 832
iconst_0
istore 23 /* ndigit */
135: .line 833
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 834
aload 20 /* Mval */
bipush 10
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 20 /* Mval */
137: .line 835
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 836
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 837
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 838
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 840
iinc 7 /* decExp */ -1
146: .line 841
goto 148
147: .line 842
StackMap locals:
StackMap stack:
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
148: .line 850
StackMap locals:
StackMap stack:
iload 7 /* decExp */
bipush -3
if_icmplt 149
iload 7 /* decExp */
bipush 8
if_icmplt 161
149: .line 851
StackMap locals:
StackMap stack:
iconst_0
dup
istore 24 /* low */
istore 25 /* high */
150: .line 853
goto 161
151: .line 854
StackMap locals:
StackMap stack:
aload 19 /* Bval */
aload 18 /* Sval */
invokevirtual sun.misc.FDBigInt.quoRemIteration:(Lsun/misc/FDBigInt;)I
istore 28 /* q */
152: .line 855
aload 20 /* Mval */
bipush 10
invokevirtual sun.misc.FDBigInt.mult:(I)Lsun/misc/FDBigInt;
astore 20 /* Mval */
153: .line 856
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 857
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 858
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 859
aload 22 /* digits */
iload 23 /* ndigit */
iinc 23 /* ndigit */ 1
bipush 48
iload 28 /* q */
iadd
i2c
castore
161: .line 853
StackMap locals:
StackMap stack:
iload 24 /* low */
ifne 162
iload 25 /* high */
ifeq 151
162: .line 861
StackMap locals:
StackMap stack:
iload 25 /* high */
ifeq 166
iload 24 /* low */
ifeq 166
163: .line 862
aload 19 /* Bval */
iconst_1
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
164: .line 863
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 864
goto 167
end local 26 // long lowDigitDifference
166: .line 865
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 867
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 868
aload 0 /* this */
aload 22 /* digits */
putfield sun.misc.FloatingDecimal.digits:[C
169: .line 869
aload 0 /* this */
iload 23 /* ndigit */
putfield sun.misc.FloatingDecimal.nDigits:I
170: .line 873
iload 25 /* high */
ifeq 179
171: .line 874
iload 24 /* low */
ifeq 178
172: .line 875
lload 26 /* lowDigitDifference */
lconst_0
lcmp
ifne 175
173: .line 878
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 879
goto 179
StackMap locals:
StackMap stack:
175: lload 26 /* lowDigitDifference */
lconst_0
lcmp
ifle 179
176: .line 880
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.roundup:()V
177: .line 882
goto 179
178: .line 883
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.roundup:()V
179: .line 886
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 891
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 892
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 893
StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isExceptional:Z
ifeq 5
3: .line 894
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 895
goto 9
5: .line 896
StackMap locals:
StackMap stack:
aload 1 /* result */
ldc "0."
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
6: .line 897
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 898
aload 1 /* result */
bipush 101
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
8: .line 899
aload 1 /* result */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
invokevirtual java.lang.StringBuffer.append:(I)Ljava/lang/StringBuffer;
pop
9: .line 901
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 905
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 906
aload 0 /* this */
aload 1 /* result */
invokevirtual sun.misc.FloatingDecimal.getChars:([C)I
istore 2 /* i */
start local 2 // int i
2: .line 907
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 911
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 912
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* i */
start local 2 // int i
2: .line 913
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 914
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.isExceptional:Z
ifeq 7
4: .line 915
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 916
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iadd
istore 2 /* i */
6: .line 917
goto 59
7: .line 918
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 920
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 921
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 922
iload 2 /* i */
iload 3 /* charLength */
iadd
istore 2 /* i */
11: .line 923
iload 3 /* charLength */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
if_icmpge 18
12: .line 924
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 3 /* charLength */
isub
istore 3 /* charLength */
13: .line 925
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 926
iload 2 /* i */
iload 3 /* charLength */
iadd
istore 2 /* i */
15: .line 927
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
16: .line 928
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
17: .line 929
goto 59
18: .line 930
StackMap locals: int
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
19: .line 931
iload 3 /* charLength */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
if_icmpge 24
20: .line 932
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iload 3 /* charLength */
isub
istore 4 /* t */
start local 4 // int t
21: .line 933
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 934
iload 2 /* i */
iload 4 /* t */
iadd
istore 2 /* i */
end local 4 // int t
23: .line 935
goto 59
24: .line 936
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
end local 3 // int charLength
25: .line 939
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 940
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
28: .line 941
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
29: .line 942
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifeq 32
30: .line 943
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 944
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
isub
istore 2 /* i */
32: .line 946
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 947
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iadd
istore 2 /* i */
34: .line 948
goto 59
35: .line 949
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 950
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 46
castore
37: .line 951
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
if_icmple 41
38: .line 952
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 953
iload 2 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
iconst_1
isub
iadd
istore 2 /* i */
40: .line 954
goto 42
41: .line 955
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 48
castore
42: .line 957
StackMap locals:
StackMap stack:
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 69
castore
43: .line 959
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ifgt 47
44: .line 960
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
bipush 45
castore
45: .line 961
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
ineg
iconst_1
iadd
istore 3 /* e */
start local 3 // int e
46: .line 962
goto 48
end local 3 // int e
47: .line 963
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 966
StackMap locals: int
StackMap stack:
iload 3 /* e */
bipush 9
if_icmpgt 51
49: .line 967
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 48
iadd
i2c
castore
50: .line 968
goto 59
StackMap locals:
StackMap stack:
51: iload 3 /* e */
bipush 99
if_icmpgt 55
52: .line 969
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
idiv
bipush 48
iadd
i2c
castore
53: .line 970
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
irem
bipush 48
iadd
i2c
castore
54: .line 971
goto 59
55: .line 972
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 973
iload 3 /* e */
bipush 100
irem
istore 3 /* e */
57: .line 974
aload 1 /* result */
iload 2 /* i */
iinc 2 /* i */ 1
iload 3 /* e */
bipush 10
idiv
bipush 48
iadd
i2c
castore
58: .line 975
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 979
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 990
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 991
aload 0 /* this */
aload 2 /* result */
invokevirtual sun.misc.FloatingDecimal.getChars:([C)I
istore 3 /* i */
start local 3 // int i
2: .line 992
aload 1 /* buf */
instanceof java.lang.StringBuilder
ifeq 4
3: .line 993
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 994
StackMap locals: char[] int
StackMap stack:
aload 1 /* buf */
instanceof java.lang.StringBuffer
ifeq 6
5: .line 995
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 997
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 998
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 1002
iconst_0
istore 1 /* isNegative */
start local 1 // boolean isNegative
1: .line 1003
iconst_0
istore 2 /* signSeen */
start local 2 // boolean signSeen
2: .line 1009
aload 0 /* in */
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 0 /* in */
3: .line 1011
aload 0 /* in */
invokevirtual java.lang.String.length:()I
istore 5 /* l */
start local 5 // int l
4: .line 1012
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 1013
StackMap locals: java.lang.String int int top top int
StackMap stack:
iconst_0
istore 6 /* i */
start local 6 // int i
6: .line 1014
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 1016
StackMap locals: java.lang.String int int top int int int
StackMap stack:
iconst_1
istore 1 /* isNegative */
9: .line 1019
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
10: .line 1020
iconst_1
istore 2 /* signSeen */
11: .line 1024
StackMap locals:
StackMap stack:
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 4 /* c */
12: .line 1025
iload 4 /* c */
bipush 78
if_icmpeq 13
iload 4 /* c */
bipush 73
if_icmpne 32
13: .line 1026
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* potentialNaN */
start local 7 // boolean potentialNaN
14: .line 1027
aconst_null
astore 8 /* targetChars */
start local 8 // char[] targetChars
15: .line 1029
iload 4 /* c */
bipush 78
if_icmpne 19
16: .line 1030
getstatic sun.misc.FloatingDecimal.notANumber:[C
astore 8 /* targetChars */
17: .line 1031
iconst_1
istore 7 /* potentialNaN */
18: .line 1032
goto 20
19: .line 1033
StackMap locals: int char[]
StackMap stack:
getstatic sun.misc.FloatingDecimal.infinity:[C
astore 8 /* targetChars */
20: .line 1037
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* j */
start local 9 // int j
21: .line 1038
goto 24
22: .line 1039
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 1040
iinc 6 /* i */ 1
iinc 9 /* j */ 1
24: .line 1038
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 1050
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 1051
iload 7 /* potentialNaN */
ifeq 27
new sun.misc.FloatingDecimal
dup
ldc NaN
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
goto 31
27: .line 1052
StackMap locals:
StackMap stack:
new sun.misc.FloatingDecimal
dup
iload 1 /* isNegative */
ifeq 29
28: .line 1053
ldc -Infinity
goto 30
29: .line 1054
StackMap locals: java.lang.String int int top int int int int char[] int
StackMap stack: new 27 new 27
ldc Infinity
30: .line 1052
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 1051
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 1060
StackMap locals:
StackMap stack:
iload 4 /* c */
bipush 48
if_icmpne 38
33: .line 1061
iload 5 /* l */
iload 6 /* i */
iconst_1
iadd
if_icmple 38
34: .line 1062
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 1063
iload 7 /* ch */
bipush 120
if_icmpeq 36
iload 7 /* ch */
bipush 88
if_icmpne 38
36: .line 1064
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 1068
StackMap locals:
StackMap stack:
iload 5 /* l */
newarray 5
astore 7 /* digits */
start local 7 // char[] digits
39: .line 1069
iconst_0
istore 8 /* nDigits */
start local 8 // int nDigits
40: .line 1070
iconst_0
istore 9 /* decSeen */
start local 9 // boolean decSeen
41: .line 1071
iconst_0
istore 10 /* decPt */
start local 10 // int decPt
42: .line 1072
iconst_0
istore 11 /* nLeadZero */
start local 11 // int nLeadZero
43: .line 1073
iconst_0
istore 12 /* nTrailZero */
start local 12 // int nTrailZero
44: .line 1075
goto 66
45: .line 1076
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 1078
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
ifle 49
47: .line 1079
iinc 12 /* nTrailZero */ 1
48: .line 1080
goto 65
49: .line 1081
StackMap locals:
StackMap stack:
iinc 11 /* nLeadZero */ 1
50: .line 1083
goto 65
51: .line 1093
StackMap locals:
StackMap stack:
goto 54
52: .line 1094
StackMap locals:
StackMap stack:
aload 7 /* digits */
iload 8 /* nDigits */
iinc 8 /* nDigits */ 1
bipush 48
castore
53: .line 1095
iinc 12 /* nTrailZero */ -1
54: .line 1093
StackMap locals:
StackMap stack:
iload 12 /* nTrailZero */
ifgt 52
55: .line 1097
aload 7 /* digits */
iload 8 /* nDigits */
iinc 8 /* nDigits */ 1
iload 4 /* c */
castore
56: .line 1098
goto 65
57: .line 1100
StackMap locals:
StackMap stack:
iload 9 /* decSeen */
ifeq 59
58: .line 1102
new java.lang.NumberFormatException
dup
ldc "multiple points"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
59: .line 1104
StackMap locals:
StackMap stack:
iload 6 /* i */
istore 10 /* decPt */
60: .line 1105
iload 2 /* signSeen */
ifeq 62
61: .line 1106
iinc 10 /* decPt */ -1
62: .line 1108
StackMap locals:
StackMap stack:
iconst_1
istore 9 /* decSeen */
63: .line 1109
goto 65
64: .line 1111
StackMap locals:
StackMap stack:
goto 67
65: .line 1113
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
66: .line 1075
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmplt 45
67: .line 1134
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
ifne 72
68: .line 1135
getstatic sun.misc.FloatingDecimal.zero:[C
astore 7 /* digits */
69: .line 1136
iconst_1
istore 8 /* nDigits */
70: .line 1137
iload 11 /* nLeadZero */
ifne 72
71: .line 1141
goto 111
72: .line 1150
StackMap locals:
StackMap stack:
iload 9 /* decSeen */
ifeq 75
73: .line 1151
iload 10 /* decPt */
iload 11 /* nLeadZero */
isub
istore 3 /* decExp */
start local 3 // int decExp
74: .line 1152
goto 76
end local 3 // int decExp
75: .line 1153
StackMap locals:
StackMap stack:
iload 8 /* nDigits */
iload 12 /* nTrailZero */
iadd
istore 3 /* decExp */
start local 3 // int decExp
76: .line 1159
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 1160
StackMap locals:
StackMap stack:
iconst_1
istore 13 /* expSign */
start local 13 // int expSign
78: .line 1161
iconst_0
istore 14 /* expVal */
start local 14 // int expVal
79: .line 1162
ldc 214748364
istore 15 /* reallyBig */
start local 15 // int reallyBig
80: .line 1163
iconst_0
istore 16 /* expOverflow */
start local 16 // boolean expOverflow
81: .line 1164
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 1166
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 1169
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
84: .line 1171
StackMap locals:
StackMap stack:
iload 6 /* i */
istore 17 /* expAt */
start local 17 // int expAt
85: .line 1173
goto 93
86: .line 1174
StackMap locals: int
StackMap stack:
iload 14 /* expVal */
iload 15 /* reallyBig */
if_icmplt 88
87: .line 1177
iconst_1
istore 16 /* expOverflow */
88: .line 1179
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 1190
StackMap locals:
StackMap stack:
iload 14 /* expVal */
bipush 10
imul
iload 4 /* c */
bipush 48
isub
iadd
istore 14 /* expVal */
90: .line 1191
goto 93
91: .line 1193
StackMap locals:
StackMap stack:
iinc 6 /* i */ -1
92: .line 1194
goto 94
93: .line 1173
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 5 /* l */
if_icmplt 86
94: .line 1197
StackMap locals:
StackMap stack:
sipush 324
iload 8 /* nDigits */
iadd
iload 12 /* nTrailZero */
iadd
istore 18 /* expLimit */
start local 18 // int expLimit
95: .line 1198
iload 16 /* expOverflow */
ifne 96
iload 14 /* expVal */
iload 18 /* expLimit */
if_icmple 98
96: .line 1211
StackMap locals: int
StackMap stack:
iload 13 /* expSign */
iload 18 /* expLimit */
imul
istore 3 /* decExp */
97: .line 1212
goto 99
98: .line 1215
StackMap locals:
StackMap stack:
iload 3 /* decExp */
iload 13 /* expSign */
iload 14 /* expVal */
imul
iadd
istore 3 /* decExp */
99: .line 1224
StackMap locals:
StackMap stack:
iload 6 /* i */
iload 17 /* expAt */
if_icmpne 101
100: .line 1225
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 1231
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 1232
iload 6 /* i */
iload 5 /* l */
iconst_1
isub
if_icmpne 111
103: .line 1233
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 102
if_icmpeq 108
104: .line 1234
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 70
if_icmpeq 108
105: .line 1235
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 100
if_icmpeq 108
106: .line 1236
aload 0 /* in */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
bipush 68
if_icmpeq 108
107: .line 1237
goto 111
108: .line 1240
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 1241
StackMap locals: java.lang.String int int
StackMap stack: java.lang.StringIndexOutOfBoundsException
pop
111: .line 1242
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 double doubleValue();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=27, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 1256
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 1262
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 1263
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 1264
ldc NaN
dreturn
4: .line 1266
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 1269
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 9
8: .line 1270
aload 0 /* this */
iconst_0
putfield sun.misc.FloatingDecimal.roundDir:I
9: .line 1276
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 1277
iload 1 /* kDigits */
bipush 9
invokestatic java.lang.Math.min:(II)I
istore 11 /* iDigits */
start local 11 // int iDigits
11: .line 1278
iconst_1
istore 12 /* i */
start local 12 // int i
12: goto 15
13: .line 1279
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 1278
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 1281
iload 10 /* iValue */
i2l
lstore 2 /* lValue */
start local 2 // long lValue
17: .line 1282
iload 11 /* iDigits */
istore 12 /* i */
start local 12 // int i
18: goto 21
19: .line 1283
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 1282
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 1285
lload 2 /* lValue */
l2d
dstore 4 /* dValue */
start local 4 // double dValue
23: .line 1286
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 1 /* kDigits */
isub
istore 12 /* exp */
start local 12 // int exp
24: .line 1293
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 15
if_icmpgt 65
25: .line 1304
iload 12 /* exp */
ifeq 26
dload 4 /* dValue */
dconst_0
dcmpl
ifne 29
26: .line 1305
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 1306
StackMap locals:
StackMap stack:
iload 12 /* exp */
iflt 54
30: .line 1307
iload 12 /* exp */
getstatic sun.misc.FloatingDecimal.maxSmallTen:I
if_icmpgt 41
31: .line 1312
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
daload
dmul
dstore 6 /* rValue */
start local 6 // double rValue
32: .line 1313
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 38
33: .line 1314
dload 6 /* rValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
daload
ddiv
dstore 8 /* tValue */
start local 8 // double tValue
34: .line 1315
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 35
iconst_0
goto 37
35: .line 1316
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 1317
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
37: .line 1315
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 1319
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 1321
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 1322
iload 12 /* exp */
getstatic sun.misc.FloatingDecimal.maxSmallTen:I
iload 13 /* slop */
iadd
if_icmpgt 65
43: .line 1329
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 13 /* slop */
daload
dmul
dstore 4 /* dValue */
44: .line 1330
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 1332
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 51
46: .line 1333
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 1334
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 48
iconst_0
goto 50
48: .line 1335
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 1336
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
50: .line 1334
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 1338
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 1344
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 1348
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 1349
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 1350
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 62
58: .line 1351
aload 0 /* this */
dload 8 /* tValue */
dload 4 /* dValue */
dcmpl
ifne 59
iconst_0
goto 61
59: .line 1352
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 1353
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
iconst_m1
61: .line 1351
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 1355
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 1371
StackMap locals: sun.misc.FloatingDecimal int long double top top top top int int int
StackMap stack:
iload 12 /* exp */
ifle 90
66: .line 1372
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
sipush 309
if_icmple 70
67: .line 1377
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 1379
StackMap locals:
StackMap stack:
iload 12 /* exp */
bipush 15
iand
ifeq 72
71: .line 1380
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
bipush 15
iand
daload
dmul
dstore 4 /* dValue */
72: .line 1382
StackMap locals:
StackMap stack:
iload 12 /* exp */
iconst_4
ishr
dup
istore 12 /* exp */
ifeq 115
73: .line 1384
iconst_0
istore 13 /* j */
start local 13 // int j
74: goto 78
75: .line 1385
StackMap locals: int
StackMap stack:
iload 12 /* exp */
iconst_1
iand
ifeq 77
76: .line 1386
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 4 /* dValue */
77: .line 1384
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 1394
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
start local 14 // double t
80: .line 1395
dload 14 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 88
81: .line 1408
dload 4 /* dValue */
ldc 2.0
ddiv
dstore 14 /* t */
82: .line 1409
dload 14 /* t */
getstatic sun.misc.FloatingDecimal.big10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
83: .line 1410
dload 14 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 87
84: .line 1411
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 1413
StackMap locals:
StackMap stack:
ldc 1.7976931348623157E308
dstore 14 /* t */
88: .line 1415
StackMap locals:
StackMap stack:
dload 14 /* t */
dstore 4 /* dValue */
end local 14 // double t
end local 13 // int j
89: .line 1417
goto 115
StackMap locals:
StackMap stack:
90: iload 12 /* exp */
ifge 115
91: .line 1418
iload 12 /* exp */
ineg
istore 12 /* exp */
92: .line 1419
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
sipush -325
if_icmpge 96
93: .line 1424
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 1426
StackMap locals:
StackMap stack:
iload 12 /* exp */
bipush 15
iand
ifeq 98
97: .line 1427
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 12 /* exp */
bipush 15
iand
daload
ddiv
dstore 4 /* dValue */
98: .line 1429
StackMap locals:
StackMap stack:
iload 12 /* exp */
iconst_4
ishr
dup
istore 12 /* exp */
ifeq 115
99: .line 1431
iconst_0
istore 13 /* j */
start local 13 // int j
100: goto 104
101: .line 1432
StackMap locals: int
StackMap stack:
iload 12 /* exp */
iconst_1
iand
ifeq 103
102: .line 1433
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 4 /* dValue */
103: .line 1431
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 1441
dload 4 /* dValue */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
start local 14 // double t
106: .line 1442
dload 14 /* t */
dconst_0
dcmpl
ifne 114
107: .line 1455
dload 4 /* dValue */
ldc 2.0
dmul
dstore 14 /* t */
108: .line 1456
dload 14 /* t */
getstatic sun.misc.FloatingDecimal.tiny10pow:[D
iload 13 /* j */
daload
dmul
dstore 14 /* t */
109: .line 1457
dload 14 /* t */
dconst_0
dcmpl
ifne 113
110: .line 1458
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 1460
StackMap locals:
StackMap stack:
ldc 4.9E-324
dstore 14 /* t */
114: .line 1462
StackMap locals:
StackMap stack:
dload 14 /* t */
dstore 4 /* dValue */
end local 14 // double t
end local 13 // int j
115: .line 1473
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
116: .line 1474
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
isub
istore 12 /* exp */
117: .line 1481
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
118: .line 1495
iload 12 /* exp */
iflt 124
119: .line 1496
iconst_0
dup
istore 16 /* B5 */
start local 16 // int B5
120: istore 15 /* B2 */
start local 15 // int B2
121: .line 1497
iload 12 /* exp */
dup
istore 18 /* D5 */
start local 18 // int D5
122: istore 17 /* D2 */
start local 17 // int D2
123: .line 1498
goto 128
end local 18 // int D5
end local 17 // int D2
end local 16 // int B5
end local 15 // int B2
124: .line 1499
StackMap locals: sun.misc.FDBigInt
StackMap stack:
iload 12 /* exp */
ineg
dup
istore 16 /* B5 */
start local 16 // int B5
125: istore 15 /* B2 */
start local 15 // int B2
126: .line 1500
iconst_0
dup
istore 18 /* D5 */
start local 18 // int D5
127: istore 17 /* D2 */
start local 17 // int D2
128: .line 1502
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 131
129: .line 1503
iload 15 /* B2 */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
iadd
istore 15 /* B2 */
130: .line 1504
goto 132
131: .line 1505
StackMap locals:
StackMap stack:
iload 17 /* D2 */
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
isub
istore 17 /* D2 */
132: .line 1507
StackMap locals:
StackMap stack:
iload 15 /* B2 */
istore 19 /* Ulp2 */
start local 19 // int Ulp2
133: .line 1511
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntNBits:I
iadd
sipush -1022
if_icmpgt 136
134: .line 1515
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
sipush 1023
iadd
bipush 52
iadd
istore 20 /* hulpbias */
start local 20 // int hulpbias
135: .line 1516
goto 137
end local 20 // int hulpbias
136: .line 1517
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
137: .line 1519
StackMap locals: int
StackMap stack:
iload 15 /* B2 */
iload 20 /* hulpbias */
iadd
istore 15 /* B2 */
138: .line 1520
iload 17 /* D2 */
iload 20 /* hulpbias */
iadd
istore 17 /* D2 */
139: .line 1523
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
140: .line 1524
iload 15 /* B2 */
iload 21 /* common2 */
isub
istore 15 /* B2 */
141: .line 1525
iload 17 /* D2 */
iload 21 /* common2 */
isub
istore 17 /* D2 */
142: .line 1526
iload 19 /* Ulp2 */
iload 21 /* common2 */
isub
istore 19 /* Ulp2 */
143: .line 1528
aload 14 /* bigB */
iload 16 /* B5 */
iload 15 /* B2 */
invokestatic sun.misc.FloatingDecimal.multPow52:(Lsun/misc/FDBigInt;II)Lsun/misc/FDBigInt;
astore 14 /* bigB */
144: .line 1529
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
145: .line 1547
aload 14 /* bigB */
aload 22 /* bigD */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
dup
istore 24 /* cmpResult */
start local 24 // int cmpResult
146: ifle 155
147: .line 1548
iconst_1
istore 25 /* overvalue */
start local 25 // boolean overvalue
148: .line 1549
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
149: .line 1550
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntNBits:I
iconst_1
if_icmpne 158
aload 0 /* this */
getfield sun.misc.FloatingDecimal.bigIntExp:I
sipush -1022
if_icmple 158
150: .line 1555
iinc 19 /* Ulp2 */ -1
151: .line 1556
iload 19 /* Ulp2 */
ifge 158
152: .line 1559
iconst_0
istore 19 /* Ulp2 */
153: .line 1560
aload 23 /* diff */
iconst_1
invokevirtual sun.misc.FDBigInt.lshiftMe:(I)V
154: .line 1563
goto 158
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:
155: iload 24 /* cmpResult */
ifge 174
156: .line 1564
iconst_0
istore 25 /* overvalue */
start local 25 // boolean overvalue
157: .line 1565
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
158: .line 1571
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
159: .line 1572
aload 23 /* diff */
aload 26 /* halfUlp */
invokevirtual sun.misc.FDBigInt.cmp:(Lsun/misc/FDBigInt;)I
dup
istore 24 /* cmpResult */
ifge 165
160: .line 1575
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 174
161: .line 1576
aload 0 /* this */
iload 25 /* overvalue */
ifeq 162
iconst_m1
goto 163
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
162: 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
163: putfield sun.misc.FloatingDecimal.roundDir:I
164: .line 1578
goto 174
165: .line 1579
StackMap locals:
StackMap stack:
iload 24 /* cmpResult */
ifne 172
166: .line 1582
dload 4 /* dValue */
ldc 0.5
dload 4 /* dValue */
iload 25 /* overvalue */
invokestatic sun.misc.FloatingDecimal.ulp:(DZ)D
dmul
dadd
dstore 4 /* dValue */
167: .line 1584
aload 0 /* this */
getfield sun.misc.FloatingDecimal.mustSetRoundDir:Z
ifeq 174
168: .line 1585
aload 0 /* this */
iload 25 /* overvalue */
ifeq 169
iconst_m1
goto 170
StackMap locals:
StackMap stack: sun.misc.FloatingDecimal
169: 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
170: putfield sun.misc.FloatingDecimal.roundDir:I
171: .line 1587
goto 174
172: .line 1593
StackMap locals:
StackMap stack:
dload 4 /* dValue */
dload 4 /* dValue */
iload 25 /* overvalue */
invokestatic sun.misc.FloatingDecimal.ulp:(DZ)D
dadd
dstore 4 /* dValue */
173: .line 1594
dload 4 /* dValue */
dconst_0
dcmpl
ifeq 174
dload 4 /* dValue */
ldc Infinity
dcmpl
ifne 117
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
174: .line 1600
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 175
dload 4 /* dValue */
dneg
goto 176
StackMap locals:
StackMap stack:
175: dload 4 /* dValue */
StackMap locals:
StackMap stack: double
176: 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 177 0 this Lsun/misc/FloatingDecimal;
1 177 1 kDigits I
17 177 2 lValue J
23 177 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 177 10 iValue I
11 177 11 iDigits I
12 16 12 i I
18 22 12 i I
24 177 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
116 177 13 bigD0 Lsun/misc/FDBigInt;
118 174 14 bigB Lsun/misc/FDBigInt;
121 124 15 B2 I
126 174 15 B2 I
120 124 16 B5 I
125 174 16 B5 I
123 124 17 D2 I
128 174 17 D2 I
122 124 18 D5 I
127 174 18 D5 I
133 174 19 Ulp2 I
135 136 20 hulpbias I
137 174 20 hulpbias I
140 174 21 common2 I
145 174 22 bigD Lsun/misc/FDBigInt;
149 155 23 diff Lsun/misc/FDBigInt;
158 174 23 diff Lsun/misc/FDBigInt;
146 174 24 cmpResult I
148 155 25 overvalue Z
157 174 25 overvalue Z
159 174 26 halfUlp Lsun/misc/FDBigInt;
public float floatValue();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=1
start local 0 // sun.misc.FloatingDecimal this
0: .line 1616
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 1621
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 1622
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 1623
ldc NaN
freturn
4: .line 1625
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 1631
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 1632
iconst_1
istore 4 /* i */
start local 4 // int i
9: goto 12
10: .line 1633
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 1632
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 1635
iload 2 /* iValue */
i2f
fstore 3 /* fValue */
start local 3 // float fValue
14: .line 1636
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
iload 1 /* kDigits */
isub
istore 4 /* exp */
start local 4 // int exp
15: .line 1643
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
bipush 7
if_icmpgt 38
16: .line 1654
iload 4 /* exp */
ifeq 17
fload 3 /* fValue */
fconst_0
fcmpl
ifne 20
17: .line 1655
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 1656
StackMap locals:
StackMap stack:
iload 4 /* exp */
iflt 33
21: .line 1657
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
if_icmpgt 26
22: .line 1662
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
faload
fmul
fstore 3 /* fValue */
23: .line 1663
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 1665
StackMap locals:
StackMap stack:
bipush 7
iload 1 /* kDigits */
isub
istore 5 /* slop */
start local 5 // int slop
27: .line 1666
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
iload 5 /* slop */
iadd
if_icmpgt 52
28: .line 1673
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 5 /* slop */
faload
fmul
fstore 3 /* fValue */
29: .line 1674
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
iload 5 /* slop */
isub
faload
fmul
fstore 3 /* fValue */
30: .line 1675
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 1681
StackMap locals:
StackMap stack:
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal.singleMaxSmallTen:I
ineg
if_icmplt 52
34: .line 1685
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal.singleSmall10pow:[F
iload 4 /* exp */
ineg
faload
fdiv
fstore 3 /* fValue */
35: .line 1686
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 1692
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 1702
iload 2 /* iValue */
i2l
lstore 5 /* lValue */
start local 5 // long lValue
40: .line 1703
iload 1 /* kDigits */
istore 7 /* i */
start local 7 // int i
41: goto 44
42: .line 1704
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 1703
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 1706
lload 5 /* lValue */
l2d
dstore 7 /* dValue */
start local 7 // double dValue
46: .line 1707
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal.nDigits:I
isub
istore 4 /* exp */
47: .line 1708
dload 7 /* dValue */
getstatic sun.misc.FloatingDecimal.small10pow:[D
iload 4 /* exp */
daload
dmul
dstore 7 /* dValue */
48: .line 1709
dload 7 /* dValue */
d2f
fstore 3 /* fValue */
49: .line 1710
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 1722
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush 39
if_icmple 56
53: .line 1727
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 1728
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal.decExponent:I
bipush -46
if_icmpge 60
57: .line 1733
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 1748
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 1749
aload 0 /* this */
invokevirtual sun.misc.FloatingDecimal.doubleValue:()D
dstore 5 /* dValue */
start local 5 // double dValue
64: .line 1750
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
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 1883
getstatic sun.misc.FloatingDecimal.hexFloatPattern: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 1884
aload 1 /* m */
invokevirtual java.util.regex.Matcher.matches:()Z
istore 2 /* validInput */
start local 2 // boolean validInput
2: .line 1886
iload 2 /* validInput */
ifne 4
3: .line 1888
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 1915
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 1916
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 1948
aconst_null
astore 6 /* significandString */
start local 6 // java.lang.String significandString
10: .line 1949
iconst_0
istore 7 /* signifLength */
start local 7 // int signifLength
11: .line 1950
iconst_0
istore 8 /* exponentAdjust */
start local 8 // int exponentAdjust
12: .line 1952
iconst_0
istore 9 /* leftDigits */
start local 9 // int leftDigits
13: .line 1955
iconst_0
istore 10 /* rightDigits */
start local 10 // int rightDigits
14: .line 1969
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 1971
aload 11 /* group4 */
invokestatic sun.misc.FloatingDecimal.stripLeadingZeros:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* significandString */
17: .line 1972
aload 6 /* significandString */
invokevirtual java.lang.String.length:()I
istore 9 /* leftDigits */
18: .line 1973
goto 29
19: .line 1977
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 1978
aload 12 /* group6 */
invokevirtual java.lang.String.length:()I
istore 9 /* leftDigits */
21: .line 1981
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 1982
aload 13 /* group7 */
invokevirtual java.lang.String.length:()I
istore 10 /* rightDigits */
23: .line 1986
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 1988
aload 13 /* group7 */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: .line 1986
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: .line 1985
astore 6 /* significandString */
end local 13 // java.lang.String group7
end local 12 // java.lang.String group6
29: .line 1991
StackMap locals:
StackMap stack:
aload 6 /* significandString */
invokestatic sun.misc.FloatingDecimal.stripLeadingZeros:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* significandString */
30: .line 1992
aload 6 /* significandString */
invokevirtual java.lang.String.length:()I
istore 7 /* signifLength */
31: .line 1997
iload 9 /* leftDigits */
iconst_1
if_icmplt 34
32: .line 1998
iconst_4
iload 9 /* leftDigits */
iconst_1
isub
imul
istore 8 /* exponentAdjust */
33: .line 1999
goto 35
34: .line 2000
StackMap locals:
StackMap stack:
bipush -4
iload 10 /* rightDigits */
iload 7 /* signifLength */
isub
iconst_1
iadd
imul
istore 8 /* exponentAdjust */
35: .line 2006
StackMap locals:
StackMap stack:
iload 7 /* signifLength */
ifne 37
36: .line 2007
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 2019
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 2020
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 2023
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 2024
goto 49
end local 11 // long unsignedRawExponent
43: .line 2025
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 2039
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
iload 10 /* positiveExponent */
ifeq 46
45: .line 2040
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 2039
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
start local 11 // long unsignedRawExponent
49: .line 2044
StackMap locals: long
StackMap stack:
iload 10 /* positiveExponent */
ifeq 50
lconst_1
goto 51
StackMap locals:
StackMap stack:
50: ldc -1
51: .line 2045
StackMap locals:
StackMap stack: long
lload 11 /* unsignedRawExponent */
52: .line 2044
lmul
53: .line 2043
lstore 13 /* rawExponent */
start local 13 // long rawExponent
54: .line 2048
lload 13 /* rawExponent */
iload 8 /* exponentAdjust */
i2l
ladd
lstore 15 /* exponent */
start local 15 // long exponent
55: .line 2054
iconst_0
istore 17 /* round */
start local 17 // boolean round
56: .line 2055
iconst_0
istore 18 /* sticky */
start local 18 // boolean sticky
57: .line 2057
iconst_0
istore 19 /* nextShift */
start local 19 // int nextShift
58: .line 2058
lconst_0
lstore 20 /* significand */
start local 20 // long significand
59: .line 2065
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 2076
lload 22 /* leadingDigit */
lconst_1
lcmp
ifne 64
61: .line 2077
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 52
lshl
lor
lstore 20 /* significand */
62: .line 2078
bipush 48
istore 19 /* nextShift */
63: .line 2079
goto 80
64: .line 2080
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 2081
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 51
lshl
lor
lstore 20 /* significand */
66: .line 2082
bipush 47
istore 19 /* nextShift */
67: .line 2083
lload 15 /* exponent */
lconst_1
ladd
lstore 15 /* exponent */
68: .line 2084
goto 80
69: .line 2085
StackMap locals:
StackMap stack:
lload 22 /* leadingDigit */
ldc 7
lcmp
ifgt 74
70: .line 2086
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 50
lshl
lor
lstore 20 /* significand */
71: .line 2087
bipush 46
istore 19 /* nextShift */
72: .line 2088
lload 15 /* exponent */
ldc 2
ladd
lstore 15 /* exponent */
73: .line 2089
goto 80
74: .line 2090
StackMap locals:
StackMap stack:
lload 22 /* leadingDigit */
ldc 15
lcmp
ifgt 79
75: .line 2091
lload 20 /* significand */
lload 22 /* leadingDigit */
bipush 49
lshl
lor
lstore 20 /* significand */
76: .line 2092
bipush 45
istore 19 /* nextShift */
77: .line 2093
lload 15 /* exponent */
ldc 3
ladd
lstore 15 /* exponent */
78: .line 2094
goto 80
79: .line 2095
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 2117
StackMap locals:
StackMap stack:
iconst_0
istore 24 /* i */
start local 24 // int i
81: .line 2118
iconst_1
istore 24 /* i */
82: .line 2119
goto 87
83: .line 2121
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 2122
lload 20 /* significand */
lload 25 /* currentDigit */
iload 19 /* nextShift */
lshl
lor
lstore 20 /* significand */
85: .line 2123
iinc 19 /* nextShift */ -4
end local 25 // long currentDigit
86: .line 2120
iinc 24 /* i */ 1
87: .line 2119
StackMap locals:
StackMap stack:
iload 24 /* i */
iload 7 /* signifLength */
if_icmpge 89
iload 19 /* nextShift */
88: .line 2118
ifge 83
89: .line 2131
StackMap locals:
StackMap stack:
iload 24 /* i */
iload 7 /* signifLength */
if_icmpge 129
90: .line 2132
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 2136
iload 19 /* nextShift */
tableswitch { // -4 - -1
-4: 113
-3: 105
-2: 97
-1: 92
default: 120
}
92: .line 2140
StackMap locals: long
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 14
land
iconst_1
lshr
lor
lstore 20 /* significand */
93: .line 2141
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 2142
goto 121
97: .line 2147
StackMap locals:
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 12
land
iconst_2
lshr
lor
lstore 20 /* significand */
98: .line 2148
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 2149
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 2150
goto 121
105: .line 2154
StackMap locals:
StackMap stack:
lload 20 /* significand */
lload 25 /* currentDigit */
ldc 8
land
iconst_3
lshr
lor
lstore 20 /* significand */
106: .line 2156
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 2157
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 2158
goto 121
113: .line 2163
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 2165
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 2166
goto 121
120: .line 2169
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 2178
StackMap locals:
StackMap stack:
iinc 24 /* i */ 1
122: .line 2179
goto 128
123: .line 2180
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 2181
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 2182
iinc 24 /* i */ 1
128: .line 2179
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 2192
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc 1023
lcmp
ifle 131
130: .line 2194
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
ldc Infinity
dmul
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
131: .line 2196
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc 1023
lcmp
ifgt 143
132: .line 2197
lload 15 /* exponent */
ldc -1022
lcmp
iflt 143
133: .line 2210
lload 15 /* exponent */
134: .line 2211
ldc 1023
135: .line 2210
ladd
136: .line 2212
bipush 52
137: .line 2210
lshl
138: .line 2213
ldc 9218868437227405312
139: .line 2210
land
140: .line 2214
ldc 4503599627370495
lload 20 /* significand */
land
141: .line 2210
lor
lstore 20 /* significand */
142: .line 2216
goto 165
143: .line 2219
StackMap locals:
StackMap stack:
lload 15 /* exponent */
ldc -1075
lcmp
ifge 145
144: .line 2223
new sun.misc.FloatingDecimal
dup
dload 4 /* sign */
dconst_0
dmul
invokespecial sun.misc.FloatingDecimal.<init>:(D)V
areturn
145: .line 2231
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 2232
iconst_0
istore 17 /* round */
149: .line 2240
bipush 53
150: .line 2241
lload 15 /* exponent */
l2i
sipush -1074
isub
iconst_1
iadd
151: .line 2240
isub
istore 25 /* bitsDiscarded */
start local 25 // int bitsDiscarded
152: .line 2242
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 2246
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 2247
iload 25 /* bitsDiscarded */
iconst_1
if_icmple 162
158: .line 2250
ldc -1
iload 25 /* bitsDiscarded */
iconst_1
isub
lshl
ldc -1
lxor
lstore 26 /* mask */
start local 26 // long mask
159: .line 2251
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 2255
StackMap locals:
StackMap stack:
lload 20 /* significand */
iload 25 /* bitsDiscarded */
lshr
lstore 20 /* significand */
163: .line 2261
ldc 4503599627370495
lload 20 /* significand */
land
164: .line 2257
lstore 20 /* significand */
end local 25 // int bitsDiscarded
165: .line 2290
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 2291
iload 25 /* leastZero */
ifeq 169
iload 17 /* round */
ifeq 169
iload 18 /* sticky */
ifne 170
169: .line 2292
StackMap locals: int
StackMap stack:
iload 25 /* leastZero */
ifne 171
iload 17 /* round */
ifeq 171
170: .line 2294
StackMap locals:
StackMap stack:
lload 20 /* significand */
lconst_1
ladd
lstore 20 /* significand */
171: .line 2297
StackMap locals:
StackMap stack:
new sun.misc.FloatingDecimal
dup
172: .line 2298
lload 20 /* significand */
invokestatic java.lang.Double.longBitsToDouble:(J)D
173: .line 2299
dload 4 /* sign */
174: .line 2297
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 2324
lload 15 /* exponent */
ldc -150
lcmp
iflt 185
176: .line 2325
lload 15 /* exponent */
ldc 127
lcmp
ifgt 185
177: .line 2343
lload 20 /* significand */
ldc 268435455
land
lconst_0
lcmp
ifne 185
178: .line 2352
iload 17 /* round */
ifne 179
iload 18 /* sticky */
ifeq 185
179: .line 2353
StackMap locals: sun.misc.FloatingDecimal
StackMap stack:
iload 25 /* leastZero */
ifeq 183
180: .line 2362
iload 17 /* round */
iload 18 /* sticky */
ixor
ifeq 185
181: .line 2363
aload 26 /* fd */
iconst_1
putfield sun.misc.FloatingDecimal.roundDir:I
182: .line 2365
goto 185
183: .line 2374
StackMap locals:
StackMap stack:
iload 17 /* round */
ifeq 185
184: .line 2375
aload 26 /* fd */
iconst_m1
putfield sun.misc.FloatingDecimal.roundDir:I
185: .line 2381
StackMap locals:
StackMap stack:
aload 26 /* fd */
iconst_1
putfield sun.misc.FloatingDecimal.fromHex:Z
186: .line 2382
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 2391
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 2399
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 2400
iload 2 /* value */
iconst_m1
if_icmple 2
iload 2 /* value */
bipush 16
if_icmplt 5
2: .line 2401
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 2402
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 2401
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: .line 2404
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