class sun.misc.FloatingDecimal$ASCIIToBinaryBuffer implements sun.misc.FloatingDecimal$ASCIIToBinaryConverter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer
super_class: java.lang.Object
{
boolean isNegative;
descriptor: Z
flags: (0x0000)
int decExponent;
descriptor: I
flags: (0x0000)
char[] digits;
descriptor: [C
flags: (0x0000)
int nDigits;
descriptor: I
flags: (0x0000)
private static final double[] SMALL_10_POW;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float[] SINGLE_SMALL_10_POW;
descriptor: [F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double[] BIG_10_POW;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double[] TINY_10_POW;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int MAX_SMALL_TEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int SINGLE_MAX_SMALL_TEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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 1034
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$ASCIIToBinaryBuffer.$assertionsDisabled:Z
3: .line 1705
bipush 23
newarray 7
dup
iconst_0
4: .line 1706
dconst_1
dastore
dup
iconst_1
5: .line 1707
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
6: .line 1708
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
7: .line 1709
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
8: .line 1710
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
9: .line 1711
ldc 1.0E21
dastore
dup
bipush 22
ldc 1.0E22
dastore
10: .line 1705
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
11: .line 1714
bipush 11
newarray 6
dup
iconst_0
12: .line 1715
fconst_1
fastore
dup
iconst_1
13: .line 1716
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
14: .line 1717
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
15: .line 1714
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
16: .line 1720
iconst_5
newarray 7
dup
iconst_0
17: .line 1721
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
18: .line 1720
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.BIG_10_POW:[D
19: .line 1722
iconst_5
newarray 7
dup
iconst_0
20: .line 1723
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
21: .line 1722
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.TINY_10_POW:[D
22: .line 1725
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.MAX_SMALL_TEN:I
23: .line 1726
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
arraylength
iconst_1
isub
putstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_MAX_SMALL_TEN:I
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(boolean, int, char[], int);
descriptor: (ZI[CI)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 // sun.misc.FloatingDecimal$ASCIIToBinaryBuffer this
start local 1 // boolean negSign
start local 2 // int decExponent
start local 3 // char[] digits
start local 4 // int n
0: .line 1040
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1042
aload 0 /* this */
iload 1 /* negSign */
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
2: .line 1043
aload 0 /* this */
iload 2 /* decExponent */
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
3: .line 1044
aload 0 /* this */
aload 3 /* digits */
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
4: .line 1045
aload 0 /* this */
iload 4 /* n */
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
5: .line 1046
return
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$ASCIIToBinaryBuffer this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/misc/FloatingDecimal$ASCIIToBinaryBuffer;
0 6 1 negSign Z
0 6 2 decExponent I
0 6 3 digits [C
0 6 4 n I
MethodParameters:
Name Flags
negSign
decExponent
digits
n
public double doubleValue();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=31, args_size=1
start local 0 // sun.misc.FloatingDecimal$ASCIIToBinaryBuffer this
0: .line 1058
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
bipush 16
invokestatic java.lang.Math.min:(II)I
istore 1 /* kDigits */
start local 1 // int kDigits
1: .line 1063
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iconst_0
caload
bipush 48
isub
istore 2 /* iValue */
start local 2 // int iValue
2: .line 1064
iload 1 /* kDigits */
bipush 9
invokestatic java.lang.Math.min:(II)I
istore 3 /* iDigits */
start local 3 // int iDigits
3: .line 1065
iconst_1
istore 4 /* i */
start local 4 // int i
4: goto 7
5: .line 1066
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int int
StackMap stack:
iload 2 /* iValue */
bipush 10
imul
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 4 /* i */
caload
iadd
bipush 48
isub
istore 2 /* iValue */
6: .line 1065
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 3 /* iDigits */
if_icmplt 5
end local 4 // int i
8: .line 1068
iload 2 /* iValue */
i2l
lstore 4 /* lValue */
start local 4 // long lValue
9: .line 1069
iload 3 /* iDigits */
istore 6 /* i */
start local 6 // int i
10: goto 13
11: .line 1070
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long int
StackMap stack:
lload 4 /* lValue */
ldc 10
lmul
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 6 /* i */
caload
bipush 48
isub
i2l
ladd
lstore 4 /* lValue */
12: .line 1069
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 6 /* i */
iload 1 /* kDigits */
if_icmplt 11
end local 6 // int i
14: .line 1072
lload 4 /* lValue */
l2d
dstore 6 /* dValue */
start local 6 // double dValue
15: .line 1073
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
iload 1 /* kDigits */
isub
istore 8 /* exp */
start local 8 // int exp
16: .line 1080
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
bipush 15
if_icmpgt 39
17: .line 1091
iload 8 /* exp */
ifeq 18
dload 6 /* dValue */
dconst_0
dcmpl
ifne 21
18: .line 1092
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 19
dload 6 /* dValue */
dneg
goto 20
StackMap locals:
StackMap stack:
19: dload 6 /* dValue */
StackMap locals:
StackMap stack: double
20: dreturn
21: .line 1094
StackMap locals:
StackMap stack:
iload 8 /* exp */
iflt 34
22: .line 1095
iload 8 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.MAX_SMALL_TEN:I
if_icmpgt 27
23: .line 1100
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 8 /* exp */
daload
dmul
dstore 9 /* rValue */
start local 9 // double rValue
24: .line 1101
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 25
dload 9 /* rValue */
dneg
goto 26
StackMap locals: double
StackMap stack:
25: dload 9 /* rValue */
StackMap locals:
StackMap stack: double
26: dreturn
end local 9 // double rValue
27: .line 1103
StackMap locals:
StackMap stack:
bipush 15
iload 1 /* kDigits */
isub
istore 9 /* slop */
start local 9 // int slop
28: .line 1104
iload 8 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.MAX_SMALL_TEN:I
iload 9 /* slop */
iadd
if_icmpgt 39
29: .line 1111
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 9 /* slop */
daload
dmul
dstore 6 /* dValue */
30: .line 1112
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 8 /* exp */
iload 9 /* slop */
isub
daload
dmul
dstore 10 /* rValue */
start local 10 // double rValue
31: .line 1113
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 32
dload 10 /* rValue */
dneg
goto 33
StackMap locals: int double
StackMap stack:
32: dload 10 /* rValue */
StackMap locals:
StackMap stack: double
33: dreturn
end local 10 // double rValue
end local 9 // int slop
34: .line 1119
StackMap locals:
StackMap stack:
iload 8 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.MAX_SMALL_TEN:I
ineg
if_icmplt 39
35: .line 1123
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 8 /* exp */
ineg
daload
ddiv
dstore 9 /* rValue */
start local 9 // double rValue
36: .line 1124
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 37
dload 9 /* rValue */
dneg
goto 38
StackMap locals: double
StackMap stack:
37: dload 9 /* rValue */
StackMap locals:
StackMap stack: double
38: dreturn
end local 9 // double rValue
39: .line 1140
StackMap locals:
StackMap stack:
iload 8 /* exp */
ifle 64
40: .line 1141
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
sipush 309
if_icmple 44
41: .line 1146
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 42
ldc -Infinity
goto 43
StackMap locals:
StackMap stack:
42: ldc Infinity
StackMap locals:
StackMap stack: double
43: dreturn
44: .line 1148
StackMap locals:
StackMap stack:
iload 8 /* exp */
bipush 15
iand
ifeq 46
45: .line 1149
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 8 /* exp */
bipush 15
iand
daload
dmul
dstore 6 /* dValue */
46: .line 1151
StackMap locals:
StackMap stack:
iload 8 /* exp */
iconst_4
ishr
dup
istore 8 /* exp */
ifeq 89
47: .line 1153
iconst_0
istore 9 /* j */
start local 9 // int j
48: goto 52
49: .line 1154
StackMap locals: int
StackMap stack:
iload 8 /* exp */
iconst_1
iand
ifeq 51
50: .line 1155
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.BIG_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 6 /* dValue */
51: .line 1153
StackMap locals:
StackMap stack:
iinc 9 /* j */ 1
iload 8 /* exp */
iconst_1
ishr
istore 8 /* exp */
StackMap locals:
StackMap stack:
52: iload 8 /* exp */
iconst_1
if_icmpgt 49
53: .line 1164
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.BIG_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 10 /* t */
start local 10 // double t
54: .line 1165
dload 10 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 62
55: .line 1178
dload 6 /* dValue */
ldc 2.0
ddiv
dstore 10 /* t */
56: .line 1179
dload 10 /* t */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.BIG_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 10 /* t */
57: .line 1180
dload 10 /* t */
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 61
58: .line 1181
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 59
ldc -Infinity
goto 60
StackMap locals: double
StackMap stack:
59: ldc Infinity
StackMap locals:
StackMap stack: double
60: dreturn
61: .line 1183
StackMap locals:
StackMap stack:
ldc 1.7976931348623157E308
dstore 10 /* t */
62: .line 1185
StackMap locals:
StackMap stack:
dload 10 /* t */
dstore 6 /* dValue */
end local 10 // double t
end local 9 // int j
63: .line 1187
goto 89
StackMap locals:
StackMap stack:
64: iload 8 /* exp */
ifge 89
65: .line 1188
iload 8 /* exp */
ineg
istore 8 /* exp */
66: .line 1189
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
sipush -325
if_icmpge 70
67: .line 1194
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 68
ldc -0.0
goto 69
StackMap locals:
StackMap stack:
68: dconst_0
StackMap locals:
StackMap stack: double
69: dreturn
70: .line 1196
StackMap locals:
StackMap stack:
iload 8 /* exp */
bipush 15
iand
ifeq 72
71: .line 1197
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 8 /* exp */
bipush 15
iand
daload
ddiv
dstore 6 /* dValue */
72: .line 1199
StackMap locals:
StackMap stack:
iload 8 /* exp */
iconst_4
ishr
dup
istore 8 /* exp */
ifeq 89
73: .line 1201
iconst_0
istore 9 /* j */
start local 9 // int j
74: goto 78
75: .line 1202
StackMap locals: int
StackMap stack:
iload 8 /* exp */
iconst_1
iand
ifeq 77
76: .line 1203
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.TINY_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 6 /* dValue */
77: .line 1201
StackMap locals:
StackMap stack:
iinc 9 /* j */ 1
iload 8 /* exp */
iconst_1
ishr
istore 8 /* exp */
StackMap locals:
StackMap stack:
78: iload 8 /* exp */
iconst_1
if_icmpgt 75
79: .line 1212
dload 6 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.TINY_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 10 /* t */
start local 10 // double t
80: .line 1213
dload 10 /* t */
dconst_0
dcmpl
ifne 88
81: .line 1226
dload 6 /* dValue */
ldc 2.0
dmul
dstore 10 /* t */
82: .line 1227
dload 10 /* t */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.TINY_10_POW:[D
iload 9 /* j */
daload
dmul
dstore 10 /* t */
83: .line 1228
dload 10 /* t */
dconst_0
dcmpl
ifne 87
84: .line 1229
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 85
ldc -0.0
goto 86
StackMap locals: double
StackMap stack:
85: dconst_0
StackMap locals:
StackMap stack: double
86: dreturn
87: .line 1231
StackMap locals:
StackMap stack:
ldc 4.9E-324
dstore 10 /* t */
88: .line 1233
StackMap locals:
StackMap stack:
dload 10 /* t */
dstore 6 /* dValue */
end local 10 // double t
end local 9 // int j
89: .line 1244
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
sipush 1100
if_icmple 92
90: .line 1245
aload 0 /* this */
sipush 1101
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
91: .line 1246
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
sipush 1100
bipush 49
castore
92: .line 1248
StackMap locals:
StackMap stack:
new sun.misc.FDBigInteger
dup
lload 4 /* lValue */
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 1 /* kDigits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
invokespecial sun.misc.FDBigInteger.<init>:(J[CII)V
astore 9 /* bigD0 */
start local 9 // sun.misc.FDBigInteger bigD0
93: .line 1249
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
isub
istore 8 /* exp */
94: .line 1251
dload 6 /* dValue */
invokestatic java.lang.Double.doubleToRawLongBits:(D)J
lstore 10 /* ieeeBits */
start local 10 // long ieeeBits
95: .line 1252
iconst_0
iload 8 /* exp */
ineg
invokestatic java.lang.Math.max:(II)I
istore 12 /* B5 */
start local 12 // int B5
96: .line 1253
iconst_0
iload 8 /* exp */
invokestatic java.lang.Math.max:(II)I
istore 13 /* D5 */
start local 13 // int D5
97: .line 1254
aload 9 /* bigD0 */
iload 13 /* D5 */
iconst_0
invokevirtual sun.misc.FDBigInteger.multByPow52:(II)Lsun/misc/FDBigInteger;
astore 9 /* bigD0 */
98: .line 1255
aload 9 /* bigD0 */
invokevirtual sun.misc.FDBigInteger.makeImmutable:()V
99: .line 1256
aconst_null
astore 14 /* bigD */
start local 14 // sun.misc.FDBigInteger bigD
100: .line 1257
iconst_0
istore 15 /* prevD2 */
start local 15 // int prevD2
101: .line 1262
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int
StackMap stack:
lload 10 /* ieeeBits */
bipush 52
lushr
l2i
istore 16 /* binexp */
start local 16 // int binexp
102: .line 1263
lload 10 /* ieeeBits */
ldc 4503599627370495
land
lstore 17 /* bigBbits */
start local 17 // long bigBbits
103: .line 1264
iload 16 /* binexp */
ifle 106
104: .line 1265
lload 17 /* bigBbits */
ldc 4503599627370496
lor
lstore 17 /* bigBbits */
105: .line 1266
goto 111
106: .line 1267
StackMap locals: int long
StackMap stack:
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.$assertionsDisabled:Z
ifne 107
lload 17 /* bigBbits */
lconst_0
lcmp
ifne 107
new java.lang.AssertionError
dup
lload 17 /* bigBbits */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
107: .line 1268
StackMap locals:
StackMap stack:
lload 17 /* bigBbits */
invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
istore 19 /* leadingZeros */
start local 19 // int leadingZeros
108: .line 1269
iload 19 /* leadingZeros */
bipush 11
isub
istore 20 /* shift */
start local 20 // int shift
109: .line 1270
lload 17 /* bigBbits */
iload 20 /* shift */
lshl
lstore 17 /* bigBbits */
110: .line 1271
iconst_1
iload 20 /* shift */
isub
istore 16 /* binexp */
end local 20 // int shift
end local 19 // int leadingZeros
111: .line 1273
StackMap locals:
StackMap stack:
iinc 16 /* binexp */ -1023
112: .line 1274
lload 17 /* bigBbits */
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 19 /* lowOrderZeros */
start local 19 // int lowOrderZeros
113: .line 1275
lload 17 /* bigBbits */
iload 19 /* lowOrderZeros */
lushr
lstore 17 /* bigBbits */
114: .line 1276
iload 16 /* binexp */
bipush 52
isub
iload 19 /* lowOrderZeros */
iadd
istore 20 /* bigIntExp */
start local 20 // int bigIntExp
115: .line 1277
bipush 53
iload 19 /* lowOrderZeros */
isub
istore 21 /* bigIntNBits */
start local 21 // int bigIntNBits
116: .line 1288
iload 12 /* B5 */
istore 22 /* B2 */
start local 22 // int B2
117: .line 1289
iload 13 /* D5 */
istore 23 /* D2 */
start local 23 // int D2
118: .line 1291
iload 20 /* bigIntExp */
iflt 121
119: .line 1292
iload 22 /* B2 */
iload 20 /* bigIntExp */
iadd
istore 22 /* B2 */
120: .line 1293
goto 122
121: .line 1294
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int int long int int int int int
StackMap stack:
iload 23 /* D2 */
iload 20 /* bigIntExp */
isub
istore 23 /* D2 */
122: .line 1296
StackMap locals:
StackMap stack:
iload 22 /* B2 */
istore 24 /* Ulp2 */
start local 24 // int Ulp2
123: .line 1300
iload 16 /* binexp */
sipush -1023
if_icmpgt 126
124: .line 1304
iload 16 /* binexp */
iload 19 /* lowOrderZeros */
iadd
sipush 1023
iadd
istore 25 /* hulpbias */
start local 25 // int hulpbias
125: .line 1305
goto 127
end local 25 // int hulpbias
126: .line 1306
StackMap locals: int
StackMap stack:
iconst_1
iload 19 /* lowOrderZeros */
iadd
istore 25 /* hulpbias */
start local 25 // int hulpbias
127: .line 1308
StackMap locals: int
StackMap stack:
iload 22 /* B2 */
iload 25 /* hulpbias */
iadd
istore 22 /* B2 */
128: .line 1309
iload 23 /* D2 */
iload 25 /* hulpbias */
iadd
istore 23 /* D2 */
129: .line 1312
iload 22 /* B2 */
iload 23 /* D2 */
iload 24 /* Ulp2 */
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.min:(II)I
istore 26 /* common2 */
start local 26 // int common2
130: .line 1313
iload 22 /* B2 */
iload 26 /* common2 */
isub
istore 22 /* B2 */
131: .line 1314
iload 23 /* D2 */
iload 26 /* common2 */
isub
istore 23 /* D2 */
132: .line 1315
iload 24 /* Ulp2 */
iload 26 /* common2 */
isub
istore 24 /* Ulp2 */
133: .line 1317
lload 17 /* bigBbits */
iload 12 /* B5 */
iload 22 /* B2 */
invokestatic sun.misc.FDBigInteger.valueOfMulPow52:(JII)Lsun/misc/FDBigInteger;
astore 27 /* bigB */
start local 27 // sun.misc.FDBigInteger bigB
134: .line 1318
aload 14 /* bigD */
ifnull 135
iload 15 /* prevD2 */
iload 23 /* D2 */
if_icmpeq 137
135: .line 1319
StackMap locals: int sun.misc.FDBigInteger
StackMap stack:
aload 9 /* bigD0 */
iload 23 /* D2 */
invokevirtual sun.misc.FDBigInteger.leftShift:(I)Lsun/misc/FDBigInteger;
astore 14 /* bigD */
136: .line 1320
iload 23 /* D2 */
istore 15 /* prevD2 */
137: .line 1339
StackMap locals:
StackMap stack:
aload 27 /* bigB */
aload 14 /* bigD */
invokevirtual sun.misc.FDBigInteger.cmp:(Lsun/misc/FDBigInteger;)I
dup
istore 29 /* cmpResult */
start local 29 // int cmpResult
138: ifle 147
139: .line 1340
iconst_1
istore 30 /* overvalue */
start local 30 // boolean overvalue
140: .line 1341
aload 27 /* bigB */
aload 14 /* bigD */
invokevirtual sun.misc.FDBigInteger.leftInplaceSub:(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
astore 28 /* diff */
start local 28 // sun.misc.FDBigInteger diff
141: .line 1342
iload 21 /* bigIntNBits */
iconst_1
if_icmpne 150
iload 20 /* bigIntExp */
sipush -1022
if_icmple 150
142: .line 1347
iinc 24 /* Ulp2 */ -1
143: .line 1348
iload 24 /* Ulp2 */
ifge 150
144: .line 1351
iconst_0
istore 24 /* Ulp2 */
145: .line 1352
aload 28 /* diff */
iconst_1
invokevirtual sun.misc.FDBigInteger.leftShift:(I)Lsun/misc/FDBigInteger;
astore 28 /* diff */
146: .line 1355
goto 150
end local 30 // boolean overvalue
end local 28 // sun.misc.FDBigInteger diff
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int int long int int int int int int int int sun.misc.FDBigInteger top int
StackMap stack:
147: iload 29 /* cmpResult */
ifge 163
148: .line 1356
iconst_0
istore 30 /* overvalue */
start local 30 // boolean overvalue
149: .line 1357
aload 14 /* bigD */
aload 27 /* bigB */
invokevirtual sun.misc.FDBigInteger.rightInplaceSub:(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
astore 28 /* diff */
start local 28 // sun.misc.FDBigInteger diff
150: .line 1363
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int int long int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack:
aload 28 /* diff */
iload 12 /* B5 */
iload 24 /* Ulp2 */
invokevirtual sun.misc.FDBigInteger.cmpPow52:(II)I
istore 29 /* cmpResult */
151: .line 1364
iload 29 /* cmpResult */
ifge 153
152: .line 1367
goto 163
153: .line 1368
StackMap locals:
StackMap stack:
iload 29 /* cmpResult */
ifne 159
154: .line 1371
lload 10 /* ieeeBits */
lconst_1
land
lconst_0
lcmp
ifeq 163
155: .line 1372
lload 10 /* ieeeBits */
iload 30 /* overvalue */
ifeq 156
iconst_m1
goto 157
StackMap locals:
StackMap stack: long
156: iconst_1
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int int long int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack: long int
157: i2l
ladd
lstore 10 /* ieeeBits */
158: .line 1374
goto 163
159: .line 1380
StackMap locals:
StackMap stack:
lload 10 /* ieeeBits */
iload 30 /* overvalue */
ifeq 160
iconst_m1
goto 161
StackMap locals:
StackMap stack: long
160: iconst_1
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int int long int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack: long int
161: i2l
ladd
lstore 10 /* ieeeBits */
162: .line 1381
lload 10 /* ieeeBits */
lconst_0
lcmp
ifeq 163
lload 10 /* ieeeBits */
ldc 9218868437227405312
lcmp
ifne 101
end local 30 // boolean overvalue
end local 29 // int cmpResult
end local 28 // sun.misc.FDBigInteger diff
end local 27 // sun.misc.FDBigInteger bigB
end local 26 // int common2
end local 25 // int hulpbias
end local 24 // int Ulp2
end local 23 // int D2
end local 22 // int B2
end local 21 // int bigIntNBits
end local 20 // int bigIntExp
end local 19 // int lowOrderZeros
end local 17 // long bigBbits
end local 16 // int binexp
163: .line 1388
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int int long double int sun.misc.FDBigInteger long int int sun.misc.FDBigInteger int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 165
164: .line 1389
lload 10 /* ieeeBits */
ldc -9223372036854775808
lor
lstore 10 /* ieeeBits */
165: .line 1391
StackMap locals:
StackMap stack:
lload 10 /* ieeeBits */
invokestatic java.lang.Double.longBitsToDouble:(J)D
dreturn
end local 15 // int prevD2
end local 14 // sun.misc.FDBigInteger bigD
end local 13 // int D5
end local 12 // int B5
end local 10 // long ieeeBits
end local 9 // sun.misc.FDBigInteger bigD0
end local 8 // int exp
end local 6 // double dValue
end local 4 // long lValue
end local 3 // int iDigits
end local 2 // int iValue
end local 1 // int kDigits
end local 0 // sun.misc.FloatingDecimal$ASCIIToBinaryBuffer this
LocalVariableTable:
Start End Slot Name Signature
0 166 0 this Lsun/misc/FloatingDecimal$ASCIIToBinaryBuffer;
1 166 1 kDigits I
2 166 2 iValue I
3 166 3 iDigits I
4 8 4 i I
9 166 4 lValue J
10 14 6 i I
15 166 6 dValue D
16 166 8 exp I
24 27 9 rValue D
28 34 9 slop I
31 34 10 rValue D
36 39 9 rValue D
48 63 9 j I
54 63 10 t D
74 89 9 j I
80 89 10 t D
93 166 9 bigD0 Lsun/misc/FDBigInteger;
95 166 10 ieeeBits J
96 166 12 B5 I
97 166 13 D5 I
100 166 14 bigD Lsun/misc/FDBigInteger;
101 166 15 prevD2 I
102 163 16 binexp I
103 163 17 bigBbits J
108 111 19 leadingZeros I
109 111 20 shift I
113 163 19 lowOrderZeros I
115 163 20 bigIntExp I
116 163 21 bigIntNBits I
117 163 22 B2 I
118 163 23 D2 I
123 163 24 Ulp2 I
125 126 25 hulpbias I
127 163 25 hulpbias I
130 163 26 common2 I
134 163 27 bigB Lsun/misc/FDBigInteger;
141 147 28 diff Lsun/misc/FDBigInteger;
150 163 28 diff Lsun/misc/FDBigInteger;
138 163 29 cmpResult I
140 147 30 overvalue Z
149 163 30 overvalue Z
public float floatValue();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=27, args_size=1
start local 0 // sun.misc.FloatingDecimal$ASCIIToBinaryBuffer this
0: .line 1405
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
bipush 8
invokestatic java.lang.Math.min:(II)I
istore 1 /* kDigits */
start local 1 // int kDigits
1: .line 1409
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iconst_0
caload
bipush 48
isub
istore 2 /* iValue */
start local 2 // int iValue
2: .line 1410
iconst_1
istore 3 /* i */
start local 3 // int i
3: goto 6
4: .line 1411
StackMap locals: int int int
StackMap stack:
iload 2 /* iValue */
bipush 10
imul
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 3 /* i */
caload
iadd
bipush 48
isub
istore 2 /* iValue */
5: .line 1410
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 3 /* i */
iload 1 /* kDigits */
if_icmplt 4
end local 3 // int i
7: .line 1413
iload 2 /* iValue */
i2f
fstore 3 /* fValue */
start local 3 // float fValue
8: .line 1414
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
iload 1 /* kDigits */
isub
istore 4 /* exp */
start local 4 // int exp
9: .line 1421
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
bipush 7
if_icmpgt 32
10: .line 1432
iload 4 /* exp */
ifeq 11
fload 3 /* fValue */
fconst_0
fcmpl
ifne 14
11: .line 1433
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 12
fload 3 /* fValue */
fneg
goto 13
StackMap locals:
StackMap stack:
12: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
13: freturn
14: .line 1434
StackMap locals:
StackMap stack:
iload 4 /* exp */
iflt 27
15: .line 1435
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_MAX_SMALL_TEN:I
if_icmpgt 20
16: .line 1440
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
iload 4 /* exp */
faload
fmul
fstore 3 /* fValue */
17: .line 1441
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.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 1443
StackMap locals:
StackMap stack:
bipush 7
iload 1 /* kDigits */
isub
istore 5 /* slop */
start local 5 // int slop
21: .line 1444
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_MAX_SMALL_TEN:I
iload 5 /* slop */
iadd
if_icmpgt 46
22: .line 1451
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
iload 5 /* slop */
faload
fmul
fstore 3 /* fValue */
23: .line 1452
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
iload 4 /* exp */
iload 5 /* slop */
isub
faload
fmul
fstore 3 /* fValue */
24: .line 1453
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 25
fload 3 /* fValue */
fneg
goto 26
StackMap locals: int
StackMap stack:
25: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
26: freturn
end local 5 // int slop
27: .line 1459
StackMap locals:
StackMap stack:
iload 4 /* exp */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_MAX_SMALL_TEN:I
ineg
if_icmplt 46
28: .line 1463
fload 3 /* fValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SINGLE_SMALL_10_POW:[F
iload 4 /* exp */
ineg
faload
fdiv
fstore 3 /* fValue */
29: .line 1464
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 30
fload 3 /* fValue */
fneg
goto 31
StackMap locals:
StackMap stack:
30: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
31: freturn
32: .line 1470
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
if_icmplt 46
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
iadd
bipush 15
if_icmpgt 46
33: .line 1480
iload 2 /* iValue */
i2l
lstore 5 /* lValue */
start local 5 // long lValue
34: .line 1481
iload 1 /* kDigits */
istore 7 /* i */
start local 7 // int i
35: goto 38
36: .line 1482
StackMap locals: long int
StackMap stack:
lload 5 /* lValue */
ldc 10
lmul
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 7 /* i */
caload
bipush 48
isub
i2l
ladd
lstore 5 /* lValue */
37: .line 1481
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
38: iload 7 /* i */
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
if_icmplt 36
end local 7 // int i
39: .line 1484
lload 5 /* lValue */
l2d
dstore 7 /* dValue */
start local 7 // double dValue
40: .line 1485
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
isub
istore 4 /* exp */
41: .line 1486
dload 7 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 4 /* exp */
daload
dmul
dstore 7 /* dValue */
42: .line 1487
dload 7 /* dValue */
d2f
fstore 3 /* fValue */
43: .line 1488
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 44
fload 3 /* fValue */
fneg
goto 45
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int long double
StackMap stack:
44: fload 3 /* fValue */
StackMap locals:
StackMap stack: float
45: freturn
end local 7 // double dValue
end local 5 // long lValue
46: .line 1500
StackMap locals:
StackMap stack:
fload 3 /* fValue */
f2d
dstore 5 /* dValue */
start local 5 // double dValue
47: .line 1501
iload 4 /* exp */
ifle 62
48: .line 1502
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
bipush 39
if_icmple 52
49: .line 1507
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 50
ldc -Infinity
goto 51
StackMap locals: double
StackMap stack:
50: ldc Infinity
StackMap locals:
StackMap stack: float
51: freturn
52: .line 1509
StackMap locals:
StackMap stack:
iload 4 /* exp */
bipush 15
iand
ifeq 54
53: .line 1510
dload 5 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 4 /* exp */
bipush 15
iand
daload
dmul
dstore 5 /* dValue */
54: .line 1512
StackMap locals:
StackMap stack:
iload 4 /* exp */
iconst_4
ishr
dup
istore 4 /* exp */
ifeq 77
55: .line 1514
iconst_0
istore 7 /* j */
start local 7 // int j
56: goto 60
57: .line 1515
StackMap locals: int
StackMap stack:
iload 4 /* exp */
iconst_1
iand
ifeq 59
58: .line 1516
dload 5 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.BIG_10_POW:[D
iload 7 /* j */
daload
dmul
dstore 5 /* dValue */
59: .line 1514
StackMap locals:
StackMap stack:
iinc 7 /* j */ 1
iload 4 /* exp */
iconst_1
ishr
istore 4 /* exp */
StackMap locals:
StackMap stack:
60: iload 4 /* exp */
ifgt 57
end local 7 // int j
61: .line 1520
goto 77
StackMap locals:
StackMap stack:
62: iload 4 /* exp */
ifge 77
63: .line 1521
iload 4 /* exp */
ineg
istore 4 /* exp */
64: .line 1522
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
bipush -46
if_icmpge 68
65: .line 1527
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 66
ldc -0.0
goto 67
StackMap locals:
StackMap stack:
66: fconst_0
StackMap locals:
StackMap stack: float
67: freturn
68: .line 1529
StackMap locals:
StackMap stack:
iload 4 /* exp */
bipush 15
iand
ifeq 70
69: .line 1530
dload 5 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.SMALL_10_POW:[D
iload 4 /* exp */
bipush 15
iand
daload
ddiv
dstore 5 /* dValue */
70: .line 1532
StackMap locals:
StackMap stack:
iload 4 /* exp */
iconst_4
ishr
dup
istore 4 /* exp */
ifeq 77
71: .line 1534
iconst_0
istore 7 /* j */
start local 7 // int j
72: goto 76
73: .line 1535
StackMap locals: int
StackMap stack:
iload 4 /* exp */
iconst_1
iand
ifeq 75
74: .line 1536
dload 5 /* dValue */
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.TINY_10_POW:[D
iload 7 /* j */
daload
dmul
dstore 5 /* dValue */
75: .line 1534
StackMap locals:
StackMap stack:
iinc 7 /* j */ 1
iload 4 /* exp */
iconst_1
ishr
istore 4 /* exp */
StackMap locals:
StackMap stack:
76: iload 4 /* exp */
ifgt 73
end local 7 // int j
77: .line 1541
StackMap locals:
StackMap stack:
ldc 1.4E-45
ldc 3.4028235E38
dload 5 /* dValue */
d2f
invokestatic java.lang.Math.min:(FF)F
invokestatic java.lang.Math.max:(FF)F
fstore 3 /* fValue */
78: .line 1550
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
sipush 200
if_icmple 81
79: .line 1551
aload 0 /* this */
sipush 201
putfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
80: .line 1552
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
sipush 200
bipush 49
castore
81: .line 1554
StackMap locals:
StackMap stack:
new sun.misc.FDBigInteger
dup
iload 2 /* iValue */
i2l
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.digits:[C
iload 1 /* kDigits */
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
invokespecial sun.misc.FDBigInteger.<init>:(J[CII)V
astore 7 /* bigD0 */
start local 7 // sun.misc.FDBigInteger bigD0
82: .line 1555
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.decExponent:I
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.nDigits:I
isub
istore 4 /* exp */
83: .line 1557
fload 3 /* fValue */
invokestatic java.lang.Float.floatToRawIntBits:(F)I
istore 8 /* ieeeBits */
start local 8 // int ieeeBits
84: .line 1558
iconst_0
iload 4 /* exp */
ineg
invokestatic java.lang.Math.max:(II)I
istore 9 /* B5 */
start local 9 // int B5
85: .line 1559
iconst_0
iload 4 /* exp */
invokestatic java.lang.Math.max:(II)I
istore 10 /* D5 */
start local 10 // int D5
86: .line 1560
aload 7 /* bigD0 */
iload 10 /* D5 */
iconst_0
invokevirtual sun.misc.FDBigInteger.multByPow52:(II)Lsun/misc/FDBigInteger;
astore 7 /* bigD0 */
87: .line 1561
aload 7 /* bigD0 */
invokevirtual sun.misc.FDBigInteger.makeImmutable:()V
88: .line 1562
aconst_null
astore 11 /* bigD */
start local 11 // sun.misc.FDBigInteger bigD
89: .line 1563
iconst_0
istore 12 /* prevD2 */
start local 12 // int prevD2
90: .line 1568
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int
StackMap stack:
iload 8 /* ieeeBits */
bipush 23
iushr
istore 13 /* binexp */
start local 13 // int binexp
91: .line 1569
iload 8 /* ieeeBits */
ldc 8388607
iand
istore 14 /* bigBbits */
start local 14 // int bigBbits
92: .line 1570
iload 13 /* binexp */
ifle 95
93: .line 1571
iload 14 /* bigBbits */
ldc 8388608
ior
istore 14 /* bigBbits */
94: .line 1572
goto 100
95: .line 1573
StackMap locals: int int
StackMap stack:
getstatic sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.$assertionsDisabled:Z
ifne 96
iload 14 /* bigBbits */
ifne 96
new java.lang.AssertionError
dup
iload 14 /* bigBbits */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
96: .line 1574
StackMap locals:
StackMap stack:
iload 14 /* bigBbits */
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
istore 15 /* leadingZeros */
start local 15 // int leadingZeros
97: .line 1575
iload 15 /* leadingZeros */
bipush 8
isub
istore 16 /* shift */
start local 16 // int shift
98: .line 1576
iload 14 /* bigBbits */
iload 16 /* shift */
ishl
istore 14 /* bigBbits */
99: .line 1577
iconst_1
iload 16 /* shift */
isub
istore 13 /* binexp */
end local 16 // int shift
end local 15 // int leadingZeros
100: .line 1579
StackMap locals:
StackMap stack:
iinc 13 /* binexp */ -127
101: .line 1580
iload 14 /* bigBbits */
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
istore 15 /* lowOrderZeros */
start local 15 // int lowOrderZeros
102: .line 1581
iload 14 /* bigBbits */
iload 15 /* lowOrderZeros */
iushr
istore 14 /* bigBbits */
103: .line 1582
iload 13 /* binexp */
bipush 23
isub
iload 15 /* lowOrderZeros */
iadd
istore 16 /* bigIntExp */
start local 16 // int bigIntExp
104: .line 1583
bipush 24
iload 15 /* lowOrderZeros */
isub
istore 17 /* bigIntNBits */
start local 17 // int bigIntNBits
105: .line 1594
iload 9 /* B5 */
istore 18 /* B2 */
start local 18 // int B2
106: .line 1595
iload 10 /* D5 */
istore 19 /* D2 */
start local 19 // int D2
107: .line 1597
iload 16 /* bigIntExp */
iflt 110
108: .line 1598
iload 18 /* B2 */
iload 16 /* bigIntExp */
iadd
istore 18 /* B2 */
109: .line 1599
goto 111
110: .line 1600
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int int int int int int int int
StackMap stack:
iload 19 /* D2 */
iload 16 /* bigIntExp */
isub
istore 19 /* D2 */
111: .line 1602
StackMap locals:
StackMap stack:
iload 18 /* B2 */
istore 20 /* Ulp2 */
start local 20 // int Ulp2
112: .line 1606
iload 13 /* binexp */
bipush -127
if_icmpgt 115
113: .line 1610
iload 13 /* binexp */
iload 15 /* lowOrderZeros */
iadd
bipush 127
iadd
istore 21 /* hulpbias */
start local 21 // int hulpbias
114: .line 1611
goto 116
end local 21 // int hulpbias
115: .line 1612
StackMap locals: int
StackMap stack:
iconst_1
iload 15 /* lowOrderZeros */
iadd
istore 21 /* hulpbias */
start local 21 // int hulpbias
116: .line 1614
StackMap locals: int
StackMap stack:
iload 18 /* B2 */
iload 21 /* hulpbias */
iadd
istore 18 /* B2 */
117: .line 1615
iload 19 /* D2 */
iload 21 /* hulpbias */
iadd
istore 19 /* D2 */
118: .line 1618
iload 18 /* B2 */
iload 19 /* D2 */
iload 20 /* Ulp2 */
invokestatic java.lang.Math.min:(II)I
invokestatic java.lang.Math.min:(II)I
istore 22 /* common2 */
start local 22 // int common2
119: .line 1619
iload 18 /* B2 */
iload 22 /* common2 */
isub
istore 18 /* B2 */
120: .line 1620
iload 19 /* D2 */
iload 22 /* common2 */
isub
istore 19 /* D2 */
121: .line 1621
iload 20 /* Ulp2 */
iload 22 /* common2 */
isub
istore 20 /* Ulp2 */
122: .line 1623
iload 14 /* bigBbits */
i2l
iload 9 /* B5 */
iload 18 /* B2 */
invokestatic sun.misc.FDBigInteger.valueOfMulPow52:(JII)Lsun/misc/FDBigInteger;
astore 23 /* bigB */
start local 23 // sun.misc.FDBigInteger bigB
123: .line 1624
aload 11 /* bigD */
ifnull 124
iload 12 /* prevD2 */
iload 19 /* D2 */
if_icmpeq 126
124: .line 1625
StackMap locals: int sun.misc.FDBigInteger
StackMap stack:
aload 7 /* bigD0 */
iload 19 /* D2 */
invokevirtual sun.misc.FDBigInteger.leftShift:(I)Lsun/misc/FDBigInteger;
astore 11 /* bigD */
125: .line 1626
iload 19 /* D2 */
istore 12 /* prevD2 */
126: .line 1645
StackMap locals:
StackMap stack:
aload 23 /* bigB */
aload 11 /* bigD */
invokevirtual sun.misc.FDBigInteger.cmp:(Lsun/misc/FDBigInteger;)I
dup
istore 25 /* cmpResult */
start local 25 // int cmpResult
127: ifle 136
128: .line 1646
iconst_1
istore 26 /* overvalue */
start local 26 // boolean overvalue
129: .line 1647
aload 23 /* bigB */
aload 11 /* bigD */
invokevirtual sun.misc.FDBigInteger.leftInplaceSub:(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
astore 24 /* diff */
start local 24 // sun.misc.FDBigInteger diff
130: .line 1648
iload 17 /* bigIntNBits */
iconst_1
if_icmpne 139
iload 16 /* bigIntExp */
bipush -126
if_icmple 139
131: .line 1653
iinc 20 /* Ulp2 */ -1
132: .line 1654
iload 20 /* Ulp2 */
ifge 139
133: .line 1657
iconst_0
istore 20 /* Ulp2 */
134: .line 1658
aload 24 /* diff */
iconst_1
invokevirtual sun.misc.FDBigInteger.leftShift:(I)Lsun/misc/FDBigInteger;
astore 24 /* diff */
135: .line 1661
goto 139
end local 26 // boolean overvalue
end local 24 // sun.misc.FDBigInteger diff
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int int int int int int int int int int int sun.misc.FDBigInteger top int
StackMap stack:
136: iload 25 /* cmpResult */
ifge 152
137: .line 1662
iconst_0
istore 26 /* overvalue */
start local 26 // boolean overvalue
138: .line 1663
aload 11 /* bigD */
aload 23 /* bigB */
invokevirtual sun.misc.FDBigInteger.rightInplaceSub:(Lsun/misc/FDBigInteger;)Lsun/misc/FDBigInteger;
astore 24 /* diff */
start local 24 // sun.misc.FDBigInteger diff
139: .line 1669
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int int int int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack:
aload 24 /* diff */
iload 9 /* B5 */
iload 20 /* Ulp2 */
invokevirtual sun.misc.FDBigInteger.cmpPow52:(II)I
istore 25 /* cmpResult */
140: .line 1670
iload 25 /* cmpResult */
ifge 142
141: .line 1673
goto 152
142: .line 1674
StackMap locals:
StackMap stack:
iload 25 /* cmpResult */
ifne 148
143: .line 1677
iload 8 /* ieeeBits */
iconst_1
iand
ifeq 152
144: .line 1678
iload 8 /* ieeeBits */
iload 26 /* overvalue */
ifeq 145
iconst_m1
goto 146
StackMap locals:
StackMap stack: int
145: iconst_1
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int int int int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack: int int
146: iadd
istore 8 /* ieeeBits */
147: .line 1680
goto 152
148: .line 1686
StackMap locals:
StackMap stack:
iload 8 /* ieeeBits */
iload 26 /* overvalue */
ifeq 149
iconst_m1
goto 150
StackMap locals:
StackMap stack: int
149: iconst_1
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int int int int int int int int int int int sun.misc.FDBigInteger sun.misc.FDBigInteger int int
StackMap stack: int int
150: iadd
istore 8 /* ieeeBits */
151: .line 1687
iload 8 /* ieeeBits */
ifeq 152
iload 8 /* ieeeBits */
ldc 2139095040
if_icmpne 90
end local 26 // boolean overvalue
end local 25 // int cmpResult
end local 24 // sun.misc.FDBigInteger diff
end local 23 // sun.misc.FDBigInteger bigB
end local 22 // int common2
end local 21 // int hulpbias
end local 20 // int Ulp2
end local 19 // int D2
end local 18 // int B2
end local 17 // int bigIntNBits
end local 16 // int bigIntExp
end local 15 // int lowOrderZeros
end local 14 // int bigBbits
end local 13 // int binexp
152: .line 1694
StackMap locals: sun.misc.FloatingDecimal$ASCIIToBinaryBuffer int int float int double sun.misc.FDBigInteger int int int sun.misc.FDBigInteger int
StackMap stack:
aload 0 /* this */
getfield sun.misc.FloatingDecimal$ASCIIToBinaryBuffer.isNegative:Z
ifeq 154
153: .line 1695
iload 8 /* ieeeBits */
ldc -2147483648
ior
istore 8 /* ieeeBits */
154: .line 1697
StackMap locals:
StackMap stack:
iload 8 /* ieeeBits */
invokestatic java.lang.Float.intBitsToFloat:(I)F
freturn
end local 12 // int prevD2
end local 11 // sun.misc.FDBigInteger bigD
end local 10 // int D5
end local 9 // int B5
end local 8 // int ieeeBits
end local 7 // sun.misc.FDBigInteger bigD0
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$ASCIIToBinaryBuffer this
LocalVariableTable:
Start End Slot Name Signature
0 155 0 this Lsun/misc/FloatingDecimal$ASCIIToBinaryBuffer;
1 155 1 kDigits I
2 155 2 iValue I
3 7 3 i I
8 155 3 fValue F
9 155 4 exp I
21 27 5 slop I
34 46 5 lValue J
35 39 7 i I
40 46 7 dValue D
47 155 5 dValue D
56 61 7 j I
72 77 7 j I
82 155 7 bigD0 Lsun/misc/FDBigInteger;
84 155 8 ieeeBits I
85 155 9 B5 I
86 155 10 D5 I
89 155 11 bigD Lsun/misc/FDBigInteger;
90 155 12 prevD2 I
91 152 13 binexp I
92 152 14 bigBbits I
97 100 15 leadingZeros I
98 100 16 shift I
102 152 15 lowOrderZeros I
104 152 16 bigIntExp I
105 152 17 bigIntNBits I
106 152 18 B2 I
107 152 19 D2 I
112 152 20 Ulp2 I
114 115 21 hulpbias I
116 152 21 hulpbias I
119 152 22 common2 I
123 152 23 bigB Lsun/misc/FDBigInteger;
130 136 24 diff Lsun/misc/FDBigInteger;
139 152 24 diff Lsun/misc/FDBigInteger;
127 152 25 cmpResult I
129 136 26 overvalue Z
138 152 26 overvalue Z
}
SourceFile: "FloatingDecimal.java"
NestHost: sun.misc.FloatingDecimal
InnerClasses:
ASCIIToBinaryBuffer = sun.misc.FloatingDecimal$ASCIIToBinaryBuffer of sun.misc.FloatingDecimal
abstract ASCIIToBinaryConverter = sun.misc.FloatingDecimal$ASCIIToBinaryConverter of sun.misc.FloatingDecimal