public class jdk.internal.math.FDBigInteger
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.math.FDBigInteger
super_class: java.lang.Object
{
static final int[] SMALL_5_POW;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long[] LONG_5_POW;
descriptor: [J
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final int MAX_FIVE_POW;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 340
private static final jdk.internal.math.FDBigInteger[] POW_5_CACHE;
descriptor: [Ljdk/internal/math/FDBigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final jdk.internal.math.FDBigInteger ZERO;
descriptor: Ljdk/internal/math/FDBigInteger;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static java.lang.Object[] archivedCaches;
descriptor: [Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final long LONG_MASK;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967295
private int[] data;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int offset;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int nWords;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean isImmutable;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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=7, locals=7, args_size=0
0: .line 36
ldc Ljdk/internal/math/FDBigInteger;
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 jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
3: .line 87
ldc Ljdk/internal/math/FDBigInteger;
invokestatic jdk.internal.misc.VM.initializeFromArchive:(Ljava/lang/Class;)V
4: .line 88
getstatic jdk.internal.math.FDBigInteger.archivedCaches:[Ljava/lang/Object;
astore 0 /* caches */
start local 0 // java.lang.Object[] caches
5: .line 89
aload 0 /* caches */
ifnonnull 68
6: .line 90
bipush 27
newarray 11
dup
iconst_0
7: .line 91
lconst_1
lastore
dup
iconst_1
8: .line 92
ldc 5
lastore
dup
iconst_2
9: .line 93
ldc 25
lastore
dup
iconst_3
10: .line 94
ldc 125
lastore
dup
iconst_4
11: .line 95
ldc 625
lastore
dup
iconst_5
12: .line 96
ldc 3125
lastore
dup
bipush 6
13: .line 97
ldc 15625
lastore
dup
bipush 7
14: .line 98
ldc 78125
lastore
dup
bipush 8
15: .line 99
ldc 390625
lastore
dup
bipush 9
16: .line 100
ldc 1953125
lastore
dup
bipush 10
17: .line 101
ldc 9765625
lastore
dup
bipush 11
18: .line 102
ldc 48828125
lastore
dup
bipush 12
19: .line 103
ldc 244140625
lastore
dup
bipush 13
20: .line 104
ldc 1220703125
lastore
dup
bipush 14
21: .line 105
ldc 6103515625
lastore
dup
bipush 15
22: .line 106
ldc 30517578125
lastore
dup
bipush 16
23: .line 107
ldc 152587890625
lastore
dup
bipush 17
24: .line 108
ldc 762939453125
lastore
dup
bipush 18
25: .line 109
ldc 3814697265625
lastore
dup
bipush 19
26: .line 110
ldc 19073486328125
lastore
dup
bipush 20
27: .line 111
ldc 95367431640625
lastore
dup
bipush 21
28: .line 112
ldc 476837158203125
lastore
dup
bipush 22
29: .line 113
ldc 2384185791015625
lastore
dup
bipush 23
30: .line 114
ldc 11920928955078125
lastore
dup
bipush 24
31: .line 115
ldc 59604644775390625
lastore
dup
bipush 25
32: .line 116
ldc 298023223876953125
lastore
dup
bipush 26
33: .line 117
ldc 1490116119384765625
lastore
34: .line 90
astore 1 /* long5pow */
start local 1 // long[] long5pow
35: .line 119
bipush 14
newarray 10
dup
iconst_0
36: .line 120
iconst_1
iastore
dup
iconst_1
37: .line 121
iconst_5
iastore
dup
iconst_2
38: .line 122
bipush 25
iastore
dup
iconst_3
39: .line 123
bipush 125
iastore
dup
iconst_4
40: .line 124
sipush 625
iastore
dup
iconst_5
41: .line 125
sipush 3125
iastore
dup
bipush 6
42: .line 126
sipush 15625
iastore
dup
bipush 7
43: .line 127
ldc 78125
iastore
dup
bipush 8
44: .line 128
ldc 390625
iastore
dup
bipush 9
45: .line 129
ldc 1953125
iastore
dup
bipush 10
46: .line 130
ldc 9765625
iastore
dup
bipush 11
47: .line 131
ldc 48828125
iastore
dup
bipush 12
48: .line 132
ldc 244140625
iastore
dup
bipush 13
49: .line 133
ldc 1220703125
iastore
50: .line 119
astore 2 /* small5pow */
start local 2 // int[] small5pow
51: .line 135
sipush 340
anewarray jdk.internal.math.FDBigInteger
astore 3 /* pow5cache */
start local 3 // jdk.internal.math.FDBigInteger[] pow5cache
52: .line 136
iconst_0
istore 4 /* i */
start local 4 // int i
53: .line 137
goto 58
54: .line 138
StackMap locals: java.lang.Object[] long[] int[] jdk.internal.math.FDBigInteger[] int
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
iconst_1
newarray 10
dup
iconst_0
aload 2 /* small5pow */
iload 4 /* i */
iaload
iastore
iconst_0
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 5 /* pow5 */
start local 5 // jdk.internal.math.FDBigInteger pow5
55: .line 139
aload 5 /* pow5 */
invokevirtual jdk.internal.math.FDBigInteger.makeImmutable:()V
56: .line 140
aload 3 /* pow5cache */
iload 4 /* i */
aload 5 /* pow5 */
aastore
57: .line 141
iinc 4 /* i */ 1
end local 5 // jdk.internal.math.FDBigInteger pow5
58: .line 137
StackMap locals:
StackMap stack:
iload 4 /* i */
aload 2 /* small5pow */
arraylength
if_icmplt 54
59: .line 143
aload 3 /* pow5cache */
iload 4 /* i */
iconst_1
isub
aaload
astore 5 /* prev */
start local 5 // jdk.internal.math.FDBigInteger prev
60: .line 144
goto 64
61: .line 145
StackMap locals: jdk.internal.math.FDBigInteger
StackMap stack:
aload 3 /* pow5cache */
iload 4 /* i */
aload 5 /* prev */
iconst_5
invokevirtual jdk.internal.math.FDBigInteger.mult:(I)Ljdk/internal/math/FDBigInteger;
dup
astore 5 /* prev */
aastore
62: .line 146
aload 5 /* prev */
invokevirtual jdk.internal.math.FDBigInteger.makeImmutable:()V
63: .line 147
iinc 4 /* i */ 1
64: .line 144
StackMap locals:
StackMap stack:
iload 4 /* i */
sipush 340
if_icmplt 61
65: .line 149
new jdk.internal.math.FDBigInteger
dup
iconst_0
newarray 10
iconst_0
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 6 /* zero */
start local 6 // jdk.internal.math.FDBigInteger zero
66: .line 150
aload 6 /* zero */
invokevirtual jdk.internal.math.FDBigInteger.makeImmutable:()V
67: .line 151
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 2 /* small5pow */
aastore
dup
iconst_1
aload 1 /* long5pow */
aastore
dup
iconst_2
aload 3 /* pow5cache */
aastore
dup
iconst_3
aload 6 /* zero */
aastore
dup
astore 0 /* caches */
putstatic jdk.internal.math.FDBigInteger.archivedCaches:[Ljava/lang/Object;
end local 6 // jdk.internal.math.FDBigInteger zero
end local 5 // jdk.internal.math.FDBigInteger prev
end local 4 // int i
end local 3 // jdk.internal.math.FDBigInteger[] pow5cache
end local 2 // int[] small5pow
end local 1 // long[] long5pow
68: .line 153
StackMap locals: java.lang.Object[]
StackMap stack:
aload 0 /* caches */
iconst_0
aaload
checkcast int[]
putstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
69: .line 154
aload 0 /* caches */
iconst_1
aaload
checkcast long[]
putstatic jdk.internal.math.FDBigInteger.LONG_5_POW:[J
70: .line 155
aload 0 /* caches */
iconst_2
aaload
checkcast jdk.internal.math.FDBigInteger[]
putstatic jdk.internal.math.FDBigInteger.POW_5_CACHE:[Ljdk/internal/math/FDBigInteger;
71: .line 156
aload 0 /* caches */
iconst_3
aaload
checkcast jdk.internal.math.FDBigInteger
putstatic jdk.internal.math.FDBigInteger.ZERO:Ljdk/internal/math/FDBigInteger;
end local 0 // java.lang.Object[] caches
72: .line 160
return
LocalVariableTable:
Start End Slot Name Signature
5 72 0 caches [Ljava/lang/Object;
35 68 1 long5pow [J
51 68 2 small5pow [I
52 68 3 pow5cache [Ljdk/internal/math/FDBigInteger;
53 68 4 i I
55 58 5 pow5 Ljdk/internal/math/FDBigInteger;
60 68 5 prev Ljdk/internal/math/FDBigInteger;
66 68 6 zero Ljdk/internal/math/FDBigInteger;
private void <init>(int[], int);
descriptor: ([II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int[] data
start local 2 // int offset
0: .line 198
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 170
aload 0 /* this */
iconst_0
putfield jdk.internal.math.FDBigInteger.isImmutable:Z
2: .line 199
aload 0 /* this */
aload 1 /* data */
putfield jdk.internal.math.FDBigInteger.data:[I
3: .line 200
aload 0 /* this */
iload 2 /* offset */
putfield jdk.internal.math.FDBigInteger.offset:I
4: .line 201
aload 0 /* this */
aload 1 /* data */
arraylength
putfield jdk.internal.math.FDBigInteger.nWords:I
5: .line 202
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
6: .line 203
return
end local 2 // int offset
end local 1 // int[] data
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/math/FDBigInteger;
0 7 1 data [I
0 7 2 offset I
MethodParameters:
Name Flags
data
offset
public void <init>(long, char[], int, int);
descriptor: (J[CII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=5
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // long lValue
start local 3 // char[] digits
start local 4 // int kDigits
start local 5 // int nDigits
0: .line 220
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 170
aload 0 /* this */
iconst_0
putfield jdk.internal.math.FDBigInteger.isImmutable:Z
2: .line 221
iload 5 /* nDigits */
bipush 8
iadd
bipush 9
idiv
iconst_2
invokestatic java.lang.Math.max:(II)I
istore 6 /* n */
start local 6 // int n
3: .line 222
aload 0 /* this */
iload 6 /* n */
newarray 10
putfield jdk.internal.math.FDBigInteger.data:[I
4: .line 223
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
lload 1 /* lValue */
l2i
iastore
5: .line 224
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_1
lload 1 /* lValue */
bipush 32
lushr
l2i
iastore
6: .line 225
aload 0 /* this */
iconst_0
putfield jdk.internal.math.FDBigInteger.offset:I
7: .line 226
aload 0 /* this */
iconst_2
putfield jdk.internal.math.FDBigInteger.nWords:I
8: .line 227
iload 4 /* kDigits */
istore 7 /* i */
start local 7 // int i
9: .line 228
iload 5 /* nDigits */
iconst_5
isub
istore 8 /* limit */
start local 8 // int limit
10: .line 230
goto 17
11: .line 231
StackMap locals: jdk.internal.math.FDBigInteger long char[] int int int int int
StackMap stack:
iload 7 /* i */
iconst_5
iadd
istore 10 /* ilim */
start local 10 // int ilim
12: .line 232
aload 3 /* digits */
iload 7 /* i */
iinc 7 /* i */ 1
caload
bipush 48
isub
istore 9 /* v */
start local 9 // int v
13: .line 233
goto 15
14: .line 234
StackMap locals: int int
StackMap stack:
bipush 10
iload 9 /* v */
imul
aload 3 /* digits */
iload 7 /* i */
iinc 7 /* i */ 1
caload
iadd
bipush 48
isub
istore 9 /* v */
15: .line 233
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 10 /* ilim */
if_icmplt 14
16: .line 236
aload 0 /* this */
ldc 100000
iload 9 /* v */
invokevirtual jdk.internal.math.FDBigInteger.multAddMe:(II)V
end local 10 // int ilim
end local 9 // int v
17: .line 230
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 8 /* limit */
if_icmplt 11
18: .line 238
iconst_1
istore 10 /* factor */
start local 10 // int factor
19: .line 239
iconst_0
istore 9 /* v */
start local 9 // int v
20: .line 240
goto 23
21: .line 241
StackMap locals: int int
StackMap stack:
bipush 10
iload 9 /* v */
imul
aload 3 /* digits */
iload 7 /* i */
iinc 7 /* i */ 1
caload
iadd
bipush 48
isub
istore 9 /* v */
22: .line 242
iload 10 /* factor */
bipush 10
imul
istore 10 /* factor */
23: .line 240
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 5 /* nDigits */
if_icmplt 21
24: .line 244
iload 10 /* factor */
iconst_1
if_icmpeq 26
25: .line 245
aload 0 /* this */
iload 10 /* factor */
iload 9 /* v */
invokevirtual jdk.internal.math.FDBigInteger.multAddMe:(II)V
26: .line 247
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
27: .line 248
return
end local 10 // int factor
end local 9 // int v
end local 8 // int limit
end local 7 // int i
end local 6 // int n
end local 5 // int nDigits
end local 4 // int kDigits
end local 3 // char[] digits
end local 1 // long lValue
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/internal/math/FDBigInteger;
0 28 1 lValue J
0 28 3 digits [C
0 28 4 kDigits I
0 28 5 nDigits I
3 28 6 n I
9 28 7 i I
10 28 8 limit I
13 17 9 v I
20 28 9 v I
12 17 10 ilim I
19 28 10 factor I
MethodParameters:
Name Flags
lValue
digits
kDigits
nDigits
public static jdk.internal.math.FDBigInteger valueOfPow52(int, int);
descriptor: (II)Ljdk/internal/math/FDBigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=5, args_size=2
start local 0 // int p5
start local 1 // int p2
0: .line 264
iload 0 /* p5 */
ifeq 15
1: .line 265
iload 1 /* p2 */
ifne 3
2: .line 266
iload 0 /* p5 */
invokestatic jdk.internal.math.FDBigInteger.big5pow:(I)Ljdk/internal/math/FDBigInteger;
areturn
3: .line 267
StackMap locals:
StackMap stack:
iload 0 /* p5 */
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
arraylength
if_icmpge 14
4: .line 268
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
iload 0 /* p5 */
iaload
istore 2 /* pow5 */
start local 2 // int pow5
5: .line 269
iload 1 /* p2 */
iconst_5
ishr
istore 3 /* wordcount */
start local 3 // int wordcount
6: .line 270
iload 1 /* p2 */
bipush 31
iand
istore 4 /* bitcount */
start local 4 // int bitcount
7: .line 271
iload 4 /* bitcount */
ifne 9
8: .line 272
new jdk.internal.math.FDBigInteger
dup
iconst_1
newarray 10
dup
iconst_0
iload 2 /* pow5 */
iastore
iload 3 /* wordcount */
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
9: .line 274
StackMap locals: int int int
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
iconst_2
newarray 10
dup
iconst_0
10: .line 275
iload 2 /* pow5 */
iload 4 /* bitcount */
ishl
iastore
dup
iconst_1
11: .line 276
iload 2 /* pow5 */
bipush 32
iload 4 /* bitcount */
isub
iushr
iastore
12: .line 277
iload 3 /* wordcount */
13: .line 274
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 4 // int bitcount
end local 3 // int wordcount
end local 2 // int pow5
14: .line 280
StackMap locals:
StackMap stack:
iload 0 /* p5 */
invokestatic jdk.internal.math.FDBigInteger.big5pow:(I)Ljdk/internal/math/FDBigInteger;
iload 1 /* p2 */
invokevirtual jdk.internal.math.FDBigInteger.leftShift:(I)Ljdk/internal/math/FDBigInteger;
areturn
15: .line 283
StackMap locals:
StackMap stack:
iload 1 /* p2 */
invokestatic jdk.internal.math.FDBigInteger.valueOfPow2:(I)Ljdk/internal/math/FDBigInteger;
areturn
end local 1 // int p2
end local 0 // int p5
LocalVariableTable:
Start End Slot Name Signature
0 16 0 p5 I
0 16 1 p2 I
5 14 2 pow5 I
6 14 3 wordcount I
7 14 4 bitcount I
MethodParameters:
Name Flags
p5
p2
public static jdk.internal.math.FDBigInteger valueOfMulPow52(long, int, int);
descriptor: (JII)Ljdk/internal/math/FDBigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=13, args_size=3
start local 0 // long value
start local 2 // int p5
start local 3 // int p2
0: .line 302
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 1
iload 2 /* p5 */
ifge 1
new java.lang.AssertionError
dup
iload 2 /* p5 */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
1: .line 303
StackMap locals:
StackMap stack:
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 2
iload 3 /* p2 */
ifge 2
new java.lang.AssertionError
dup
iload 3 /* p2 */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
2: .line 304
StackMap locals:
StackMap stack:
lload 0 /* value */
l2i
istore 4 /* v0 */
start local 4 // int v0
3: .line 305
lload 0 /* value */
bipush 32
lushr
l2i
istore 5 /* v1 */
start local 5 // int v1
4: .line 306
iload 3 /* p2 */
iconst_5
ishr
istore 6 /* wordcount */
start local 6 // int wordcount
5: .line 307
iload 3 /* p2 */
bipush 31
iand
istore 7 /* bitcount */
start local 7 // int bitcount
6: .line 308
iload 2 /* p5 */
ifeq 36
7: .line 309
iload 2 /* p5 */
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
arraylength
if_icmpge 24
8: .line 310
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
iload 2 /* p5 */
iaload
i2l
ldc 4294967295
land
lstore 8 /* pow5 */
start local 8 // long pow5
9: .line 311
iload 4 /* v0 */
i2l
ldc 4294967295
land
lload 8 /* pow5 */
lmul
lstore 10 /* carry */
start local 10 // long carry
10: .line 312
lload 10 /* carry */
l2i
istore 4 /* v0 */
11: .line 313
lload 10 /* carry */
bipush 32
lushr
lstore 10 /* carry */
12: .line 314
iload 5 /* v1 */
i2l
ldc 4294967295
land
lload 8 /* pow5 */
lmul
lload 10 /* carry */
ladd
lstore 10 /* carry */
13: .line 315
lload 10 /* carry */
l2i
istore 5 /* v1 */
14: .line 316
lload 10 /* carry */
bipush 32
lushr
l2i
istore 12 /* v2 */
start local 12 // int v2
15: .line 317
iload 7 /* bitcount */
ifne 17
16: .line 318
new jdk.internal.math.FDBigInteger
dup
iconst_3
newarray 10
dup
iconst_0
iload 4 /* v0 */
iastore
dup
iconst_1
iload 5 /* v1 */
iastore
dup
iconst_2
iload 12 /* v2 */
iastore
iload 6 /* wordcount */
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
17: .line 320
StackMap locals: long int int int int int int long long int
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
iconst_4
newarray 10
dup
iconst_0
18: .line 321
iload 4 /* v0 */
iload 7 /* bitcount */
ishl
iastore
dup
iconst_1
19: .line 322
iload 5 /* v1 */
iload 7 /* bitcount */
ishl
iload 4 /* v0 */
bipush 32
iload 7 /* bitcount */
isub
iushr
ior
iastore
dup
iconst_2
20: .line 323
iload 12 /* v2 */
iload 7 /* bitcount */
ishl
iload 5 /* v1 */
bipush 32
iload 7 /* bitcount */
isub
iushr
ior
iastore
dup
iconst_3
21: .line 324
iload 12 /* v2 */
bipush 32
iload 7 /* bitcount */
isub
iushr
iastore
22: .line 325
iload 6 /* wordcount */
23: .line 320
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 12 // int v2
end local 10 // long carry
end local 8 // long pow5
24: .line 328
StackMap locals:
StackMap stack:
iload 2 /* p5 */
invokestatic jdk.internal.math.FDBigInteger.big5pow:(I)Ljdk/internal/math/FDBigInteger;
astore 8 /* pow5 */
start local 8 // jdk.internal.math.FDBigInteger pow5
25: .line 330
iload 5 /* v1 */
ifne 31
26: .line 331
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
iload 3 /* p2 */
ifeq 27
iconst_1
goto 28
StackMap locals: long int int int int int int jdk.internal.math.FDBigInteger
StackMap stack: int
27: iconst_0
StackMap locals: long int int int int int int jdk.internal.math.FDBigInteger
StackMap stack: int int
28: iadd
newarray 10
astore 9 /* r */
start local 9 // int[] r
29: .line 332
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 4 /* v0 */
aload 9 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([III[I)V
30: .line 333
goto 35
end local 9 // int[] r
31: .line 334
StackMap locals:
StackMap stack:
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_2
iadd
iload 3 /* p2 */
ifeq 32
iconst_1
goto 33
StackMap locals:
StackMap stack: int
32: iconst_0
StackMap locals: long int int int int int int jdk.internal.math.FDBigInteger
StackMap stack: int int
33: iadd
newarray 10
astore 9 /* r */
start local 9 // int[] r
34: .line 335
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 4 /* v0 */
iload 5 /* v1 */
aload 9 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([IIII[I)V
35: .line 337
StackMap locals: int[]
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
aload 9 /* r */
aload 8 /* pow5 */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
iload 3 /* p2 */
invokevirtual jdk.internal.math.FDBigInteger.leftShift:(I)Ljdk/internal/math/FDBigInteger;
areturn
end local 9 // int[] r
end local 8 // jdk.internal.math.FDBigInteger pow5
36: .line 339
StackMap locals:
StackMap stack:
iload 3 /* p2 */
ifeq 45
37: .line 340
iload 7 /* bitcount */
ifne 39
38: .line 341
new jdk.internal.math.FDBigInteger
dup
iconst_2
newarray 10
dup
iconst_0
iload 4 /* v0 */
iastore
dup
iconst_1
iload 5 /* v1 */
iastore
iload 6 /* wordcount */
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
39: .line 343
StackMap locals:
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
iconst_3
newarray 10
dup
iconst_0
40: .line 344
iload 4 /* v0 */
iload 7 /* bitcount */
ishl
iastore
dup
iconst_1
41: .line 345
iload 5 /* v1 */
iload 7 /* bitcount */
ishl
iload 4 /* v0 */
bipush 32
iload 7 /* bitcount */
isub
iushr
ior
iastore
dup
iconst_2
42: .line 346
iload 5 /* v1 */
bipush 32
iload 7 /* bitcount */
isub
iushr
iastore
43: .line 347
iload 6 /* wordcount */
44: .line 343
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
45: .line 350
StackMap locals:
StackMap stack:
new jdk.internal.math.FDBigInteger
dup
iconst_2
newarray 10
dup
iconst_0
iload 4 /* v0 */
iastore
dup
iconst_1
iload 5 /* v1 */
iastore
iconst_0
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 7 // int bitcount
end local 6 // int wordcount
end local 5 // int v1
end local 4 // int v0
end local 3 // int p2
end local 2 // int p5
end local 0 // long value
LocalVariableTable:
Start End Slot Name Signature
0 46 0 value J
0 46 2 p5 I
0 46 3 p2 I
3 46 4 v0 I
4 46 5 v1 I
5 46 6 wordcount I
6 46 7 bitcount I
9 24 8 pow5 J
10 24 10 carry J
15 24 12 v2 I
25 36 8 pow5 Ljdk/internal/math/FDBigInteger;
29 31 9 r [I
34 36 9 r [I
MethodParameters:
Name Flags
value
p5
p2
private static jdk.internal.math.FDBigInteger valueOfPow2(int);
descriptor: (I)Ljdk/internal/math/FDBigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=1
start local 0 // int p2
0: .line 366
iload 0 /* p2 */
iconst_5
ishr
istore 1 /* wordcount */
start local 1 // int wordcount
1: .line 367
iload 0 /* p2 */
bipush 31
iand
istore 2 /* bitcount */
start local 2 // int bitcount
2: .line 368
new jdk.internal.math.FDBigInteger
dup
iconst_1
newarray 10
dup
iconst_0
iconst_1
iload 2 /* bitcount */
ishl
iastore
iload 1 /* wordcount */
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 2 // int bitcount
end local 1 // int wordcount
end local 0 // int p2
LocalVariableTable:
Start End Slot Name Signature
0 3 0 p2 I
1 3 1 wordcount I
2 3 2 bitcount I
MethodParameters:
Name Flags
p2
private void trimLeadingZeros();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 383
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 1 /* i */
start local 1 // int i
1: .line 384
iload 1 /* i */
ifle 8
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iinc 1 /* i */ -1
iload 1 /* i */
iaload
ifne 8
2: .line 386
goto 4
3: .line 387
StackMap locals: int
StackMap stack:
iinc 1 /* i */ -1
4: .line 386
StackMap locals:
StackMap stack:
iload 1 /* i */
ifle 5
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 1 /* i */
iconst_1
isub
iaload
ifeq 3
5: .line 389
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* i */
putfield jdk.internal.math.FDBigInteger.nWords:I
6: .line 390
iload 1 /* i */
ifne 8
7: .line 391
aload 0 /* this */
iconst_0
putfield jdk.internal.math.FDBigInteger.offset:I
8: .line 394
StackMap locals:
StackMap stack:
return
end local 1 // int i
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/math/FDBigInteger;
1 9 1 i I
public int getNormalizationBias();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 409
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 410
new java.lang.IllegalArgumentException
dup
ldc "Zero value cannot be normalized"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 412
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
istore 1 /* zeros */
start local 1 // int zeros
3: .line 413
iload 1 /* zeros */
iconst_4
if_icmpge 4
bipush 28
iload 1 /* zeros */
iadd
goto 5
StackMap locals: int
StackMap stack:
4: iload 1 /* zeros */
iconst_4
isub
StackMap locals:
StackMap stack: int
5: ireturn
end local 1 // int zeros
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/math/FDBigInteger;
3 6 1 zeros I
private static void leftShift(int[], int, int[], int, int, int);
descriptor: ([II[IIII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=6
start local 0 // int[] src
start local 1 // int idx
start local 2 // int[] result
start local 3 // int bitcount
start local 4 // int anticount
start local 5 // int prev
0: .line 434
goto 6
1: .line 435
StackMap locals:
StackMap stack:
iload 5 /* prev */
iload 3 /* bitcount */
ishl
istore 6 /* v */
start local 6 // int v
2: .line 436
aload 0 /* src */
iload 1 /* idx */
iconst_1
isub
iaload
istore 5 /* prev */
3: .line 437
iload 6 /* v */
iload 5 /* prev */
iload 4 /* anticount */
iushr
ior
istore 6 /* v */
4: .line 438
aload 2 /* result */
iload 1 /* idx */
iload 6 /* v */
iastore
end local 6 // int v
5: .line 434
iinc 1 /* idx */ -1
StackMap locals:
StackMap stack:
6: iload 1 /* idx */
ifgt 1
7: .line 440
iload 5 /* prev */
iload 3 /* bitcount */
ishl
istore 6 /* v */
start local 6 // int v
8: .line 441
aload 2 /* result */
iconst_0
iload 6 /* v */
iastore
9: .line 442
return
end local 6 // int v
end local 5 // int prev
end local 4 // int anticount
end local 3 // int bitcount
end local 2 // int[] result
end local 1 // int idx
end local 0 // int[] src
LocalVariableTable:
Start End Slot Name Signature
0 10 0 src [I
0 10 1 idx I
0 10 2 result [I
0 10 3 bitcount I
0 10 4 anticount I
0 10 5 prev I
2 5 6 v I
8 10 6 v I
MethodParameters:
Name Flags
src
idx
result
bitcount
anticount
prev
public jdk.internal.math.FDBigInteger leftShift(int);
descriptor: (I)Ljdk/internal/math/FDBigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int shift
0: .line 471
iload 1 /* shift */
ifeq 1
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 472
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
2: .line 474
StackMap locals:
StackMap stack:
iload 1 /* shift */
iconst_5
ishr
istore 2 /* wordcount */
start local 2 // int wordcount
3: .line 475
iload 1 /* shift */
bipush 31
iand
istore 3 /* bitcount */
start local 3 // int bitcount
4: .line 476
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.isImmutable:Z
ifeq 18
5: .line 477
iload 3 /* bitcount */
ifne 7
6: .line 478
new jdk.internal.math.FDBigInteger
dup
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
invokestatic java.util.Arrays.copyOf:([II)[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iload 2 /* wordcount */
iadd
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
7: .line 480
StackMap locals: int int
StackMap stack:
bipush 32
iload 3 /* bitcount */
isub
istore 4 /* anticount */
start local 4 // int anticount
8: .line 481
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
istore 5 /* idx */
start local 5 // int idx
9: .line 482
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iaload
istore 6 /* prev */
start local 6 // int prev
10: .line 483
iload 6 /* prev */
iload 4 /* anticount */
iushr
istore 7 /* hi */
start local 7 // int hi
11: .line 485
iload 7 /* hi */
ifeq 15
12: .line 486
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
newarray 10
astore 8 /* result */
start local 8 // int[] result
13: .line 487
aload 8 /* result */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 7 /* hi */
iastore
14: .line 488
goto 16
end local 8 // int[] result
15: .line 489
StackMap locals: jdk.internal.math.FDBigInteger int int int int int int int
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
newarray 10
astore 8 /* result */
start local 8 // int[] result
16: .line 491
StackMap locals: int[]
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
aload 8 /* result */
iload 3 /* bitcount */
iload 4 /* anticount */
iload 6 /* prev */
invokestatic jdk.internal.math.FDBigInteger.leftShift:([II[IIII)V
17: .line 492
new jdk.internal.math.FDBigInteger
dup
aload 8 /* result */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iload 2 /* wordcount */
iadd
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 8 // int[] result
end local 7 // int hi
end local 6 // int prev
end local 5 // int idx
end local 4 // int anticount
18: .line 495
StackMap locals: jdk.internal.math.FDBigInteger int int int
StackMap stack:
iload 3 /* bitcount */
ifeq 46
19: .line 496
bipush 32
iload 3 /* bitcount */
isub
istore 4 /* anticount */
start local 4 // int anticount
20: .line 497
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
iaload
iload 3 /* bitcount */
ishl
ifne 36
21: .line 498
iconst_0
istore 5 /* idx */
start local 5 // int idx
22: .line 499
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iaload
istore 6 /* prev */
start local 6 // int prev
23: .line 500
goto 29
24: .line 501
StackMap locals: int int int
StackMap stack:
iload 6 /* prev */
iload 4 /* anticount */
iushr
istore 7 /* v */
start local 7 // int v
25: .line 502
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iconst_1
iadd
iaload
istore 6 /* prev */
26: .line 503
iload 7 /* v */
iload 6 /* prev */
iload 3 /* bitcount */
ishl
ior
istore 7 /* v */
27: .line 504
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iload 7 /* v */
iastore
end local 7 // int v
28: .line 500
iinc 5 /* idx */ 1
StackMap locals:
StackMap stack:
29: iload 5 /* idx */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
if_icmplt 24
30: .line 506
iload 6 /* prev */
iload 4 /* anticount */
iushr
istore 7 /* v */
start local 7 // int v
31: .line 507
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iload 7 /* v */
iastore
32: .line 508
iload 7 /* v */
ifne 34
33: .line 509
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
putfield jdk.internal.math.FDBigInteger.nWords:I
34: .line 511
StackMap locals: int
StackMap stack:
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.offset:I
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.offset:I
end local 7 // int v
end local 6 // int prev
end local 5 // int idx
35: .line 512
goto 46
36: .line 513
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
istore 5 /* idx */
start local 5 // int idx
37: .line 514
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* idx */
iaload
istore 6 /* prev */
start local 6 // int prev
38: .line 515
iload 6 /* prev */
iload 4 /* anticount */
iushr
istore 7 /* hi */
start local 7 // int hi
39: .line 516
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 8 /* result */
start local 8 // int[] result
40: .line 517
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 9 /* src */
start local 9 // int[] src
41: .line 518
iload 7 /* hi */
ifeq 45
42: .line 519
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
arraylength
if_icmpne 44
43: .line 520
aload 0 /* this */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
newarray 10
dup
astore 8 /* result */
putfield jdk.internal.math.FDBigInteger.data:[I
44: .line 522
StackMap locals: jdk.internal.math.FDBigInteger int int int int int int int int[] int[]
StackMap stack:
aload 8 /* result */
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
dup_x1
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.nWords:I
iload 7 /* hi */
iastore
45: .line 524
StackMap locals:
StackMap stack:
aload 9 /* src */
iload 5 /* idx */
aload 8 /* result */
iload 3 /* bitcount */
iload 4 /* anticount */
iload 6 /* prev */
invokestatic jdk.internal.math.FDBigInteger.leftShift:([II[IIII)V
end local 9 // int[] src
end local 8 // int[] result
end local 7 // int hi
end local 6 // int prev
end local 5 // int idx
end local 4 // int anticount
46: .line 527
StackMap locals: jdk.internal.math.FDBigInteger int int int
StackMap stack:
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.offset:I
iload 2 /* wordcount */
iadd
putfield jdk.internal.math.FDBigInteger.offset:I
47: .line 528
aload 0 /* this */
areturn
end local 3 // int bitcount
end local 2 // int wordcount
end local 1 // int shift
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Ljdk/internal/math/FDBigInteger;
0 48 1 shift I
3 48 2 wordcount I
4 48 3 bitcount I
8 18 4 anticount I
9 18 5 idx I
10 18 6 prev I
11 18 7 hi I
13 15 8 result [I
16 18 8 result [I
20 46 4 anticount I
22 35 5 idx I
23 35 6 prev I
25 28 7 v I
31 35 7 v I
37 46 5 idx I
38 46 6 prev I
39 46 7 hi I
40 46 8 result [I
41 46 9 src [I
MethodParameters:
Name Flags
shift
private int size();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 547
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
ireturn
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/math/FDBigInteger;
public int quoRemIteration(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=15, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger S
0: .line 577
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.isImmutable:Z
ifeq 1
new java.lang.AssertionError
dup
ldc "cannot modify immutable value"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 581
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 2 /* thSize */
start local 2 // int thSize
2: .line 582
aload 1 /* S */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 3 /* sSize */
start local 3 // int sSize
3: .line 583
iload 2 /* thSize */
iload 3 /* sSize */
if_icmpge 10
4: .line 586
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
invokestatic jdk.internal.math.FDBigInteger.multAndCarryBy10:([II[I)I
istore 4 /* p */
start local 4 // int p
5: .line 587
iload 4 /* p */
ifeq 8
6: .line 588
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
dup_x1
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.nWords:I
iload 4 /* p */
iastore
7: .line 589
goto 9
8: .line 590
StackMap locals: int int int
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
9: .line 592
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 // int p
10: .line 593
StackMap locals:
StackMap stack:
iload 2 /* thSize */
iload 3 /* sSize */
if_icmple 12
11: .line 594
new java.lang.IllegalArgumentException
dup
ldc "disparate values"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: .line 599
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
aload 1 /* S */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 1 /* S */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
ldiv
lstore 4 /* q */
start local 4 // long q
13: .line 600
aload 0 /* this */
lload 4 /* q */
aload 1 /* S */
invokevirtual jdk.internal.math.FDBigInteger.multDiffMe:(JLjdk/internal/math/FDBigInteger;)J
lstore 6 /* diff */
start local 6 // long diff
14: .line 601
lload 6 /* diff */
lconst_0
lcmp
ifeq 31
15: .line 609
lconst_0
lstore 8 /* sum */
start local 8 // long sum
16: .line 610
aload 1 /* S */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
istore 10 /* tStart */
start local 10 // int tStart
17: .line 612
aload 1 /* S */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 11 /* sd */
start local 11 // int[] sd
18: .line 613
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 12 /* td */
start local 12 // int[] td
19: .line 614
goto 30
20: .line 615
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int long long long int int[] int[]
StackMap stack:
iconst_0
istore 13 /* sIndex */
start local 13 // int sIndex
21: iload 10 /* tStart */
istore 14 /* tIndex */
start local 14 // int tIndex
22: goto 27
23: .line 616
StackMap locals: int int
StackMap stack:
lload 8 /* sum */
aload 12 /* td */
iload 14 /* tIndex */
iaload
i2l
ldc 4294967295
land
aload 11 /* sd */
iload 13 /* sIndex */
iaload
i2l
ldc 4294967295
land
ladd
ladd
lstore 8 /* sum */
24: .line 617
aload 12 /* td */
iload 14 /* tIndex */
lload 8 /* sum */
l2i
iastore
25: .line 618
lload 8 /* sum */
bipush 32
lushr
lstore 8 /* sum */
26: .line 615
iinc 13 /* sIndex */ 1
iinc 14 /* tIndex */ 1
StackMap locals:
StackMap stack:
27: iload 14 /* tIndex */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 23
end local 14 // int tIndex
end local 13 // int sIndex
28: .line 628
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 29
lload 8 /* sum */
lconst_0
lcmp
ifeq 29
lload 8 /* sum */
lconst_1
lcmp
ifeq 29
new java.lang.AssertionError
dup
lload 8 /* sum */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
29: .line 629
StackMap locals:
StackMap stack:
lload 4 /* q */
lconst_1
lsub
lstore 4 /* q */
30: .line 614
StackMap locals:
StackMap stack:
lload 8 /* sum */
lconst_0
lcmp
ifeq 20
end local 12 // int[] td
end local 11 // int[] sd
end local 10 // int tStart
end local 8 // long sum
31: .line 635
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int long long
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
invokestatic jdk.internal.math.FDBigInteger.multAndCarryBy10:([II[I)I
istore 8 /* p */
start local 8 // int p
32: .line 636
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 33
iload 8 /* p */
ifeq 33
new java.lang.AssertionError
dup
iload 8 /* p */
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
33: .line 637
StackMap locals: int
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
34: .line 638
lload 4 /* q */
l2i
ireturn
end local 8 // int p
end local 6 // long diff
end local 4 // long q
end local 3 // int sSize
end local 2 // int thSize
end local 1 // jdk.internal.math.FDBigInteger S
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljdk/internal/math/FDBigInteger;
0 35 1 S Ljdk/internal/math/FDBigInteger;
2 35 2 thSize I
3 35 3 sSize I
5 10 4 p I
13 35 4 q J
14 35 6 diff J
16 31 8 sum J
17 31 10 tStart I
18 31 11 sd [I
19 31 12 td [I
21 28 13 sIndex I
22 28 14 tIndex I
32 35 8 p I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
S
public jdk.internal.math.FDBigInteger multBy10();
descriptor: ()Ljdk/internal/math/FDBigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 667
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 668
aload 0 /* this */
areturn
2: .line 670
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.isImmutable:Z
ifeq 6
3: .line 671
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
newarray 10
astore 1 /* res */
start local 1 // int[] res
4: .line 672
aload 1 /* res */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 1 /* res */
invokestatic jdk.internal.math.FDBigInteger.multAndCarryBy10:([II[I)I
iastore
5: .line 673
new jdk.internal.math.FDBigInteger
dup
aload 1 /* res */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 1 // int[] res
6: .line 675
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
invokestatic jdk.internal.math.FDBigInteger.multAndCarryBy10:([II[I)I
istore 1 /* p */
start local 1 // int p
7: .line 676
iload 1 /* p */
ifeq 16
8: .line 677
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
arraylength
if_icmpne 14
9: .line 678
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
iaload
ifne 13
10: .line 679
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_1
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
dup_x1
putfield jdk.internal.math.FDBigInteger.nWords:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
11: .line 680
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.offset:I
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.offset:I
12: .line 681
goto 14
13: .line 682
StackMap locals: int
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
arraylength
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([II)[I
putfield jdk.internal.math.FDBigInteger.data:[I
14: .line 685
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
dup_x1
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.nWords:I
iload 1 /* p */
iastore
15: .line 686
goto 17
16: .line 687
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
17: .line 689
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 1 // int p
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/internal/math/FDBigInteger;
4 6 1 res [I
7 18 1 p I
public jdk.internal.math.FDBigInteger multByPow52(int, int);
descriptor: (II)Ljdk/internal/math/FDBigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int p5
start local 2 // int p2
0: .line 722
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 723
aload 0 /* this */
areturn
2: .line 725
StackMap locals:
StackMap stack:
aload 0 /* this */
astore 3 /* res */
start local 3 // jdk.internal.math.FDBigInteger res
3: .line 726
iload 1 /* p5 */
ifeq 16
4: .line 728
iload 2 /* p2 */
ifeq 5
iconst_1
goto 6
StackMap locals: jdk.internal.math.FDBigInteger
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5 /* extraSize */
start local 5 // int extraSize
7: .line 729
iload 1 /* p5 */
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
arraylength
if_icmpge 12
8: .line 730
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
iload 5 /* extraSize */
iadd
newarray 10
astore 4 /* r */
start local 4 // int[] r
9: .line 731
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
iload 1 /* p5 */
iaload
aload 4 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([III[I)V
10: .line 732
new jdk.internal.math.FDBigInteger
dup
aload 4 /* r */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 3 /* res */
11: .line 733
goto 16
end local 4 // int[] r
12: .line 734
StackMap locals: jdk.internal.math.FDBigInteger int int jdk.internal.math.FDBigInteger top int
StackMap stack:
iload 1 /* p5 */
invokestatic jdk.internal.math.FDBigInteger.big5pow:(I)Ljdk/internal/math/FDBigInteger;
astore 6 /* pow5 */
start local 6 // jdk.internal.math.FDBigInteger pow5
13: .line 735
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 6 /* pow5 */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
iadd
iload 5 /* extraSize */
iadd
newarray 10
astore 4 /* r */
start local 4 // int[] r
14: .line 736
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 6 /* pow5 */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 6 /* pow5 */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 4 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([II[II[I)V
15: .line 737
new jdk.internal.math.FDBigInteger
dup
aload 4 /* r */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 6 /* pow5 */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 3 /* res */
end local 6 // jdk.internal.math.FDBigInteger pow5
end local 5 // int extraSize
end local 4 // int[] r
16: .line 740
StackMap locals: jdk.internal.math.FDBigInteger int int jdk.internal.math.FDBigInteger
StackMap stack:
aload 3 /* res */
iload 2 /* p2 */
invokevirtual jdk.internal.math.FDBigInteger.leftShift:(I)Ljdk/internal/math/FDBigInteger;
areturn
end local 3 // jdk.internal.math.FDBigInteger res
end local 2 // int p2
end local 1 // int p5
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/math/FDBigInteger;
0 17 1 p5 I
0 17 2 p2 I
3 17 3 res Ljdk/internal/math/FDBigInteger;
9 12 4 r [I
14 16 4 r [I
7 16 5 extraSize I
13 16 6 pow5 Ljdk/internal/math/FDBigInteger;
MethodParameters:
Name Flags
p5
p2
private static void mult(int[], int, int[], int, int[]);
descriptor: ([II[II[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=11, args_size=5
start local 0 // int[] s1
start local 1 // int s1Len
start local 2 // int[] s2
start local 3 // int s2Len
start local 4 // int[] dst
0: .line 759
iconst_0
istore 5 /* i */
start local 5 // int i
1: goto 13
2: .line 760
StackMap locals: int
StackMap stack:
aload 0 /* s1 */
iload 5 /* i */
iaload
i2l
ldc 4294967295
land
lstore 6 /* v */
start local 6 // long v
3: .line 761
lconst_0
lstore 8 /* p */
start local 8 // long p
4: .line 762
iconst_0
istore 10 /* j */
start local 10 // int j
5: goto 10
6: .line 763
StackMap locals: long long int
StackMap stack:
lload 8 /* p */
aload 4 /* dst */
iload 5 /* i */
iload 10 /* j */
iadd
iaload
i2l
ldc 4294967295
land
lload 6 /* v */
aload 2 /* s2 */
iload 10 /* j */
iaload
i2l
ldc 4294967295
land
lmul
ladd
ladd
lstore 8 /* p */
7: .line 764
aload 4 /* dst */
iload 5 /* i */
iload 10 /* j */
iadd
lload 8 /* p */
l2i
iastore
8: .line 765
lload 8 /* p */
bipush 32
lushr
lstore 8 /* p */
9: .line 762
iinc 10 /* j */ 1
StackMap locals:
StackMap stack:
10: iload 10 /* j */
iload 3 /* s2Len */
if_icmplt 6
end local 10 // int j
11: .line 767
aload 4 /* dst */
iload 5 /* i */
iload 3 /* s2Len */
iadd
lload 8 /* p */
l2i
iastore
end local 8 // long p
end local 6 // long v
12: .line 759
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 5 /* i */
iload 1 /* s1Len */
if_icmplt 2
end local 5 // int i
14: .line 769
return
end local 4 // int[] dst
end local 3 // int s2Len
end local 2 // int[] s2
end local 1 // int s1Len
end local 0 // int[] s1
LocalVariableTable:
Start End Slot Name Signature
0 15 0 s1 [I
0 15 1 s1Len I
0 15 2 s2 [I
0 15 3 s2Len I
0 15 4 dst [I
1 14 5 i I
3 12 6 v J
4 12 8 p J
5 11 10 j I
MethodParameters:
Name Flags
s1
s1Len
s2
s2Len
dst
public jdk.internal.math.FDBigInteger leftInplaceSub(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger subtrahend
0: .line 795
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
aload 1 /* subtrahend */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
if_icmpge 1
new java.lang.AssertionError
dup
ldc "result should be positive"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 797
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.isImmutable:Z
ifeq 4
2: .line 798
new jdk.internal.math.FDBigInteger
dup
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 2 /* minuend */
start local 2 // jdk.internal.math.FDBigInteger minuend
3: .line 799
goto 5
end local 2 // jdk.internal.math.FDBigInteger minuend
4: .line 800
StackMap locals:
StackMap stack:
aload 0 /* this */
astore 2 /* minuend */
start local 2 // jdk.internal.math.FDBigInteger minuend
5: .line 802
StackMap locals: jdk.internal.math.FDBigInteger
StackMap stack:
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
istore 3 /* offsetDiff */
start local 3 // int offsetDiff
6: .line 803
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 4 /* sData */
start local 4 // int[] sData
7: .line 804
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 5 /* mData */
start local 5 // int[] mData
8: .line 805
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 6 /* subLen */
start local 6 // int subLen
9: .line 806
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 7 /* minLen */
start local 7 // int minLen
10: .line 807
iload 3 /* offsetDiff */
ifge 22
11: .line 809
iload 7 /* minLen */
iload 3 /* offsetDiff */
isub
istore 8 /* rLen */
start local 8 // int rLen
12: .line 810
iload 8 /* rLen */
aload 5 /* mData */
arraylength
if_icmpge 16
13: .line 811
aload 5 /* mData */
iconst_0
aload 5 /* mData */
iload 3 /* offsetDiff */
ineg
iload 7 /* minLen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: .line 812
aload 5 /* mData */
iconst_0
iload 3 /* offsetDiff */
ineg
iconst_0
invokestatic java.util.Arrays.fill:([IIII)V
15: .line 813
goto 19
16: .line 814
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int[] int[] int int int
StackMap stack:
iload 8 /* rLen */
newarray 10
astore 9 /* r */
start local 9 // int[] r
17: .line 815
aload 5 /* mData */
iconst_0
aload 9 /* r */
iload 3 /* offsetDiff */
ineg
iload 7 /* minLen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: .line 816
aload 2 /* minuend */
aload 9 /* r */
dup
astore 5 /* mData */
putfield jdk.internal.math.FDBigInteger.data:[I
end local 9 // int[] r
19: .line 818
StackMap locals:
StackMap stack:
aload 2 /* minuend */
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.offset:I
putfield jdk.internal.math.FDBigInteger.offset:I
20: .line 819
aload 2 /* minuend */
iload 8 /* rLen */
dup
istore 7 /* minLen */
putfield jdk.internal.math.FDBigInteger.nWords:I
21: .line 820
iconst_0
istore 3 /* offsetDiff */
end local 8 // int rLen
22: .line 822
StackMap locals:
StackMap stack:
lconst_0
lstore 8 /* borrow */
start local 8 // long borrow
23: .line 823
iload 3 /* offsetDiff */
istore 10 /* mIndex */
start local 10 // int mIndex
24: .line 824
iconst_0
istore 11 /* sIndex */
start local 11 // int sIndex
25: goto 30
26: .line 825
StackMap locals: long int int
StackMap stack:
aload 5 /* mData */
iload 10 /* mIndex */
iaload
i2l
ldc 4294967295
land
aload 4 /* sData */
iload 11 /* sIndex */
iaload
i2l
ldc 4294967295
land
lsub
lload 8 /* borrow */
ladd
lstore 12 /* diff */
start local 12 // long diff
27: .line 826
aload 5 /* mData */
iload 10 /* mIndex */
lload 12 /* diff */
l2i
iastore
28: .line 827
lload 12 /* diff */
bipush 32
lshr
lstore 8 /* borrow */
end local 12 // long diff
29: .line 824
iinc 11 /* sIndex */ 1
iinc 10 /* mIndex */ 1
StackMap locals:
StackMap stack:
30: iload 11 /* sIndex */
iload 6 /* subLen */
if_icmpge 36
iload 10 /* mIndex */
iload 7 /* minLen */
if_icmplt 26
end local 11 // int sIndex
31: .line 829
goto 36
32: .line 830
StackMap locals:
StackMap stack:
aload 5 /* mData */
iload 10 /* mIndex */
iaload
i2l
ldc 4294967295
land
lload 8 /* borrow */
ladd
lstore 11 /* diff */
start local 11 // long diff
33: .line 831
aload 5 /* mData */
iload 10 /* mIndex */
lload 11 /* diff */
l2i
iastore
34: .line 832
lload 11 /* diff */
bipush 32
lshr
lstore 8 /* borrow */
end local 11 // long diff
35: .line 829
iinc 10 /* mIndex */ 1
StackMap locals:
StackMap stack:
36: lload 8 /* borrow */
lconst_0
lcmp
ifeq 37
iload 10 /* mIndex */
iload 7 /* minLen */
if_icmplt 32
37: .line 834
StackMap locals:
StackMap stack:
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 38
lload 8 /* borrow */
lconst_0
lcmp
ifeq 38
new java.lang.AssertionError
dup
lload 8 /* borrow */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
38: .line 836
StackMap locals:
StackMap stack:
aload 2 /* minuend */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
39: .line 837
aload 2 /* minuend */
areturn
end local 10 // int mIndex
end local 8 // long borrow
end local 7 // int minLen
end local 6 // int subLen
end local 5 // int[] mData
end local 4 // int[] sData
end local 3 // int offsetDiff
end local 2 // jdk.internal.math.FDBigInteger minuend
end local 1 // jdk.internal.math.FDBigInteger subtrahend
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Ljdk/internal/math/FDBigInteger;
0 40 1 subtrahend Ljdk/internal/math/FDBigInteger;
3 4 2 minuend Ljdk/internal/math/FDBigInteger;
5 40 2 minuend Ljdk/internal/math/FDBigInteger;
6 40 3 offsetDiff I
7 40 4 sData [I
8 40 5 mData [I
9 40 6 subLen I
10 40 7 minLen I
12 22 8 rLen I
17 19 9 r [I
23 40 8 borrow J
24 40 10 mIndex I
25 31 11 sIndex I
27 29 12 diff J
33 35 11 diff J
MethodParameters:
Name Flags
subtrahend
public jdk.internal.math.FDBigInteger rightInplaceSub(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger subtrahend
0: .line 864
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
aload 1 /* subtrahend */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
if_icmpge 1
new java.lang.AssertionError
dup
ldc "result should be positive"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 865
StackMap locals:
StackMap stack:
aload 0 /* this */
astore 2 /* minuend */
start local 2 // jdk.internal.math.FDBigInteger minuend
2: .line 866
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.isImmutable:Z
ifeq 4
3: .line 867
new jdk.internal.math.FDBigInteger
dup
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.data:[I
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
astore 1 /* subtrahend */
4: .line 869
StackMap locals: jdk.internal.math.FDBigInteger
StackMap stack:
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
istore 3 /* offsetDiff */
start local 3 // int offsetDiff
5: .line 870
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 4 /* sData */
start local 4 // int[] sData
6: .line 871
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 5 /* mData */
start local 5 // int[] mData
7: .line 872
aload 1 /* subtrahend */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 6 /* subLen */
start local 6 // int subLen
8: .line 873
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 7 /* minLen */
start local 7 // int minLen
9: .line 874
iload 3 /* offsetDiff */
ifge 22
10: .line 875
iload 7 /* minLen */
istore 8 /* rLen */
start local 8 // int rLen
11: .line 876
iload 8 /* rLen */
aload 4 /* sData */
arraylength
if_icmpge 15
12: .line 877
aload 4 /* sData */
iconst_0
aload 4 /* sData */
iload 3 /* offsetDiff */
ineg
iload 6 /* subLen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: .line 878
aload 4 /* sData */
iconst_0
iload 3 /* offsetDiff */
ineg
iconst_0
invokestatic java.util.Arrays.fill:([IIII)V
14: .line 879
goto 18
15: .line 880
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int[] int[] int int int
StackMap stack:
iload 8 /* rLen */
newarray 10
astore 9 /* r */
start local 9 // int[] r
16: .line 881
aload 4 /* sData */
iconst_0
aload 9 /* r */
iload 3 /* offsetDiff */
ineg
iload 6 /* subLen */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: .line 882
aload 1 /* subtrahend */
aload 9 /* r */
dup
astore 4 /* sData */
putfield jdk.internal.math.FDBigInteger.data:[I
end local 9 // int[] r
18: .line 884
StackMap locals:
StackMap stack:
aload 1 /* subtrahend */
aload 2 /* minuend */
getfield jdk.internal.math.FDBigInteger.offset:I
putfield jdk.internal.math.FDBigInteger.offset:I
19: .line 885
iload 6 /* subLen */
iload 3 /* offsetDiff */
isub
istore 6 /* subLen */
20: .line 886
iconst_0
istore 3 /* offsetDiff */
end local 8 // int rLen
21: .line 887
goto 25
22: .line 888
StackMap locals:
StackMap stack:
iload 7 /* minLen */
iload 3 /* offsetDiff */
iadd
istore 8 /* rLen */
start local 8 // int rLen
23: .line 889
iload 8 /* rLen */
aload 4 /* sData */
arraylength
if_icmplt 25
24: .line 890
aload 1 /* subtrahend */
aload 4 /* sData */
iload 8 /* rLen */
invokestatic java.util.Arrays.copyOf:([II)[I
dup
astore 4 /* sData */
putfield jdk.internal.math.FDBigInteger.data:[I
end local 8 // int rLen
25: .line 901
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* sIndex */
start local 8 // int sIndex
26: .line 902
lconst_0
lstore 9 /* borrow */
start local 9 // long borrow
27: .line 903
goto 32
28: .line 904
StackMap locals: int long
StackMap stack:
lconst_0
aload 4 /* sData */
iload 8 /* sIndex */
iaload
i2l
ldc 4294967295
land
lsub
lload 9 /* borrow */
ladd
lstore 11 /* diff */
start local 11 // long diff
29: .line 905
aload 4 /* sData */
iload 8 /* sIndex */
lload 11 /* diff */
l2i
iastore
30: .line 906
lload 11 /* diff */
bipush 32
lshr
lstore 9 /* borrow */
end local 11 // long diff
31: .line 903
iinc 8 /* sIndex */ 1
StackMap locals:
StackMap stack:
32: iload 8 /* sIndex */
iload 3 /* offsetDiff */
if_icmplt 28
33: .line 909
iconst_0
istore 11 /* mIndex */
start local 11 // int mIndex
34: goto 39
35: .line 911
StackMap locals: int
StackMap stack:
aload 5 /* mData */
iload 11 /* mIndex */
iaload
i2l
ldc 4294967295
land
aload 4 /* sData */
iload 8 /* sIndex */
iaload
i2l
ldc 4294967295
land
lsub
lload 9 /* borrow */
ladd
lstore 12 /* diff */
start local 12 // long diff
36: .line 912
aload 4 /* sData */
iload 8 /* sIndex */
lload 12 /* diff */
l2i
iastore
37: .line 913
lload 12 /* diff */
bipush 32
lshr
lstore 9 /* borrow */
end local 12 // long diff
38: .line 909
iinc 8 /* sIndex */ 1
iinc 11 /* mIndex */ 1
StackMap locals:
StackMap stack:
39: iload 11 /* mIndex */
iload 7 /* minLen */
if_icmplt 35
end local 11 // int mIndex
40: .line 915
getstatic jdk.internal.math.FDBigInteger.$assertionsDisabled:Z
ifne 41
lload 9 /* borrow */
lconst_0
lcmp
ifeq 41
new java.lang.AssertionError
dup
lload 9 /* borrow */
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
41: .line 917
StackMap locals:
StackMap stack:
aload 1 /* subtrahend */
iload 8 /* sIndex */
putfield jdk.internal.math.FDBigInteger.nWords:I
42: .line 918
aload 1 /* subtrahend */
invokevirtual jdk.internal.math.FDBigInteger.trimLeadingZeros:()V
43: .line 919
aload 1 /* subtrahend */
areturn
end local 9 // long borrow
end local 8 // int sIndex
end local 7 // int minLen
end local 6 // int subLen
end local 5 // int[] mData
end local 4 // int[] sData
end local 3 // int offsetDiff
end local 2 // jdk.internal.math.FDBigInteger minuend
end local 1 // jdk.internal.math.FDBigInteger subtrahend
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljdk/internal/math/FDBigInteger;
0 44 1 subtrahend Ljdk/internal/math/FDBigInteger;
2 44 2 minuend Ljdk/internal/math/FDBigInteger;
5 44 3 offsetDiff I
6 44 4 sData [I
7 44 5 mData [I
8 44 6 subLen I
9 44 7 minLen I
11 21 8 rLen I
16 18 9 r [I
23 25 8 rLen I
26 44 8 sIndex I
27 44 9 borrow J
29 31 11 diff J
34 40 11 mIndex I
36 38 12 diff J
MethodParameters:
Name Flags
subtrahend
private static int checkZeroTail(int[], int);
descriptor: ([II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // int[] a
start local 1 // int from
0: .line 936
goto 3
1: .line 937
StackMap locals:
StackMap stack:
aload 0 /* a */
iinc 1 /* from */ -1
iload 1 /* from */
iaload
ifeq 3
2: .line 938
iconst_1
ireturn
3: .line 936
StackMap locals:
StackMap stack:
iload 1 /* from */
ifgt 1
4: .line 941
iconst_0
ireturn
end local 1 // int from
end local 0 // int[] a
LocalVariableTable:
Start End Slot Name Signature
0 5 0 a [I
0 5 1 from I
MethodParameters:
Name Flags
a
from
public int cmp(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger other
0: .line 961
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
istore 2 /* aSize */
start local 2 // int aSize
1: .line 962
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
istore 3 /* bSize */
start local 3 // int bSize
2: .line 963
iload 2 /* aSize */
iload 3 /* bSize */
if_icmple 4
3: .line 964
iconst_1
ireturn
4: .line 965
StackMap locals: int int
StackMap stack:
iload 2 /* aSize */
iload 3 /* bSize */
if_icmpge 6
5: .line 966
iconst_m1
ireturn
6: .line 968
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 4 /* aLen */
start local 4 // int aLen
7: .line 969
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.nWords:I
istore 5 /* bLen */
start local 5 // int bLen
8: .line 970
goto 15
9: .line 971
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iinc 4 /* aLen */ -1
iload 4 /* aLen */
iaload
istore 6 /* a */
start local 6 // int a
10: .line 972
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.data:[I
iinc 5 /* bLen */ -1
iload 5 /* bLen */
iaload
istore 7 /* b */
start local 7 // int b
11: .line 973
iload 6 /* a */
iload 7 /* b */
if_icmpeq 15
12: .line 974
iload 6 /* a */
i2l
ldc 4294967295
land
iload 7 /* b */
i2l
ldc 4294967295
land
lcmp
ifge 13
iconst_m1
goto 14
StackMap locals: int int
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: ireturn
end local 7 // int b
end local 6 // int a
15: .line 970
StackMap locals:
StackMap stack:
iload 4 /* aLen */
ifle 16
iload 5 /* bLen */
ifgt 9
16: .line 977
StackMap locals:
StackMap stack:
iload 4 /* aLen */
ifle 18
17: .line 978
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 4 /* aLen */
invokestatic jdk.internal.math.FDBigInteger.checkZeroTail:([II)I
ireturn
18: .line 980
StackMap locals:
StackMap stack:
iload 5 /* bLen */
ifle 20
19: .line 981
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 5 /* bLen */
invokestatic jdk.internal.math.FDBigInteger.checkZeroTail:([II)I
ineg
ireturn
20: .line 983
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 // int bLen
end local 4 // int aLen
end local 3 // int bSize
end local 2 // int aSize
end local 1 // jdk.internal.math.FDBigInteger other
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljdk/internal/math/FDBigInteger;
0 21 1 other Ljdk/internal/math/FDBigInteger;
1 21 2 aSize I
2 21 3 bSize I
7 21 4 aLen I
8 21 5 bLen I
10 15 6 a I
11 15 7 b I
MethodParameters:
Name Flags
other
public int cmpPow52(int, int);
descriptor: (II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int p5
start local 2 // int p2
0: .line 1005
iload 1 /* p5 */
ifne 15
1: .line 1006
iload 2 /* p2 */
iconst_5
ishr
istore 3 /* wordcount */
start local 3 // int wordcount
2: .line 1007
iload 2 /* p2 */
bipush 31
iand
istore 4 /* bitcount */
start local 4 // int bitcount
3: .line 1008
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
istore 5 /* size */
start local 5 // int size
4: .line 1009
iload 5 /* size */
iload 3 /* wordcount */
iconst_1
iadd
if_icmple 6
5: .line 1010
iconst_1
ireturn
6: .line 1011
StackMap locals: int int int
StackMap stack:
iload 5 /* size */
iload 3 /* wordcount */
iconst_1
iadd
if_icmpge 8
7: .line 1012
iconst_m1
ireturn
8: .line 1014
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
istore 6 /* a */
start local 6 // int a
9: .line 1015
iconst_1
iload 4 /* bitcount */
ishl
istore 7 /* b */
start local 7 // int b
10: .line 1016
iload 6 /* a */
iload 7 /* b */
if_icmpeq 14
11: .line 1017
iload 6 /* a */
i2l
ldc 4294967295
land
iload 7 /* b */
i2l
ldc 4294967295
land
lcmp
ifge 12
iconst_m1
goto 13
StackMap locals: int int
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: ireturn
14: .line 1019
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
invokestatic jdk.internal.math.FDBigInteger.checkZeroTail:([II)I
ireturn
end local 7 // int b
end local 6 // int a
end local 5 // int size
end local 4 // int bitcount
end local 3 // int wordcount
15: .line 1021
StackMap locals: jdk.internal.math.FDBigInteger int int
StackMap stack:
aload 0 /* this */
iload 1 /* p5 */
invokestatic jdk.internal.math.FDBigInteger.big5pow:(I)Ljdk/internal/math/FDBigInteger;
iload 2 /* p2 */
invokevirtual jdk.internal.math.FDBigInteger.leftShift:(I)Ljdk/internal/math/FDBigInteger;
invokevirtual jdk.internal.math.FDBigInteger.cmp:(Ljdk/internal/math/FDBigInteger;)I
ireturn
end local 2 // int p2
end local 1 // int p5
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/internal/math/FDBigInteger;
0 16 1 p5 I
0 16 2 p2 I
2 15 3 wordcount I
3 15 4 bitcount I
4 15 5 size I
9 15 6 a I
10 15 7 b I
MethodParameters:
Name Flags
p5
p2
public int addAndCmp(jdk.internal.math.FDBigInteger, jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;Ljdk/internal/math/FDBigInteger;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger x
start local 2 // jdk.internal.math.FDBigInteger y
0: .line 1042
aload 1 /* x */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 5 /* xSize */
start local 5 // int xSize
1: .line 1043
aload 2 /* y */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 6 /* ySize */
start local 6 // int ySize
2: .line 1046
iload 5 /* xSize */
iload 6 /* ySize */
if_icmplt 8
3: .line 1047
aload 1 /* x */
astore 3 /* big */
start local 3 // jdk.internal.math.FDBigInteger big
4: .line 1048
aload 2 /* y */
astore 4 /* small */
start local 4 // jdk.internal.math.FDBigInteger small
5: .line 1049
iload 5 /* xSize */
istore 7 /* bSize */
start local 7 // int bSize
6: .line 1050
iload 6 /* ySize */
istore 8 /* sSize */
start local 8 // int sSize
7: .line 1051
goto 12
end local 8 // int sSize
end local 7 // int bSize
end local 4 // jdk.internal.math.FDBigInteger small
end local 3 // jdk.internal.math.FDBigInteger big
8: .line 1052
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger top top int int
StackMap stack:
aload 2 /* y */
astore 3 /* big */
start local 3 // jdk.internal.math.FDBigInteger big
9: .line 1053
aload 1 /* x */
astore 4 /* small */
start local 4 // jdk.internal.math.FDBigInteger small
10: .line 1054
iload 6 /* ySize */
istore 7 /* bSize */
start local 7 // int bSize
11: .line 1055
iload 5 /* xSize */
istore 8 /* sSize */
start local 8 // int sSize
12: .line 1057
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 9 /* thSize */
start local 9 // int thSize
13: .line 1058
iload 7 /* bSize */
ifne 17
14: .line 1059
iload 9 /* thSize */
ifne 15
iconst_0
goto 16
StackMap locals: int
StackMap stack:
15: iconst_1
StackMap locals:
StackMap stack: int
16: ireturn
17: .line 1061
StackMap locals:
StackMap stack:
iload 8 /* sSize */
ifne 19
18: .line 1062
aload 0 /* this */
aload 3 /* big */
invokevirtual jdk.internal.math.FDBigInteger.cmp:(Ljdk/internal/math/FDBigInteger;)I
ireturn
19: .line 1064
StackMap locals:
StackMap stack:
iload 7 /* bSize */
iload 9 /* thSize */
if_icmple 21
20: .line 1065
iconst_m1
ireturn
21: .line 1067
StackMap locals:
StackMap stack:
iload 7 /* bSize */
iconst_1
iadd
iload 9 /* thSize */
if_icmpge 23
22: .line 1068
iconst_1
ireturn
23: .line 1070
StackMap locals:
StackMap stack:
aload 3 /* big */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 3 /* big */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
lstore 10 /* top */
start local 10 // long top
24: .line 1071
iload 8 /* sSize */
iload 7 /* bSize */
if_icmpne 26
25: .line 1072
lload 10 /* top */
aload 4 /* small */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 4 /* small */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
ladd
lstore 10 /* top */
26: .line 1074
StackMap locals: long
StackMap stack:
lload 10 /* top */
bipush 32
lushr
lconst_0
lcmp
ifne 35
27: .line 1075
lload 10 /* top */
lconst_1
ladd
bipush 32
lushr
lconst_0
lcmp
ifne 43
28: .line 1077
iload 7 /* bSize */
iload 9 /* thSize */
if_icmpge 30
29: .line 1078
iconst_1
ireturn
30: .line 1081
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
lstore 12 /* v */
start local 12 // long v
31: .line 1082
lload 12 /* v */
lload 10 /* top */
lcmp
ifge 33
32: .line 1083
iconst_m1
ireturn
33: .line 1085
StackMap locals: long
StackMap stack:
lload 12 /* v */
lload 10 /* top */
lconst_1
ladd
lcmp
ifle 43
34: .line 1086
iconst_1
ireturn
end local 12 // long v
35: .line 1090
StackMap locals:
StackMap stack:
iload 7 /* bSize */
iconst_1
iadd
iload 9 /* thSize */
if_icmple 37
36: .line 1091
iconst_m1
ireturn
37: .line 1094
StackMap locals:
StackMap stack:
lload 10 /* top */
bipush 32
lushr
lstore 10 /* top */
38: .line 1095
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
iaload
i2l
ldc 4294967295
land
lstore 12 /* v */
start local 12 // long v
39: .line 1096
lload 12 /* v */
lload 10 /* top */
lcmp
ifge 41
40: .line 1097
iconst_m1
ireturn
41: .line 1099
StackMap locals: long
StackMap stack:
lload 12 /* v */
lload 10 /* top */
lconst_1
ladd
lcmp
ifle 43
42: .line 1100
iconst_1
ireturn
end local 12 // long v
43: .line 1103
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 3 /* big */
aload 4 /* small */
invokevirtual jdk.internal.math.FDBigInteger.add:(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
invokevirtual jdk.internal.math.FDBigInteger.cmp:(Ljdk/internal/math/FDBigInteger;)I
ireturn
end local 10 // long top
end local 9 // int thSize
end local 8 // int sSize
end local 7 // int bSize
end local 6 // int ySize
end local 5 // int xSize
end local 4 // jdk.internal.math.FDBigInteger small
end local 3 // jdk.internal.math.FDBigInteger big
end local 2 // jdk.internal.math.FDBigInteger y
end local 1 // jdk.internal.math.FDBigInteger x
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljdk/internal/math/FDBigInteger;
0 44 1 x Ljdk/internal/math/FDBigInteger;
0 44 2 y Ljdk/internal/math/FDBigInteger;
4 8 3 big Ljdk/internal/math/FDBigInteger;
9 44 3 big Ljdk/internal/math/FDBigInteger;
5 8 4 small Ljdk/internal/math/FDBigInteger;
10 44 4 small Ljdk/internal/math/FDBigInteger;
1 44 5 xSize I
2 44 6 ySize I
6 8 7 bSize I
11 44 7 bSize I
7 8 8 sSize I
12 44 8 sSize I
13 44 9 thSize I
24 44 10 top J
31 35 12 v J
39 43 12 v J
MethodParameters:
Name Flags
x
y
public void makeImmutable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 1114
aload 0 /* this */
iconst_1
putfield jdk.internal.math.FDBigInteger.isImmutable:Z
1: .line 1115
return
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/math/FDBigInteger;
private jdk.internal.math.FDBigInteger mult(int);
descriptor: (I)Ljdk/internal/math/FDBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int i
0: .line 1135
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 1136
aload 0 /* this */
areturn
2: .line 1138
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
iadd
newarray 10
astore 2 /* r */
start local 2 // int[] r
3: .line 1139
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 1 /* i */
aload 2 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([III[I)V
4: .line 1140
new jdk.internal.math.FDBigInteger
dup
aload 2 /* r */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 2 // int[] r
end local 1 // int i
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/math/FDBigInteger;
0 5 1 i I
3 5 2 r [I
MethodParameters:
Name Flags
i
private jdk.internal.math.FDBigInteger mult(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger other
0: .line 1167
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 1168
aload 0 /* this */
areturn
2: .line 1170
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
iconst_1
if_icmpne 4
3: .line 1171
aload 1 /* other */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
iaload
invokevirtual jdk.internal.math.FDBigInteger.mult:(I)Ljdk/internal/math/FDBigInteger;
areturn
4: .line 1173
StackMap locals:
StackMap stack:
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 6
5: .line 1174
aload 1 /* other */
areturn
6: .line 1176
StackMap locals:
StackMap stack:
aload 1 /* other */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
iconst_1
if_icmpne 8
7: .line 1177
aload 0 /* this */
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
iaload
invokevirtual jdk.internal.math.FDBigInteger.mult:(I)Ljdk/internal/math/FDBigInteger;
areturn
8: .line 1179
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.nWords:I
iadd
newarray 10
astore 2 /* r */
start local 2 // int[] r
9: .line 1180
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 2 /* r */
invokestatic jdk.internal.math.FDBigInteger.mult:([II[II[I)V
10: .line 1181
new jdk.internal.math.FDBigInteger
dup
aload 2 /* r */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 1 /* other */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 2 // int[] r
end local 1 // jdk.internal.math.FDBigInteger other
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/math/FDBigInteger;
0 11 1 other Ljdk/internal/math/FDBigInteger;
9 11 2 r [I
MethodParameters:
Name Flags
other
private jdk.internal.math.FDBigInteger add(jdk.internal.math.FDBigInteger);
descriptor: (Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=12, args_size=2
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // jdk.internal.math.FDBigInteger other
0: .line 1197
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 6 /* tSize */
start local 6 // int tSize
1: .line 1198
aload 1 /* other */
invokevirtual jdk.internal.math.FDBigInteger.size:()I
istore 7 /* oSize */
start local 7 // int oSize
2: .line 1199
iload 6 /* tSize */
iload 7 /* oSize */
if_icmplt 8
3: .line 1200
aload 0 /* this */
astore 2 /* big */
start local 2 // jdk.internal.math.FDBigInteger big
4: .line 1201
iload 6 /* tSize */
istore 4 /* bigLen */
start local 4 // int bigLen
5: .line 1202
aload 1 /* other */
astore 3 /* small */
start local 3 // jdk.internal.math.FDBigInteger small
6: .line 1203
iload 7 /* oSize */
istore 5 /* smallLen */
start local 5 // int smallLen
7: .line 1204
goto 12
end local 5 // int smallLen
end local 4 // int bigLen
end local 3 // jdk.internal.math.FDBigInteger small
end local 2 // jdk.internal.math.FDBigInteger big
8: .line 1205
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger top top top top int int
StackMap stack:
aload 1 /* other */
astore 2 /* big */
start local 2 // jdk.internal.math.FDBigInteger big
9: .line 1206
iload 7 /* oSize */
istore 4 /* bigLen */
start local 4 // int bigLen
10: .line 1207
aload 0 /* this */
astore 3 /* small */
start local 3 // jdk.internal.math.FDBigInteger small
11: .line 1208
iload 6 /* tSize */
istore 5 /* smallLen */
start local 5 // int smallLen
12: .line 1210
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int
StackMap stack:
iload 4 /* bigLen */
iconst_1
iadd
newarray 10
astore 8 /* r */
start local 8 // int[] r
13: .line 1211
iconst_0
istore 9 /* i */
start local 9 // int i
14: .line 1212
lconst_0
lstore 10 /* carry */
start local 10 // long carry
15: .line 1213
goto 24
16: .line 1214
StackMap locals: int[] int long
StackMap stack:
lload 10 /* carry */
iload 9 /* i */
aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.offset:I
if_icmpge 17
lconst_0
goto 18
StackMap locals:
StackMap stack: long
17: aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 9 /* i */
aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
iaload
i2l
ldc 4294967295
land
18: .line 1215
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int int[] int long
StackMap stack: long long
iload 9 /* i */
aload 3 /* small */
getfield jdk.internal.math.FDBigInteger.offset:I
if_icmpge 19
lconst_0
goto 20
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int int[] int long
StackMap stack: long long
19: aload 3 /* small */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 9 /* i */
aload 3 /* small */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
iaload
i2l
ldc 4294967295
land
20: .line 1214
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int int[] int long
StackMap stack: long long long
ladd
ladd
lstore 10 /* carry */
21: .line 1216
aload 8 /* r */
iload 9 /* i */
lload 10 /* carry */
l2i
iastore
22: .line 1217
lload 10 /* carry */
bipush 32
lshr
lstore 10 /* carry */
23: .line 1213
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
24: iload 9 /* i */
iload 5 /* smallLen */
if_icmplt 16
25: .line 1219
goto 32
26: .line 1220
StackMap locals:
StackMap stack:
lload 10 /* carry */
iload 9 /* i */
aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.offset:I
if_icmpge 27
lconst_0
goto 28
StackMap locals:
StackMap stack: long
27: aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 9 /* i */
aload 2 /* big */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
iaload
i2l
ldc 4294967295
land
StackMap locals: jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger jdk.internal.math.FDBigInteger int int int int int[] int long
StackMap stack: long long
28: ladd
lstore 10 /* carry */
29: .line 1221
aload 8 /* r */
iload 9 /* i */
lload 10 /* carry */
l2i
iastore
30: .line 1222
lload 10 /* carry */
bipush 32
lshr
lstore 10 /* carry */
31: .line 1219
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
32: iload 9 /* i */
iload 4 /* bigLen */
if_icmplt 26
33: .line 1224
aload 8 /* r */
iload 4 /* bigLen */
lload 10 /* carry */
l2i
iastore
34: .line 1225
new jdk.internal.math.FDBigInteger
dup
aload 8 /* r */
iconst_0
invokespecial jdk.internal.math.FDBigInteger.<init>:([II)V
areturn
end local 10 // long carry
end local 9 // int i
end local 8 // int[] r
end local 7 // int oSize
end local 6 // int tSize
end local 5 // int smallLen
end local 4 // int bigLen
end local 3 // jdk.internal.math.FDBigInteger small
end local 2 // jdk.internal.math.FDBigInteger big
end local 1 // jdk.internal.math.FDBigInteger other
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljdk/internal/math/FDBigInteger;
0 35 1 other Ljdk/internal/math/FDBigInteger;
4 8 2 big Ljdk/internal/math/FDBigInteger;
9 35 2 big Ljdk/internal/math/FDBigInteger;
6 8 3 small Ljdk/internal/math/FDBigInteger;
11 35 3 small Ljdk/internal/math/FDBigInteger;
5 8 4 bigLen I
10 35 4 bigLen I
7 8 5 smallLen I
12 35 5 smallLen I
1 35 6 tSize I
2 35 7 oSize I
13 35 8 r [I
14 35 9 i I
15 35 10 carry J
MethodParameters:
Name Flags
other
private void multAddMe(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=8, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // int iv
start local 2 // int addend
0: .line 1247
iload 1 /* iv */
i2l
ldc 4294967295
land
lstore 3 /* v */
start local 3 // long v
1: .line 1249
lload 3 /* v */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
iaload
i2l
ldc 4294967295
land
lmul
iload 2 /* addend */
i2l
ldc 4294967295
land
ladd
lstore 5 /* p */
start local 5 // long p
2: .line 1250
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iconst_0
lload 5 /* p */
l2i
iastore
3: .line 1251
lload 5 /* p */
bipush 32
lushr
lstore 5 /* p */
4: .line 1252
iconst_1
istore 7 /* i */
start local 7 // int i
5: goto 10
6: .line 1253
StackMap locals: long long int
StackMap stack:
lload 5 /* p */
lload 3 /* v */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 7 /* i */
iaload
i2l
ldc 4294967295
land
lmul
ladd
lstore 5 /* p */
7: .line 1254
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 7 /* i */
lload 5 /* p */
l2i
iastore
8: .line 1255
lload 5 /* p */
bipush 32
lushr
lstore 5 /* p */
9: .line 1252
iinc 7 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 7 /* i */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 6
end local 7 // int i
11: .line 1257
lload 5 /* p */
lconst_0
lcmp
ifeq 13
12: .line 1258
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
dup_x1
iconst_1
iadd
putfield jdk.internal.math.FDBigInteger.nWords:I
lload 5 /* p */
l2i
iastore
13: .line 1260
StackMap locals:
StackMap stack:
return
end local 5 // long p
end local 3 // long v
end local 2 // int addend
end local 1 // int iv
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/math/FDBigInteger;
0 14 1 iv I
0 14 2 addend I
1 14 3 v J
2 14 5 p J
5 11 7 i I
MethodParameters:
Name Flags
iv
addend
private long multDiffMe(long, jdk.internal.math.FDBigInteger);
descriptor: (JLjdk/internal/math/FDBigInteger;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=13, args_size=3
start local 0 // jdk.internal.math.FDBigInteger this
start local 1 // long q
start local 3 // jdk.internal.math.FDBigInteger S
0: .line 1303
lconst_0
lstore 4 /* diff */
start local 4 // long diff
1: .line 1304
lload 1 /* q */
lconst_0
lcmp
ifeq 37
2: .line 1305
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.offset:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
isub
istore 6 /* deltaSize */
start local 6 // int deltaSize
3: .line 1306
iload 6 /* deltaSize */
iflt 15
4: .line 1307
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 7 /* sd */
start local 7 // int[] sd
5: .line 1308
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 8 /* td */
start local 8 // int[] td
6: .line 1309
iconst_0
istore 9 /* sIndex */
start local 9 // int sIndex
7: iload 6 /* deltaSize */
istore 10 /* tIndex */
start local 10 // int tIndex
8: goto 13
9: .line 1310
StackMap locals: jdk.internal.math.FDBigInteger long jdk.internal.math.FDBigInteger long int int[] int[] int int
StackMap stack:
lload 4 /* diff */
aload 8 /* td */
iload 10 /* tIndex */
iaload
i2l
ldc 4294967295
land
lload 1 /* q */
aload 7 /* sd */
iload 9 /* sIndex */
iaload
i2l
ldc 4294967295
land
lmul
lsub
ladd
lstore 4 /* diff */
10: .line 1311
aload 8 /* td */
iload 10 /* tIndex */
lload 4 /* diff */
l2i
iastore
11: .line 1312
lload 4 /* diff */
bipush 32
lshr
lstore 4 /* diff */
12: .line 1309
iinc 9 /* sIndex */ 1
iinc 10 /* tIndex */ 1
StackMap locals:
StackMap stack:
13: iload 9 /* sIndex */
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 9
end local 10 // int tIndex
end local 9 // int sIndex
end local 8 // int[] td
end local 7 // int[] sd
14: .line 1314
goto 37
15: .line 1315
StackMap locals: jdk.internal.math.FDBigInteger long jdk.internal.math.FDBigInteger long int
StackMap stack:
iload 6 /* deltaSize */
ineg
istore 6 /* deltaSize */
16: .line 1316
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 6 /* deltaSize */
iadd
newarray 10
astore 7 /* rd */
start local 7 // int[] rd
17: .line 1317
iconst_0
istore 8 /* sIndex */
start local 8 // int sIndex
18: .line 1318
iconst_0
istore 9 /* rIndex */
start local 9 // int rIndex
19: .line 1319
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 10 /* sd */
start local 10 // int[] sd
20: .line 1320
goto 25
21: .line 1321
StackMap locals: jdk.internal.math.FDBigInteger long jdk.internal.math.FDBigInteger long int int[] int int int[]
StackMap stack:
lload 4 /* diff */
lload 1 /* q */
aload 10 /* sd */
iload 8 /* sIndex */
iaload
i2l
ldc 4294967295
land
lmul
lsub
lstore 4 /* diff */
22: .line 1322
aload 7 /* rd */
iload 9 /* rIndex */
lload 4 /* diff */
l2i
iastore
23: .line 1323
lload 4 /* diff */
bipush 32
lshr
lstore 4 /* diff */
24: .line 1320
iinc 8 /* sIndex */ 1
iinc 9 /* rIndex */ 1
StackMap locals:
StackMap stack:
25: iload 9 /* rIndex */
iload 6 /* deltaSize */
if_icmpge 26
iload 8 /* sIndex */
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 21
26: .line 1325
StackMap locals:
StackMap stack:
iconst_0
istore 11 /* tIndex */
start local 11 // int tIndex
27: .line 1326
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
astore 12 /* td */
start local 12 // int[] td
28: .line 1327
goto 33
29: .line 1328
StackMap locals: int int[]
StackMap stack:
lload 4 /* diff */
aload 12 /* td */
iload 11 /* tIndex */
iaload
i2l
ldc 4294967295
land
lload 1 /* q */
aload 10 /* sd */
iload 8 /* sIndex */
iaload
i2l
ldc 4294967295
land
lmul
lsub
ladd
lstore 4 /* diff */
30: .line 1329
aload 7 /* rd */
iload 9 /* rIndex */
lload 4 /* diff */
l2i
iastore
31: .line 1330
lload 4 /* diff */
bipush 32
lshr
lstore 4 /* diff */
32: .line 1327
iinc 8 /* sIndex */ 1
iinc 11 /* tIndex */ 1
iinc 9 /* rIndex */ 1
StackMap locals:
StackMap stack:
33: iload 8 /* sIndex */
aload 3 /* S */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 29
34: .line 1332
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.nWords:I
iload 6 /* deltaSize */
iadd
putfield jdk.internal.math.FDBigInteger.nWords:I
35: .line 1333
aload 0 /* this */
dup
getfield jdk.internal.math.FDBigInteger.offset:I
iload 6 /* deltaSize */
isub
putfield jdk.internal.math.FDBigInteger.offset:I
36: .line 1334
aload 0 /* this */
aload 7 /* rd */
putfield jdk.internal.math.FDBigInteger.data:[I
end local 12 // int[] td
end local 11 // int tIndex
end local 10 // int[] sd
end local 9 // int rIndex
end local 8 // int sIndex
end local 7 // int[] rd
end local 6 // int deltaSize
37: .line 1337
StackMap locals: jdk.internal.math.FDBigInteger long jdk.internal.math.FDBigInteger long
StackMap stack:
lload 4 /* diff */
lreturn
end local 4 // long diff
end local 3 // jdk.internal.math.FDBigInteger S
end local 1 // long q
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Ljdk/internal/math/FDBigInteger;
0 38 1 q J
0 38 3 S Ljdk/internal/math/FDBigInteger;
1 38 4 diff J
3 37 6 deltaSize I
5 14 7 sd [I
6 14 8 td [I
7 14 9 sIndex I
8 14 10 tIndex I
17 37 7 rd [I
18 37 8 sIndex I
19 37 9 rIndex I
20 37 10 sd [I
27 37 11 tIndex I
28 37 12 td [I
MethodParameters:
Name Flags
q
S
private static int multAndCarryBy10(int[], int, int[]);
descriptor: ([II[I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // int[] src
start local 1 // int srcLen
start local 2 // int[] dst
0: .line 1357
lconst_0
lstore 3 /* carry */
start local 3 // long carry
1: .line 1358
iconst_0
istore 5 /* i */
start local 5 // int i
2: goto 7
3: .line 1359
StackMap locals: long int
StackMap stack:
aload 0 /* src */
iload 5 /* i */
iaload
i2l
ldc 4294967295
land
ldc 10
lmul
lload 3 /* carry */
ladd
lstore 6 /* product */
start local 6 // long product
4: .line 1360
aload 2 /* dst */
iload 5 /* i */
lload 6 /* product */
l2i
iastore
5: .line 1361
lload 6 /* product */
bipush 32
lushr
lstore 3 /* carry */
end local 6 // long product
6: .line 1358
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 5 /* i */
iload 1 /* srcLen */
if_icmplt 3
end local 5 // int i
8: .line 1363
lload 3 /* carry */
l2i
ireturn
end local 3 // long carry
end local 2 // int[] dst
end local 1 // int srcLen
end local 0 // int[] src
LocalVariableTable:
Start End Slot Name Signature
0 9 0 src [I
0 9 1 srcLen I
0 9 2 dst [I
1 9 3 carry J
2 8 5 i I
4 6 6 product J
MethodParameters:
Name Flags
src
srcLen
dst
private static void mult(int[], int, int, int[]);
descriptor: ([III[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=4
start local 0 // int[] src
start local 1 // int srcLen
start local 2 // int value
start local 3 // int[] dst
0: .line 1381
iload 2 /* value */
i2l
ldc 4294967295
land
lstore 4 /* val */
start local 4 // long val
1: .line 1382
lconst_0
lstore 6 /* carry */
start local 6 // long carry
2: .line 1383
iconst_0
istore 8 /* i */
start local 8 // int i
3: goto 8
4: .line 1384
StackMap locals: long long int
StackMap stack:
aload 0 /* src */
iload 8 /* i */
iaload
i2l
ldc 4294967295
land
lload 4 /* val */
lmul
lload 6 /* carry */
ladd
lstore 9 /* product */
start local 9 // long product
5: .line 1385
aload 3 /* dst */
iload 8 /* i */
lload 9 /* product */
l2i
iastore
6: .line 1386
lload 9 /* product */
bipush 32
lushr
lstore 6 /* carry */
end local 9 // long product
7: .line 1383
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 8 /* i */
iload 1 /* srcLen */
if_icmplt 4
end local 8 // int i
9: .line 1388
aload 3 /* dst */
iload 1 /* srcLen */
lload 6 /* carry */
l2i
iastore
10: .line 1389
return
end local 6 // long carry
end local 4 // long val
end local 3 // int[] dst
end local 2 // int value
end local 1 // int srcLen
end local 0 // int[] src
LocalVariableTable:
Start End Slot Name Signature
0 11 0 src [I
0 11 1 srcLen I
0 11 2 value I
0 11 3 dst [I
1 11 4 val J
2 11 6 carry J
3 9 8 i I
5 7 9 product J
MethodParameters:
Name Flags
src
srcLen
value
dst
private static void mult(int[], int, int, int, int[]);
descriptor: ([IIII[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, args_size=5
start local 0 // int[] src
start local 1 // int srcLen
start local 2 // int v0
start local 3 // int v1
start local 4 // int[] dst
0: .line 1408
iload 2 /* v0 */
i2l
ldc 4294967295
land
lstore 5 /* v */
start local 5 // long v
1: .line 1409
lconst_0
lstore 7 /* carry */
start local 7 // long carry
2: .line 1410
iconst_0
istore 9 /* j */
start local 9 // int j
3: goto 8
4: .line 1411
StackMap locals: long long int
StackMap stack:
lload 5 /* v */
aload 0 /* src */
iload 9 /* j */
iaload
i2l
ldc 4294967295
land
lmul
lload 7 /* carry */
ladd
lstore 10 /* product */
start local 10 // long product
5: .line 1412
aload 4 /* dst */
iload 9 /* j */
lload 10 /* product */
l2i
iastore
6: .line 1413
lload 10 /* product */
bipush 32
lushr
lstore 7 /* carry */
end local 10 // long product
7: .line 1410
iinc 9 /* j */ 1
StackMap locals:
StackMap stack:
8: iload 9 /* j */
iload 1 /* srcLen */
if_icmplt 4
end local 9 // int j
9: .line 1415
aload 4 /* dst */
iload 1 /* srcLen */
lload 7 /* carry */
l2i
iastore
10: .line 1416
iload 3 /* v1 */
i2l
ldc 4294967295
land
lstore 5 /* v */
11: .line 1417
lconst_0
lstore 7 /* carry */
12: .line 1418
iconst_0
istore 9 /* j */
start local 9 // int j
13: goto 18
14: .line 1419
StackMap locals:
StackMap stack:
aload 4 /* dst */
iload 9 /* j */
iconst_1
iadd
iaload
i2l
ldc 4294967295
land
lload 5 /* v */
aload 0 /* src */
iload 9 /* j */
iaload
i2l
ldc 4294967295
land
lmul
ladd
lload 7 /* carry */
ladd
lstore 10 /* product */
start local 10 // long product
15: .line 1420
aload 4 /* dst */
iload 9 /* j */
iconst_1
iadd
lload 10 /* product */
l2i
iastore
16: .line 1421
lload 10 /* product */
bipush 32
lushr
lstore 7 /* carry */
end local 10 // long product
17: .line 1418
iinc 9 /* j */ 1
StackMap locals:
StackMap stack:
18: iload 9 /* j */
iload 1 /* srcLen */
if_icmplt 14
end local 9 // int j
19: .line 1423
aload 4 /* dst */
iload 1 /* srcLen */
iconst_1
iadd
lload 7 /* carry */
l2i
iastore
20: .line 1424
return
end local 7 // long carry
end local 5 // long v
end local 4 // int[] dst
end local 3 // int v1
end local 2 // int v0
end local 1 // int srcLen
end local 0 // int[] src
LocalVariableTable:
Start End Slot Name Signature
0 21 0 src [I
0 21 1 srcLen I
0 21 2 v0 I
0 21 3 v1 I
0 21 4 dst [I
1 21 5 v J
2 21 7 carry J
3 9 9 j I
5 7 10 product J
13 19 9 j I
15 17 10 product J
MethodParameters:
Name Flags
src
srcLen
v0
v1
dst
private static jdk.internal.math.FDBigInteger big5pow(int);
descriptor: (I)Ljdk/internal/math/FDBigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // int p
0: .line 1434
getstatic jdk.internal.math.FDBigInteger.$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 1435
StackMap locals:
StackMap stack:
iload 0 /* p */
sipush 340
if_icmpge 3
2: .line 1436
getstatic jdk.internal.math.FDBigInteger.POW_5_CACHE:[Ljdk/internal/math/FDBigInteger;
iload 0 /* p */
aaload
areturn
3: .line 1438
StackMap locals:
StackMap stack:
iload 0 /* p */
invokestatic jdk.internal.math.FDBigInteger.big5powRec:(I)Ljdk/internal/math/FDBigInteger;
areturn
end local 0 // int p
LocalVariableTable:
Start End Slot Name Signature
0 4 0 p I
MethodParameters:
Name Flags
p
private static jdk.internal.math.FDBigInteger big5powRec(int);
descriptor: (I)Ljdk/internal/math/FDBigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 // int p
0: .line 1449
iload 0 /* p */
sipush 340
if_icmpge 2
1: .line 1450
getstatic jdk.internal.math.FDBigInteger.POW_5_CACHE:[Ljdk/internal/math/FDBigInteger;
iload 0 /* p */
aaload
areturn
2: .line 1459
StackMap locals:
StackMap stack:
iload 0 /* p */
iconst_1
ishr
istore 1 /* q */
start local 1 // int q
3: .line 1460
iload 0 /* p */
iload 1 /* q */
isub
istore 2 /* r */
start local 2 // int r
4: .line 1461
iload 1 /* q */
invokestatic jdk.internal.math.FDBigInteger.big5powRec:(I)Ljdk/internal/math/FDBigInteger;
astore 3 /* bigq */
start local 3 // jdk.internal.math.FDBigInteger bigq
5: .line 1462
iload 2 /* r */
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
arraylength
if_icmpge 7
6: .line 1463
aload 3 /* bigq */
getstatic jdk.internal.math.FDBigInteger.SMALL_5_POW:[I
iload 2 /* r */
iaload
invokevirtual jdk.internal.math.FDBigInteger.mult:(I)Ljdk/internal/math/FDBigInteger;
areturn
7: .line 1465
StackMap locals: int int jdk.internal.math.FDBigInteger
StackMap stack:
aload 3 /* bigq */
iload 2 /* r */
invokestatic jdk.internal.math.FDBigInteger.big5powRec:(I)Ljdk/internal/math/FDBigInteger;
invokevirtual jdk.internal.math.FDBigInteger.mult:(Ljdk/internal/math/FDBigInteger;)Ljdk/internal/math/FDBigInteger;
areturn
end local 3 // jdk.internal.math.FDBigInteger bigq
end local 2 // int r
end local 1 // int q
end local 0 // int p
LocalVariableTable:
Start End Slot Name Signature
0 8 0 p I
3 8 1 q I
4 8 2 r I
5 8 3 bigq Ljdk/internal/math/FDBigInteger;
MethodParameters:
Name Flags
p
public java.lang.String toHexString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 1476
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
ifne 2
1: .line 1477
ldc "0"
areturn
2: .line 1479
StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
iadd
bipush 8
imul
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1 /* sb */
start local 1 // java.lang.StringBuilder sb
3: .line 1480
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_1
isub
istore 2 /* i */
start local 2 // int i
4: goto 13
5: .line 1481
StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 2 /* i */
iaload
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 3 /* subStr */
start local 3 // java.lang.String subStr
6: .line 1482
aload 3 /* subStr */
invokevirtual java.lang.String.length:()I
istore 4 /* j */
start local 4 // int j
7: goto 10
8: .line 1483
StackMap locals: java.lang.String int
StackMap stack:
aload 1 /* sb */
bipush 48
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
9: .line 1482
iinc 4 /* j */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* j */
bipush 8
if_icmplt 8
end local 4 // int j
11: .line 1485
aload 1 /* sb */
aload 3 /* subStr */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 // java.lang.String subStr
12: .line 1480
iinc 2 /* i */ -1
StackMap locals:
StackMap stack:
13: iload 2 /* i */
ifge 5
end local 2 // int i
14: .line 1487
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
istore 2 /* i */
start local 2 // int i
15: goto 18
16: .line 1488
StackMap locals:
StackMap stack:
aload 1 /* sb */
ldc "00000000"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: .line 1487
iinc 2 /* i */ -1
StackMap locals:
StackMap stack:
18: iload 2 /* i */
ifgt 16
end local 2 // int i
19: .line 1490
aload 1 /* sb */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 // java.lang.StringBuilder sb
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/math/FDBigInteger;
3 20 1 sb Ljava/lang/StringBuilder;
4 14 2 i I
6 12 3 subStr Ljava/lang/String;
7 11 4 j I
15 19 2 i I
public java.math.BigInteger toBigInteger();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 1500
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
iconst_4
imul
iconst_1
iadd
newarray 8
astore 1 /* magnitude */
start local 1 // byte[] magnitude
1: .line 1501
iconst_0
istore 2 /* i */
start local 2 // int i
2: goto 9
3: .line 1502
StackMap locals: byte[] int
StackMap stack:
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.data:[I
iload 2 /* i */
iaload
istore 3 /* w */
start local 3 // int w
4: .line 1503
aload 1 /* magnitude */
aload 1 /* magnitude */
arraylength
iconst_4
iload 2 /* i */
imul
isub
iconst_1
isub
iload 3 /* w */
i2b
bastore
5: .line 1504
aload 1 /* magnitude */
aload 1 /* magnitude */
arraylength
iconst_4
iload 2 /* i */
imul
isub
iconst_2
isub
iload 3 /* w */
bipush 8
ishr
i2b
bastore
6: .line 1505
aload 1 /* magnitude */
aload 1 /* magnitude */
arraylength
iconst_4
iload 2 /* i */
imul
isub
iconst_3
isub
iload 3 /* w */
bipush 16
ishr
i2b
bastore
7: .line 1506
aload 1 /* magnitude */
aload 1 /* magnitude */
arraylength
iconst_4
iload 2 /* i */
imul
isub
iconst_4
isub
iload 3 /* w */
bipush 24
ishr
i2b
bastore
end local 3 // int w
8: .line 1501
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 2 /* i */
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.nWords:I
if_icmplt 3
end local 2 // int i
10: .line 1508
new java.math.BigInteger
dup
aload 1 /* magnitude */
invokespecial java.math.BigInteger.<init>:([B)V
aload 0 /* this */
getfield jdk.internal.math.FDBigInteger.offset:I
bipush 32
imul
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
areturn
end local 1 // byte[] magnitude
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/math/FDBigInteger;
1 11 1 magnitude [B
2 10 2 i I
4 8 3 w I
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // jdk.internal.math.FDBigInteger this
0: .line 1519
aload 0 /* this */
invokevirtual jdk.internal.math.FDBigInteger.toBigInteger:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
areturn
end local 0 // jdk.internal.math.FDBigInteger this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/math/FDBigInteger;
}
SourceFile: "FDBigInteger.java"