class jdk.nashorn.internal.runtime.doubleconv.Bignum
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.nashorn.internal.runtime.doubleconv.Bignum
super_class: java.lang.Object
{
static final int kMaxSignificantBits;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3584
static final int kChunkSize;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 32
static final int kDoubleChunkSize;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 64
static final int kBigitSize;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 28
static final int kBigitMask;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 268435455
static final int kBigitCapacity;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 128
private final int[] bigits_;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int used_digits_;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int exponent_;
descriptor: I
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=1, locals=0, args_size=0
0: ldc Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
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.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 128
newarray 10
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
void times10();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
bipush 10
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt32:(I)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
static boolean equal(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.compare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
static boolean lessEqual(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.compare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
static boolean less(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.compare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
static boolean plusEqual(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.plusCompare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 2 c Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
c final
static boolean plusLessEqual(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.plusCompare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 2 c Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
c final
static boolean plusLess(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.plusCompare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 2 2 c Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
a final
b final
c final
private void ensureCapacity(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
sipush 128
if_icmple 2
1: new java.lang.RuntimeException
dup
invokespecial java.lang.RuntimeException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 3 1 size I
MethodParameters:
Name Flags
size final
int bigitLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
void assignUInt16(char);
descriptor: (C)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
1: iload 1
ifne 2
return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
3: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iconst_0
iload 1
iastore
4: aload 0
iconst_1
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 6 1 value C
MethodParameters:
Name Flags
value final
void assignUInt64(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
1: lload 1
lconst_0
lcmp
ifne 2
return
2: StackMap locals:
StackMap stack:
aload 0
iconst_3
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
3: iconst_0
istore 3
start local 3 4: goto 8
5: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
lload 1
ldc 268435455
land
l2i
iastore
6: lload 1
bipush 28
lushr
lstore 1
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iconst_3
if_icmplt 5
end local 3 9: aload 0
iconst_3
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
10: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 12 1 value J
4 9 3 i I
MethodParameters:
Name Flags
value
void assignBignum(jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 2
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 2
iaload
iastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 3
end local 2 6: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
istore 2
start local 2 7: goto 10
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 2
iconst_0
iastore
9: iinc 2 1
StackMap locals:
StackMap stack:
10: iload 2
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 8
end local 2 11: aload 0
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 13 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
2 6 2 i I
7 11 2 i I
MethodParameters:
Name Flags
other final
static long readUInt64(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: iload 1
istore 5
start local 5 2: goto 8
3: StackMap locals: long int
StackMap stack:
aload 0
iload 5
invokevirtual java.lang.String.charAt:(I)C
bipush 48
isub
istore 6
start local 6 4: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 6
iload 6
iflt 5
iload 6
bipush 9
if_icmple 6
StackMap locals: int
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
lload 3
ldc 10
lmul
iload 6
i2l
ladd
lstore 3
end local 6 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 1
iload 2
iadd
if_icmplt 3
end local 5 9: lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 str Ljava/lang/String;
0 10 1 from I
0 10 2 digits_to_read I
1 10 3 result J
2 9 5 i I
4 7 6 digit I
MethodParameters:
Name Flags
str final
from final
digits_to_read final
void assignDecimalString(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 9
4: StackMap locals: int int
StackMap stack:
aload 1
iload 3
bipush 19
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.readUInt64:(Ljava/lang/String;II)J
lstore 4
start local 4 5: iinc 3 19
6: iinc 2 -19
7: aload 0
bipush 19
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByPowerOfTen:(I)V
8: aload 0
lload 4
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.addUInt64:(J)V
end local 4 9: StackMap locals:
StackMap stack:
iload 2
bipush 19
if_icmpge 4
10: aload 1
iload 3
iload 2
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.readUInt64:(Ljava/lang/String;II)J
lstore 4
start local 4 11: aload 0
iload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByPowerOfTen:(I)V
12: aload 0
lload 4
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.addUInt64:(J)V
13: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 15 1 str Ljava/lang/String;
2 15 2 length I
3 15 3 pos I
5 9 4 digits J
11 15 4 digits J
MethodParameters:
Name Flags
str final
static int hexCharValue(char);
descriptor: (C)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush 48
iload 0
if_icmpgt 1
iload 0
bipush 57
if_icmpgt 1
iload 0
bipush 48
isub
ireturn
1: StackMap locals:
StackMap stack:
bipush 97
iload 0
if_icmpgt 2
iload 0
bipush 102
if_icmpgt 2
bipush 10
iload 0
iadd
bipush 97
isub
ireturn
2: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 4
bipush 65
iload 0
if_icmpgt 3
iload 0
bipush 70
if_icmple 4
StackMap locals:
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
bipush 10
iload 0
iadd
bipush 65
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 c C
MethodParameters:
Name Flags
c final
void assignHexString(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: iload 2
iconst_4
imul
bipush 28
idiv
iconst_1
iadd
istore 3
start local 3 3: aload 0
iload 3
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
4: iload 2
iconst_1
isub
istore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 15
7: StackMap locals: jdk.nashorn.internal.runtime.doubleconv.Bignum java.lang.String int int int int
StackMap stack:
iconst_0
istore 6
start local 6 8: iconst_0
istore 7
start local 7 9: goto 12
10: StackMap locals: int int
StackMap stack:
iload 6
aload 1
iload 4
iinc 4 -1
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.hexCharValue:(C)I
iload 7
iconst_4
imul
ishl
iadd
istore 6
11: iinc 7 1
StackMap locals:
StackMap stack:
12: iload 7
bipush 7
if_icmplt 10
end local 7 13: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iload 6
iastore
end local 6 14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
iload 3
iconst_1
isub
if_icmplt 7
end local 5 16: aload 0
iload 3
iconst_1
isub
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
17: iconst_0
istore 5
start local 5 18: iconst_0
istore 6
start local 6 19: goto 23
20: StackMap locals: int
StackMap stack:
iload 5
iconst_4
ishl
istore 5
21: iload 5
aload 1
iload 6
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.hexCharValue:(C)I
iadd
istore 5
22: iinc 6 1
StackMap locals:
StackMap stack:
23: iload 6
iload 4
if_icmple 20
end local 6 24: iload 5
ifeq 27
25: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iload 5
iastore
26: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
27: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
28: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 29 1 str Ljava/lang/String;
2 29 2 length I
3 29 3 needed_bigits I
5 29 4 string_index I
6 16 5 i I
8 14 6 current_bigit I
9 13 7 j I
18 29 5 most_significant_bigit I
19 24 6 j I
MethodParameters:
Name Flags
str final
void addUInt64(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 1
return
1: StackMap locals:
StackMap stack:
new jdk.nashorn.internal.runtime.doubleconv.Bignum
dup
invokespecial jdk.nashorn.internal.runtime.doubleconv.Bignum.<init>:()V
astore 3
start local 3 2: aload 3
lload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.assignUInt64:(J)V
3: aload 0
aload 3
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.addBignum:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
4: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 5 1 operand J
2 5 3 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
MethodParameters:
Name Flags
operand final
void addBignum(jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.align:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
3: aload 0
iconst_1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
invokestatic java.lang.Math.max:(II)I
iadd
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
4: iconst_0
istore 2
start local 2 5: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
istore 3
start local 3 6: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 7
iload 3
ifge 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: int int
StackMap stack:
iconst_0
istore 4
start local 4 8: goto 14
9: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iaload
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iaload
iadd
iload 2
iadd
istore 5
start local 5 10: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iload 5
ldc 268435455
iand
iastore
11: iload 5
bipush 28
iushr
istore 2
12: iinc 3 1
end local 5 13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 9
end local 4 15: goto 20
16: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iaload
iload 2
iadd
istore 4
start local 4 17: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iload 4
ldc 268435455
iand
iastore
18: iload 4
bipush 28
iushr
istore 2
19: iinc 3 1
end local 4 20: StackMap locals:
StackMap stack:
iload 2
ifne 16
21: aload 0
iload 3
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
invokestatic java.lang.Math.max:(II)I
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
22: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 23
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 24 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
5 24 2 carry I
6 24 3 bigit_pos I
8 15 4 i I
10 13 5 sum I
17 20 4 sum I
MethodParameters:
Name Flags
other final
void subtractBignum(jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 3
aload 1
aload 0
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.lessEqual:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.align:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
4: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
istore 2
start local 2 5: iconst_0
istore 3
start local 3 6: iconst_0
istore 4
start local 4 7: goto 13
8: StackMap locals: int int int
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 9
iload 3
ifeq 9
iload 3
iconst_1
if_icmpeq 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 2
iadd
iaload
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iaload
isub
iload 3
isub
istore 5
start local 5 10: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 2
iadd
iload 5
ldc 268435455
iand
iastore
11: iload 5
bipush 31
iushr
istore 3
end local 5 12: iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 8
14: goto 19
15: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 2
iadd
iaload
iload 3
isub
istore 5
start local 5 16: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 2
iadd
iload 5
ldc 268435455
iand
iastore
17: iload 5
bipush 31
iushr
istore 3
18: iinc 4 1
end local 5 19: StackMap locals:
StackMap stack:
iload 3
ifne 15
20: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
21: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 22 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
5 22 2 offset I
6 22 3 borrow I
7 22 4 i I
10 12 5 difference I
16 19 5 difference I
MethodParameters:
Name Flags
other final
void shiftLeft(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifne 1
return
1: StackMap locals:
StackMap stack:
aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
iload 1
bipush 28
idiv
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
2: iload 1
bipush 28
irem
istore 2
start local 2 3: aload 0
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
4: aload 0
iload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitsShiftLeft:(I)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 6 1 shift_amount I
3 6 2 local_shift I
MethodParameters:
Name Flags
shift_amount final
void multiplyByUInt32(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
if_icmpne 1
return
1: StackMap locals:
StackMap stack:
iload 1
ifne 4
2: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifne 5
return
5: StackMap locals:
StackMap stack:
lconst_0
lstore 2
start local 2 6: iconst_0
istore 4
start local 4 7: goto 12
8: StackMap locals: long int
StackMap stack:
iload 1
i2l
ldc 4294967295
land
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iaload
i2l
lmul
lload 2
ladd
lstore 5
start local 5 9: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
lload 5
ldc 268435455
land
l2i
iastore
10: lload 5
bipush 28
lushr
lstore 2
end local 5 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 8
end local 4 13: goto 18
14: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
15: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
lload 2
ldc 268435455
land
l2i
iastore
16: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
17: lload 2
bipush 28
lushr
lstore 2
18: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifne 14
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 20 1 factor I
6 20 2 carry J
7 13 4 i I
9 11 5 product J
MethodParameters:
Name Flags
factor final
void multiplyByUInt64(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=6, locals=16, args_size=2
start local 0 start local 1 0: lload 1
lconst_1
lcmp
ifne 1
return
1: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifne 4
2: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
3: return
4: StackMap locals:
StackMap stack:
lconst_0
lstore 3
start local 3 5: lload 1
ldc 4294967295
land
lstore 5
start local 5 6: lload 1
bipush 32
lushr
lstore 7
start local 7 7: iconst_0
istore 9
start local 9 8: goto 17
9: StackMap locals: jdk.nashorn.internal.runtime.doubleconv.Bignum long long long long int
StackMap stack:
lload 5
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 9
iaload
i2l
lmul
lstore 10
start local 10 10: lload 7
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 9
iaload
i2l
lmul
lstore 12
start local 12 11: lload 3
ldc 268435455
land
lload 10
ladd
lstore 14
start local 14 12: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 9
lload 14
ldc 268435455
land
l2i
iastore
13: lload 3
bipush 28
lushr
lload 14
bipush 28
lushr
ladd
14: lload 12
iconst_4
lshl
15: ladd
lstore 3
end local 14 end local 12 end local 10 16: iinc 9 1
StackMap locals:
StackMap stack:
17: iload 9
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 9
end local 9 18: goto 23
19: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
20: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
lload 3
ldc 268435455
land
l2i
iastore
21: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
22: lload 3
bipush 28
lushr
lstore 3
23: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
ifne 19
24: return
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 25 1 factor J
5 25 3 carry J
6 25 5 low J
7 25 7 high J
8 18 9 i I
10 16 10 product_low J
11 16 12 product_high J
12 16 14 tmp J
MethodParameters:
Name Flags
factor final
void multiplyByPowerOfTen(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: bipush 12
newarray 10
dup
iconst_0
iconst_5
iastore
dup
iconst_1
bipush 25
iastore
dup
iconst_2
bipush 125
iastore
dup
iconst_3
sipush 625
iastore
dup
iconst_4
sipush 3125
iastore
dup
iconst_5
sipush 15625
iastore
dup
bipush 6
1: ldc 78125
iastore
dup
bipush 7
ldc 390625
iastore
dup
bipush 8
ldc 1953125
iastore
dup
bipush 9
ldc 9765625
iastore
dup
bipush 10
ldc 48828125
iastore
dup
bipush 11
ldc 244140625
iastore
2: astore 2
start local 2 3: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 4
iload 1
ifge 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int[]
StackMap stack:
iload 1
ifne 5
return
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifne 6
return
6: StackMap locals:
StackMap stack:
iload 1
istore 3
start local 3 7: goto 10
8: StackMap locals: int
StackMap stack:
aload 0
ldc 7450580596923828125
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt64:(J)V
9: iinc 3 -27
10: StackMap locals:
StackMap stack:
iload 3
bipush 27
if_icmpge 8
11: goto 14
12: StackMap locals:
StackMap stack:
aload 0
ldc 1220703125
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt32:(I)V
13: iinc 3 -13
14: StackMap locals:
StackMap stack:
iload 3
bipush 13
if_icmpge 12
15: iload 3
ifle 17
16: aload 0
aload 2
iload 3
iconst_1
isub
iaload
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt32:(I)V
17: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.shiftLeft:(I)V
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 19 1 exponent I
3 19 2 kFive1_to_12 [I
7 19 3 remaining_exponent I
MethodParameters:
Name Flags
exponent final
void square();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=10, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_2
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
imul
istore 1
start local 1 2: aload 0
iload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
3: ldc 256
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
i2l
lcmp
ifgt 5
4: new java.lang.RuntimeException
dup
ldc "unimplemented"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int
StackMap stack:
lconst_0
lstore 2
start local 2 6: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
istore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 11
9: StackMap locals: long int int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 5
iadd
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iaload
iastore
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 9
end local 5 12: iconst_0
istore 5
start local 5 13: goto 26
14: StackMap locals:
StackMap stack:
iload 5
istore 6
start local 6 15: iconst_0
istore 7
start local 7 16: goto 22
17: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 6
iadd
iaload
istore 8
start local 8 18: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 7
iadd
iaload
istore 9
start local 9 19: lload 2
iload 8
i2l
iload 9
i2l
lmul
ladd
lstore 2
20: iinc 6 -1
21: iinc 7 1
end local 9 end local 8 22: StackMap locals:
StackMap stack:
iload 6
ifge 17
23: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
lload 2
ldc 268435455
land
l2i
iastore
24: lload 2
bipush 28
lushr
lstore 2
end local 7 end local 6 25: iinc 5 1
StackMap locals:
StackMap stack:
26: iload 5
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 14
end local 5 27: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
istore 5
start local 5 28: goto 41
29: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
istore 6
start local 6 30: iload 5
iload 6
isub
istore 7
start local 7 31: goto 37
32: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 6
iadd
iaload
istore 8
start local 8 33: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iload 7
iadd
iaload
istore 9
start local 9 34: lload 2
iload 8
i2l
iload 9
i2l
lmul
ladd
lstore 2
35: iinc 6 -1
36: iinc 7 1
end local 9 end local 8 37: StackMap locals:
StackMap stack:
iload 7
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 32
38: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
lload 2
ldc 268435455
land
l2i
iastore
39: lload 2
bipush 28
lushr
lstore 2
end local 7 end local 6 40: iinc 5 1
StackMap locals:
StackMap stack:
41: iload 5
iload 1
if_icmplt 29
end local 5 42: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 43
lload 2
lconst_0
lcmp
ifeq 43
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
43: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
44: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
iconst_2
imul
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
45: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
46: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
2 47 1 product_length I
6 47 2 accumulator J
7 47 4 copy_offset I
8 12 5 i I
13 27 5 i I
15 25 6 bigit_index1 I
16 25 7 bigit_index2 I
18 22 8 int1 I
19 22 9 int2 I
28 42 5 i I
30 40 6 bigit_index1 I
31 40 7 bigit_index2 I
33 37 8 int1 I
34 37 9 int2 I
void assignPowerUInt16(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=4, locals=14, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
iload 1
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
iload 2
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifne 5
3: aload 0
iconst_1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.assignUInt16:(C)V
4: return
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.zero:()V
6: iconst_0
istore 3
start local 3 7: goto 10
8: StackMap locals: int
StackMap stack:
iload 1
iconst_1
iushr
istore 1
9: iinc 3 1
10: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifeq 8
11: iconst_0
istore 4
start local 4 12: iload 1
istore 5
start local 5 13: goto 16
14: StackMap locals: int int
StackMap stack:
iload 5
iconst_1
iushr
istore 5
15: iinc 4 1
16: StackMap locals:
StackMap stack:
iload 5
ifne 14
17: iload 4
iload 2
imul
istore 6
start local 6 18: aload 0
iload 6
bipush 28
idiv
iconst_2
iadd
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
19: iconst_1
istore 7
start local 7 20: goto 22
StackMap locals: int int
StackMap stack:
21: iload 7
iconst_1
ishl
istore 7
StackMap locals:
StackMap stack:
22: iload 2
iload 7
if_icmpge 21
23: iload 7
iconst_2
iushr
istore 7
24: iload 1
i2l
lstore 8
start local 8 25: iconst_0
istore 10
start local 10 26: goto 39
27: StackMap locals: long int
StackMap stack:
lload 8
lload 8
lmul
lstore 8
28: iload 2
iload 7
iand
ifeq 38
29: lconst_1
bipush 64
iload 4
isub
lshl
lconst_1
lsub
ldc -1
lxor
30: lstore 11
start local 11 31: lload 8
lload 11
land
lconst_0
lcmp
ifne 32
iconst_1
goto 33
StackMap locals: long
StackMap stack:
32: iconst_0
StackMap locals:
StackMap stack: int
33: istore 13
start local 13 34: iload 13
ifeq 37
35: lload 8
iload 1
i2l
lmul
lstore 8
36: goto 38
37: StackMap locals: int
StackMap stack:
iconst_1
istore 10
end local 13 end local 11 38: StackMap locals:
StackMap stack:
iload 7
iconst_1
iushr
istore 7
39: StackMap locals:
StackMap stack:
iload 7
ifeq 40
lload 8
ldc 4294967295
lcmp
ifle 27
40: StackMap locals:
StackMap stack:
aload 0
lload 8
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.assignUInt64:(J)V
41: iload 10
ifeq 48
42: aload 0
iload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt32:(I)V
43: goto 48
44: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.square:()V
45: iload 2
iload 7
iand
ifeq 47
46: aload 0
iload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.multiplyByUInt32:(I)V
47: StackMap locals:
StackMap stack:
iload 7
iconst_1
iushr
istore 7
48: StackMap locals:
StackMap stack:
iload 7
ifne 44
49: aload 0
iload 3
iload 2
imul
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.shiftLeft:(I)V
50: return
end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 51 1 base I
0 51 2 power_exponent I
7 51 3 shifts I
12 51 4 bit_size I
13 51 5 tmp_base I
18 51 6 final_size I
20 51 7 mask I
25 51 8 this_value J
26 51 10 delayed_multipliciation Z
31 38 11 base_bits_mask J
34 38 13 high_bits_zero Z
MethodParameters:
Name Flags
base
power_exponent final
char divideModuloIntBignum(jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)C
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 3
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifgt 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpge 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.align:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
6: iconst_0
istore 2
start local 2 7: goto 12
8: StackMap locals: int
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 9
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
ldc 16777216
if_icmpge 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 10
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
ldc 65536
if_icmplt 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
iadd
i2c
istore 2
11: aload 0
aload 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.subtractTimes:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;I)V
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpgt 8
13: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 14
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpeq 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
istore 3
start local 3 15: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
istore 4
start local 4 16: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
if_icmpne 23
17: iload 3
iload 4
invokestatic java.lang.Integer.divideUnsigned:(II)I
istore 5
start local 5 18: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iload 3
iload 4
iload 5
imul
isub
iastore
19: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 20
iload 5
ldc 65536
invokestatic java.lang.Integer.compareUnsigned:(II)I
iflt 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals: int int int
StackMap stack:
iload 2
iload 5
iadd
i2c
istore 2
21: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
22: iload 2
ireturn
end local 5 23: StackMap locals:
StackMap stack:
iload 3
iload 4
iconst_1
iadd
invokestatic java.lang.Integer.divideUnsigned:(II)I
istore 5
start local 5 24: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 25
iload 5
ldc 65536
invokestatic java.lang.Integer.compareUnsigned:(II)I
iflt 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: StackMap locals: int
StackMap stack:
iload 2
iload 5
iadd
i2c
istore 2
26: aload 0
aload 1
iload 5
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.subtractTimes:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;I)V
27: iload 4
iload 5
iconst_1
iadd
imul
iload 3
if_icmple 31
28: iload 2
ireturn
29: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.subtractBignum:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
30: iload 2
iconst_1
iadd
i2c
istore 2
31: StackMap locals:
StackMap stack:
aload 1
aload 0
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.lessEqual:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)Z
ifne 29
32: iload 2
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 33 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
7 33 2 result C
15 33 3 this_bigit I
16 33 4 other_bigit I
18 23 5 quotient I
24 33 5 division_estimate I
MethodParameters:
Name Flags
other final
static int sizeInHexChars(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
iload 0
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 1
start local 1 2: goto 5
3: StackMap locals: int
StackMap stack:
iload 0
iconst_4
iushr
istore 0
4: iinc 1 1
5: StackMap locals:
StackMap stack:
iload 0
ifne 3
6: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 number I
2 7 1 result I
MethodParameters:
Name Flags
number
static char hexCharOfValue(int);
descriptor: (I)C
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
iload 0
iflt 1
iload 0
bipush 16
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 0
bipush 10
if_icmpge 3
iload 0
bipush 48
iadd
i2c
ireturn
3: StackMap locals:
StackMap stack:
iload 0
bipush 10
isub
bipush 65
iadd
i2c
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 value I
MethodParameters:
Name Flags
value final
java.lang.String toHexString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=1
start local 0 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifne 3
2: ldc "0"
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
iconst_1
isub
bipush 7
imul
4: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.sizeInHexChars:(I)I
5: iadd
istore 1
start local 1 6: new java.lang.StringBuilder
dup
iload 1
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 2
start local 2 7: aload 2
iload 1
invokevirtual java.lang.StringBuilder.setLength:(I)V
8: iload 1
iconst_1
isub
istore 3
start local 3 9: iconst_0
istore 4
start local 4 10: goto 17
11: StackMap locals: jdk.nashorn.internal.runtime.doubleconv.Bignum int java.lang.StringBuilder int int
StackMap stack:
iconst_0
istore 5
start local 5 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 2
iload 3
iinc 3 -1
bipush 48
invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
bipush 7
if_icmplt 13
end local 5 16: iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
if_icmplt 11
end local 4 18: iconst_0
istore 4
start local 4 19: goto 28
20: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 4
iaload
istore 5
start local 5 21: iconst_0
istore 6
start local 6 22: goto 26
23: StackMap locals: int int
StackMap stack:
aload 2
iload 3
iinc 3 -1
iload 5
bipush 15
iand
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.hexCharOfValue:(I)C
invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
24: iload 5
iconst_4
iushr
istore 5
25: iinc 6 1
StackMap locals:
StackMap stack:
26: iload 6
bipush 7
if_icmplt 23
end local 6 end local 5 27: iinc 4 1
StackMap locals:
StackMap stack:
28: iload 4
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
if_icmplt 20
end local 4 29: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
istore 4
start local 4 30: goto 33
31: StackMap locals:
StackMap stack:
aload 2
iload 3
iinc 3 -1
iload 4
bipush 15
iand
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.hexCharOfValue:(I)C
invokevirtual java.lang.StringBuilder.setCharAt:(IC)V
32: iload 4
iconst_4
iushr
istore 4
33: StackMap locals:
StackMap stack:
iload 4
ifne 31
34: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
6 35 1 needed_chars I
7 35 2 buffer Ljava/lang/StringBuilder;
9 35 3 string_index I
10 18 4 i I
12 16 5 j I
19 29 4 i I
21 27 5 current_bigit I
22 27 6 j I
30 35 4 most_significant_bigit I
int bigitAt(int);
descriptor: (I)I
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmplt 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
if_icmpge 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
iaload
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 3 1 index I
MethodParameters:
Name Flags
index final
static int compare(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
istore 2
start local 2 3: aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
istore 3
start local 3 4: iload 2
iload 3
if_icmpge 5
iconst_m1
ireturn
5: StackMap locals: int int
StackMap stack:
iload 2
iload 3
if_icmple 6
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iload 2
iconst_1
isub
istore 4
start local 4 7: goto 13
8: StackMap locals: int
StackMap stack:
aload 0
iload 4
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitAt:(I)I
istore 5
start local 5 9: aload 1
iload 4
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitAt:(I)I
istore 6
start local 6 10: iload 5
iload 6
if_icmpge 11
iconst_m1
ireturn
11: StackMap locals: int int
StackMap stack:
iload 5
iload 6
if_icmple 12
iconst_1
ireturn
end local 6 end local 5 12: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
13: iload 4
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
invokestatic java.lang.Math.min:(II)I
if_icmpge 8
end local 4 14: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 15 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
3 15 2 bigit_length_a I
4 15 3 bigit_length_b I
7 14 4 i I
9 12 5 bigit_a I
10 12 6 bigit_b I
MethodParameters:
Name Flags
a final
b final
static int plusCompare(jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum, jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 3
aload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.isClamped:()Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpge 5
4: aload 1
aload 0
aload 2
invokestatic jdk.nashorn.internal.runtime.doubleconv.Bignum.plusCompare:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)I
ireturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
iconst_1
iadd
aload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpge 6
iconst_m1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmple 7
iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmplt 9
aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
aload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
if_icmpge 9
8: iconst_m1
ireturn
9: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 10: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
invokestatic java.lang.Math.min:(II)I
aload 2
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 11: aload 2
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitLength:()I
iconst_1
isub
istore 5
start local 5 12: goto 23
13: StackMap locals: int int int
StackMap stack:
aload 0
iload 5
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitAt:(I)I
istore 6
start local 6 14: aload 1
iload 5
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitAt:(I)I
istore 7
start local 7 15: aload 2
iload 5
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.bigitAt:(I)I
istore 8
start local 8 16: iload 6
iload 7
iadd
istore 9
start local 9 17: iload 9
iload 8
iload 3
iadd
if_icmple 19
18: iconst_1
ireturn
19: StackMap locals: jdk.nashorn.internal.runtime.doubleconv.Bignum jdk.nashorn.internal.runtime.doubleconv.Bignum jdk.nashorn.internal.runtime.doubleconv.Bignum int int int int int int int
StackMap stack:
iload 8
iload 3
iadd
iload 9
isub
istore 3
20: iload 3
iconst_1
if_icmple 21
iconst_m1
ireturn
21: StackMap locals:
StackMap stack:
iload 3
bipush 28
ishl
istore 3
end local 9 end local 8 end local 7 end local 6 22: iinc 5 -1
StackMap locals: jdk.nashorn.internal.runtime.doubleconv.Bignum jdk.nashorn.internal.runtime.doubleconv.Bignum jdk.nashorn.internal.runtime.doubleconv.Bignum int int int
StackMap stack:
23: iload 5
iload 4
if_icmpge 13
end local 5 24: iload 3
ifne 25
iconst_0
ireturn
25: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 a Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 26 1 b Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 26 2 c Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
10 26 3 borrow I
11 26 4 min_exponent I
12 24 5 i I
14 22 6 int_a I
15 22 7 int_b I
16 22 8 int_c I
17 22 9 sum I
MethodParameters:
Name Flags
a final
b final
c final
void clamp();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifle 3
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
ifeq 1
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifne 5
4: aload 0
iconst_0
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
boolean isClamped();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifeq 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
iaload
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
void zero();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 1
iconst_0
iastore
3: iinc 1 1
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 2
end local 1 5: aload 0
iconst_0
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
6: aload 0
iconst_0
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
1 5 1 i I
void align(jdk.nashorn.internal.runtime.doubleconv.Bignum);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
if_icmple 17
1: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
istore 2
start local 2 2: aload 0
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iload 2
iadd
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.ensureCapacity:(I)V
3: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
isub
istore 3
start local 3 4: goto 7
5: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iload 2
iadd
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iaload
iastore
6: iinc 3 -1
StackMap locals:
StackMap stack:
7: iload 3
ifge 5
end local 3 8: iconst_0
istore 3
start local 3 9: goto 12
10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iconst_0
iastore
11: iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 2
if_icmplt 10
end local 3 13: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iload 2
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
14: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
iload 2
isub
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
15: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 16
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
ifge 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 17
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
ifge 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 18 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
2 17 2 zero_digits I
4 8 3 i I
9 13 3 i I
MethodParameters:
Name Flags
other final
void bigitsShiftLeft(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
iload 1
bipush 28
if_icmplt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 2
iload 1
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 9
5: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iaload
bipush 28
iload 1
isub
iushr
istore 4
start local 4 6: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 3
iaload
iload 1
ishl
iload 2
iadd
ldc 268435455
iand
iastore
7: iload 4
istore 2
end local 4 8: iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 5
end local 3 10: iload 2
ifeq 13
11: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iload 2
iastore
12: aload 0
dup
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iconst_1
iadd
putfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 14 1 shift_amount I
3 14 2 carry I
4 10 3 i I
6 8 4 new_carry I
MethodParameters:
Name Flags
shift_amount final
void subtractTimes(jdk.nashorn.internal.runtime.doubleconv.Bignum, int);
descriptor: (Ljdk/nashorn/internal/runtime/doubleconv/Bignum;I)V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.nashorn.internal.runtime.doubleconv.Bignum.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
if_icmple 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iload 2
iconst_3
if_icmpge 8
2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.subtractBignum:(Ljdk/nashorn/internal/runtime/doubleconv/Bignum;)V
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 2
if_icmplt 4
end local 3 7: return
8: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 9: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.exponent_:I
isub
istore 4
start local 4 10: iconst_0
istore 5
start local 5 11: goto 20
12: StackMap locals: int int int
StackMap stack:
iload 2
i2l
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iaload
i2l
lmul
lstore 6
start local 6 13: iload 3
i2l
lload 6
ladd
lstore 8
start local 8 14: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iload 4
iadd
iaload
lload 8
ldc 268435455
land
l2i
isub
istore 10
start local 10 15: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iload 4
iadd
iload 10
ldc 268435455
iand
iastore
16: iload 10
bipush 31
iushr
i2l
17: lload 8
bipush 28
lushr
18: ladd
l2i
istore 3
end local 10 end local 8 end local 6 19: iinc 5 1
StackMap locals:
StackMap stack:
20: iload 5
aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 12
end local 5 21: aload 1
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
iload 4
iadd
istore 5
start local 5 22: goto 28
23: StackMap locals:
StackMap stack:
iload 3
ifne 24
return
24: StackMap locals:
StackMap stack:
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iaload
iload 3
isub
istore 6
start local 6 25: aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
iload 5
iload 6
ldc 268435455
iand
iastore
26: iload 6
bipush 31
iushr
istore 3
end local 6 27: iinc 5 1
StackMap locals:
StackMap stack:
28: iload 5
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.used_digits_:I
if_icmplt 23
end local 5 29: aload 0
invokevirtual jdk.nashorn.internal.runtime.doubleconv.Bignum.clamp:()V
30: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 31 1 other Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
0 31 2 factor I
3 7 3 i I
9 31 3 borrow I
10 31 4 exponent_diff I
11 21 5 i I
13 19 6 product J
14 19 8 remove J
15 19 10 difference I
22 29 5 i I
25 27 6 difference I
MethodParameters:
Name Flags
other final
factor final
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Bignum"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.nashorn.internal.runtime.doubleconv.Bignum.bigits_:[I
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/nashorn/internal/runtime/doubleconv/Bignum;
}
SourceFile: "Bignum.java"