public class java.math.BigDecimal extends java.lang.Number implements java.lang.Comparable<java.math.BigDecimal>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.math.BigDecimal
super_class: java.lang.Number
{
private final java.math.BigInteger intVal;
descriptor: Ljava/math/BigInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int scale;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private transient int precision;
descriptor: I
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
private transient java.lang.String stringCache;
descriptor: Ljava/lang/String;
flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
static final long INFLATED;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -9223372036854775808
private static final java.math.BigInteger INFLATED_BIGINT;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final transient long intCompact;
descriptor: J
flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
private static final int MAX_COMPACT_DIGITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 18
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6108874887143696463
private static final java.lang.ThreadLocal<java.math.BigDecimal$StringBuilderHelper> threadLocalStringBuilderHelper;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Ljava/math/BigDecimal$StringBuilderHelper;>;
private static final java.math.BigDecimal[] ZERO_THROUGH_TEN;
descriptor: [Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal[] ZERO_SCALED_BY;
descriptor: [Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long HALF_LONG_MAX_VALUE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4611686018427387903
private static final long HALF_LONG_MIN_VALUE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -4611686018427387904
public static final java.math.BigDecimal ZERO;
descriptor: Ljava/math/BigDecimal;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.math.BigDecimal ONE;
descriptor: Ljava/math/BigDecimal;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.math.BigDecimal TEN;
descriptor: Ljava/math/BigDecimal;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal ONE_TENTH;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.math.BigDecimal ONE_HALF;
descriptor: Ljava/math/BigDecimal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final int ROUND_UP;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_DOWN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_CEILING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_FLOOR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_HALF_UP;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_HALF_DOWN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_HALF_EVEN;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 6
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
public static final int ROUND_UNNECESSARY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 7
RuntimeVisibleAnnotations:
java.lang.Deprecated(since = "9")
private static final double[] DOUBLE_10_POW;
descriptor: [D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float[] FLOAT_10_POW;
descriptor: [F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long[] LONG_TEN_POWERS_TABLE;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static volatile java.math.BigInteger[] BIG_TEN_POWERS_TABLE;
descriptor: [Ljava/math/BigInteger;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private static final int BIG_TEN_POWERS_TABLE_INITLEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int BIG_TEN_POWERS_TABLE_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long[] THRESHOLDS_TABLE;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long DIV_NUM_BASE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4294967296
private static final long[][] LONGLONG_TEN_POWERS_TABLE;
descriptor: [[J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$math$RoundingMode;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=0, args_size=0
0: ldc Ljava/math/BigDecimal;
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 java.math.BigDecimal.$assertionsDisabled:Z
3: ldc -9223372036854775808
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
4: new java.math.BigDecimal$1
dup
invokespecial java.math.BigDecimal$1.<init>:()V
putstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
5: bipush 11
anewarray java.math.BigDecimal
dup
iconst_0
6: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_1
7: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
lconst_1
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_2
8: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
ldc 2
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_3
9: new java.math.BigDecimal
dup
ldc 3
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 3
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_4
10: new java.math.BigDecimal
dup
ldc 4
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 4
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_5
11: new java.math.BigDecimal
dup
ldc 5
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 5
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 6
12: new java.math.BigDecimal
dup
ldc 6
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 6
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 7
13: new java.math.BigDecimal
dup
ldc 7
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 7
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 8
14: new java.math.BigDecimal
dup
ldc 8
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 8
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 9
15: new java.math.BigDecimal
dup
ldc 9
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
ldc 9
iconst_0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 10
16: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
ldc 10
iconst_0
iconst_2
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
17: putstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
18: bipush 16
anewarray java.math.BigDecimal
dup
iconst_0
19: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
iconst_0
aaload
aastore
dup
iconst_1
20: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_1
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_2
21: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_2
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_3
22: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_3
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_4
23: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_4
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
iconst_5
24: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iconst_5
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 6
25: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 6
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 7
26: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 7
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 8
27: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 8
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 9
28: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 9
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 10
29: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 10
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 11
30: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 11
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 12
31: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 12
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 13
32: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 13
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 14
33: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 14
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
dup
bipush 15
34: new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
bipush 15
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
aastore
35: putstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
36: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
iconst_0
aaload
37: putstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
38: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
iconst_1
aaload
39: putstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
40: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
bipush 10
aaload
41: putstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
42: lconst_1
iconst_1
invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
putstatic java.math.BigDecimal.ONE_TENTH:Ljava/math/BigDecimal;
43: ldc 5
iconst_1
invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
putstatic java.math.BigDecimal.ONE_HALF:Ljava/math/BigDecimal;
44: bipush 23
newarray 7
dup
iconst_0
45: dconst_1
dastore
dup
iconst_1
ldc 10.0
dastore
dup
iconst_2
ldc 100.0
dastore
dup
iconst_3
ldc 1000.0
dastore
dup
iconst_4
ldc 10000.0
dastore
dup
iconst_5
ldc 100000.0
dastore
dup
bipush 6
46: ldc 1000000.0
dastore
dup
bipush 7
ldc 1.0E7
dastore
dup
bipush 8
ldc 1.0E8
dastore
dup
bipush 9
ldc 1.0E9
dastore
dup
bipush 10
ldc 1.0E10
dastore
dup
bipush 11
ldc 1.0E11
dastore
dup
bipush 12
47: ldc 1.0E12
dastore
dup
bipush 13
ldc 1.0E13
dastore
dup
bipush 14
ldc 1.0E14
dastore
dup
bipush 15
ldc 1.0E15
dastore
dup
bipush 16
ldc 1.0E16
dastore
dup
bipush 17
ldc 1.0E17
dastore
dup
bipush 18
48: ldc 1.0E18
dastore
dup
bipush 19
ldc 1.0E19
dastore
dup
bipush 20
ldc 1.0E20
dastore
dup
bipush 21
ldc 1.0E21
dastore
dup
bipush 22
ldc 1.0E22
dastore
49: putstatic java.math.BigDecimal.DOUBLE_10_POW:[D
50: bipush 11
newarray 6
dup
iconst_0
51: fconst_1
fastore
dup
iconst_1
ldc 10.0
fastore
dup
iconst_2
ldc 100.0
fastore
dup
iconst_3
ldc 1000.0
fastore
dup
iconst_4
ldc 10000.0
fastore
dup
iconst_5
ldc 100000.0
fastore
dup
bipush 6
52: ldc 1000000.0
fastore
dup
bipush 7
ldc 1.0E7
fastore
dup
bipush 8
ldc 1.0E8
fastore
dup
bipush 9
ldc 1.0E9
fastore
dup
bipush 10
ldc 1.0E10
fastore
53: putstatic java.math.BigDecimal.FLOAT_10_POW:[F
54: bipush 19
newarray 11
dup
iconst_0
55: lconst_1
lastore
dup
iconst_1
56: ldc 10
lastore
dup
iconst_2
57: ldc 100
lastore
dup
iconst_3
58: ldc 1000
lastore
dup
iconst_4
59: ldc 10000
lastore
dup
iconst_5
60: ldc 100000
lastore
dup
bipush 6
61: ldc 1000000
lastore
dup
bipush 7
62: ldc 10000000
lastore
dup
bipush 8
63: ldc 100000000
lastore
dup
bipush 9
64: ldc 1000000000
lastore
dup
bipush 10
65: ldc 10000000000
lastore
dup
bipush 11
66: ldc 100000000000
lastore
dup
bipush 12
67: ldc 1000000000000
lastore
dup
bipush 13
68: ldc 10000000000000
lastore
dup
bipush 14
69: ldc 100000000000000
lastore
dup
bipush 15
70: ldc 1000000000000000
lastore
dup
bipush 16
71: ldc 10000000000000000
lastore
dup
bipush 17
72: ldc 100000000000000000
lastore
dup
bipush 18
73: ldc 1000000000000000000
lastore
74: putstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
75: bipush 19
anewarray java.math.BigInteger
dup
iconst_0
76: getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
aastore
dup
iconst_1
77: ldc 10
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
iconst_2
78: ldc 100
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
iconst_3
79: ldc 1000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
iconst_4
80: ldc 10000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
iconst_5
81: ldc 100000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 6
82: ldc 1000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 7
83: ldc 10000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 8
84: ldc 100000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 9
85: ldc 1000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 10
86: ldc 10000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 11
87: ldc 100000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 12
88: ldc 1000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 13
89: ldc 10000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 14
90: ldc 100000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 15
91: ldc 1000000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 16
92: ldc 10000000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 17
93: ldc 100000000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
dup
bipush 18
94: ldc 1000000000000000000
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
aastore
95: putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
96: getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
arraylength
97: putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
98: bipush 16
getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
imul
99: putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
100: bipush 19
newarray 11
dup
iconst_0
101: ldc 9223372036854775807
lastore
dup
iconst_1
102: ldc 922337203685477580
lastore
dup
iconst_2
103: ldc 92233720368547758
lastore
dup
iconst_3
104: ldc 9223372036854775
lastore
dup
iconst_4
105: ldc 922337203685477
lastore
dup
iconst_5
106: ldc 92233720368547
lastore
dup
bipush 6
107: ldc 9223372036854
lastore
dup
bipush 7
108: ldc 922337203685
lastore
dup
bipush 8
109: ldc 92233720368
lastore
dup
bipush 9
110: ldc 9223372036
lastore
dup
bipush 10
111: ldc 922337203
lastore
dup
bipush 11
112: ldc 92233720
lastore
dup
bipush 12
113: ldc 9223372
lastore
dup
bipush 13
114: ldc 922337
lastore
dup
bipush 14
115: ldc 92233
lastore
dup
bipush 15
116: ldc 9223
lastore
dup
bipush 16
117: ldc 922
lastore
dup
bipush 17
118: ldc 92
lastore
dup
bipush 18
119: ldc 9
lastore
120: putstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
121: bipush 20
anewarray long[]
dup
iconst_0
122: iconst_2
newarray 11
dup
iconst_1
ldc -8446744073709551616
lastore
aastore
dup
iconst_1
123: iconst_2
newarray 11
dup
iconst_0
ldc 5
lastore
dup
iconst_1
ldc 7766279631452241920
lastore
aastore
dup
iconst_2
124: iconst_2
newarray 11
dup
iconst_0
ldc 54
lastore
dup
iconst_1
ldc 3875820019684212736
lastore
aastore
dup
iconst_3
125: iconst_2
newarray 11
dup
iconst_0
ldc 542
lastore
dup
iconst_1
ldc 1864712049423024128
lastore
aastore
dup
iconst_4
126: iconst_2
newarray 11
dup
iconst_0
ldc 5421
lastore
dup
iconst_1
ldc 200376420520689664
lastore
aastore
dup
iconst_5
127: iconst_2
newarray 11
dup
iconst_0
ldc 54210
lastore
dup
iconst_1
ldc 2003764205206896640
lastore
aastore
dup
bipush 6
128: iconst_2
newarray 11
dup
iconst_0
ldc 542101
lastore
dup
iconst_1
ldc 1590897978359414784
lastore
aastore
dup
bipush 7
129: iconst_2
newarray 11
dup
iconst_0
ldc 5421010
lastore
dup
iconst_1
ldc -2537764290115403776
lastore
aastore
dup
bipush 8
130: iconst_2
newarray 11
dup
iconst_0
ldc 54210108
lastore
dup
iconst_1
ldc -6930898827444486144
lastore
aastore
dup
bipush 9
131: iconst_2
newarray 11
dup
iconst_0
ldc 542101086
lastore
dup
iconst_1
ldc 4477988020393345024
lastore
aastore
dup
bipush 10
132: iconst_2
newarray 11
dup
iconst_0
ldc 5421010862
lastore
dup
iconst_1
ldc 7886392056514347008
lastore
aastore
dup
bipush 11
133: iconst_2
newarray 11
dup
iconst_0
ldc 54210108624
lastore
dup
iconst_1
ldc 5076944270305263616
lastore
aastore
dup
bipush 12
134: iconst_2
newarray 11
dup
iconst_0
ldc 542101086242
lastore
dup
iconst_1
ldc -4570789518076018688
lastore
aastore
dup
bipush 13
135: iconst_2
newarray 11
dup
iconst_0
ldc 5421010862427
lastore
dup
iconst_1
ldc -8814407033341083648
lastore
aastore
dup
bipush 14
136: iconst_2
newarray 11
dup
iconst_0
ldc 54210108624275
lastore
dup
iconst_1
ldc 4089650035136921600
lastore
aastore
dup
bipush 15
137: iconst_2
newarray 11
dup
iconst_0
ldc 542101086242752
lastore
dup
iconst_1
ldc 4003012203950112768
lastore
aastore
dup
bipush 16
138: iconst_2
newarray 11
dup
iconst_0
ldc 5421010862427522
lastore
dup
iconst_1
ldc 3136633892082024448
lastore
aastore
dup
bipush 17
139: iconst_2
newarray 11
dup
iconst_0
ldc 54210108624275221
lastore
dup
iconst_1
ldc -5527149226598858752
lastore
aastore
dup
bipush 18
140: iconst_2
newarray 11
dup
iconst_0
ldc 542101086242752217
lastore
dup
iconst_1
ldc 68739955140067328
lastore
aastore
dup
bipush 19
141: iconst_2
newarray 11
dup
iconst_0
ldc 5421010862427522170
lastore
dup
iconst_1
ldc 687399551400673280
lastore
aastore
142: putstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
143: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.math.BigInteger, long, int, int);
descriptor: (Ljava/math/BigInteger;JII)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
iload 4
putfield java.math.BigDecimal.scale:I
2: aload 0
iload 5
putfield java.math.BigDecimal.precision:I
3: aload 0
lload 2
putfield java.math.BigDecimal.intCompact:J
4: aload 0
aload 1
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
5: return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/math/BigDecimal;
0 6 1 intVal Ljava/math/BigInteger;
0 6 2 val J
0 6 4 scale I
0 6 5 prec I
MethodParameters:
Name Flags
intVal
val
scale
prec
public void <init>(char[], int, int);
descriptor: ([CII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 in [C
0 2 2 offset I
0 2 3 len I
MethodParameters:
Name Flags
in
offset
len
public void <init>(char[], int, int, java.math.MathContext);
descriptor: ([CIILjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=20, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: iload 2
iload 3
aload 1
arraylength
invokestatic java.util.Objects.checkFromIndexSize:(III)I
pop
2: goto 7
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext
StackMap stack: java.lang.IndexOutOfBoundsException
3: pop
4: new java.lang.NumberFormatException
dup
5: ldc "Bad offset or len arguments for char[] input."
6: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 8: iconst_0
istore 6
start local 6 9: lconst_0
lstore 7
start local 7 10: aconst_null
astore 9
start local 9 11: iconst_0
istore 10
start local 10 12: aload 1
iload 2
caload
bipush 45
if_icmpne 17
13: iconst_1
istore 10
14: iinc 2 1
15: iinc 3 -1
16: goto 20
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int
StackMap stack:
17: aload 1
iload 2
caload
bipush 43
if_icmpne 20
18: iinc 2 1
19: iinc 3 -1
20: StackMap locals:
StackMap stack:
iconst_0
istore 11
start local 11 21: lconst_0
lstore 12
start local 12 22: iload 3
bipush 18
if_icmpgt 23
iconst_1
goto 24
StackMap locals: int long
StackMap stack:
23: iconst_0
StackMap locals:
StackMap stack: int
24: istore 15
start local 15 25: iconst_0
istore 16
start local 16 26: iload 15
ifeq 93
27: goto 75
28: StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
StackMap stack:
aload 1
iload 2
caload
istore 14
start local 14 29: iload 14
bipush 48
if_icmpne 38
30: iload 5
ifne 32
31: iconst_1
istore 5
goto 35
32: StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int
StackMap stack:
lload 7
lconst_0
lcmp
ifeq 35
33: lload 7
ldc 10
lmul
lstore 7
34: iinc 5 1
35: StackMap locals:
StackMap stack:
iload 11
ifeq 74
36: iinc 6 1
37: goto 74
StackMap locals:
StackMap stack:
38: iload 14
bipush 49
if_icmplt 46
iload 14
bipush 57
if_icmpgt 46
39: iload 14
bipush 48
isub
istore 17
start local 17 40: iload 5
iconst_1
if_icmpne 41
lload 7
lconst_0
lcmp
ifeq 42
41: StackMap locals: int
StackMap stack:
iinc 5 1
42: StackMap locals:
StackMap stack:
lload 7
ldc 10
lmul
iload 17
i2l
ladd
lstore 7
43: iload 11
ifeq 74
44: iinc 6 1
end local 17 45: goto 74
StackMap locals:
StackMap stack:
46: iload 14
bipush 46
if_icmpne 51
47: iload 11
ifeq 49
48: new java.lang.NumberFormatException
dup
ldc "Character array contains more than one decimal point."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
49: StackMap locals:
StackMap stack:
iconst_1
istore 11
50: goto 74
StackMap locals:
StackMap stack:
51: iload 14
invokestatic java.lang.Character.isDigit:(C)Z
ifeq 66
52: iload 14
bipush 10
invokestatic java.lang.Character.digit:(CI)I
istore 17
start local 17 53: iload 17
ifne 60
54: iload 5
ifne 56
55: iconst_1
istore 5
goto 63
56: StackMap locals: int
StackMap stack:
lload 7
lconst_0
lcmp
ifeq 63
57: lload 7
ldc 10
lmul
lstore 7
58: iinc 5 1
59: goto 63
60: StackMap locals:
StackMap stack:
iload 5
iconst_1
if_icmpne 61
lload 7
lconst_0
lcmp
ifeq 62
61: StackMap locals:
StackMap stack:
iinc 5 1
62: StackMap locals:
StackMap stack:
lload 7
ldc 10
lmul
iload 17
i2l
ladd
lstore 7
63: StackMap locals:
StackMap stack:
iload 11
ifeq 74
64: iinc 6 1
end local 17 65: goto 74
StackMap locals:
StackMap stack:
66: iload 14
bipush 101
if_icmpeq 67
iload 14
bipush 69
if_icmpne 70
67: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
invokestatic java.math.BigDecimal.parseExp:([CII)J
lstore 12
68: lload 12
l2i
i2l
lload 12
lcmp
ifeq 76
69: new java.lang.NumberFormatException
dup
ldc "Exponent overflow."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
70: StackMap locals:
StackMap stack:
new java.lang.NumberFormatException
dup
new java.lang.StringBuilder
dup
ldc "Character "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 14
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
71: ldc " is neither a decimal digit number, decimal point, nor"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
72: ldc " \"e\" notation exponential mark."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
73: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
74: StackMap locals:
StackMap stack:
iinc 2 1
iinc 3 -1
end local 14 StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
StackMap stack:
75: iload 3
ifgt 28
76: StackMap locals:
StackMap stack:
iload 5
ifne 78
77: new java.lang.NumberFormatException
dup
ldc "No digits found."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
78: StackMap locals:
StackMap stack:
lload 12
lconst_0
lcmp
ifeq 80
79: aload 0
iload 6
lload 12
invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
istore 6
80: StackMap locals:
StackMap stack:
iload 10
ifeq 81
lload 7
lneg
goto 82
StackMap locals:
StackMap stack:
81: lload 7
StackMap locals:
StackMap stack: long
82: lstore 7
83: aload 4
getfield java.math.MathContext.precision:I
istore 17
start local 17 84: iload 5
iload 17
isub
istore 18
start local 18 85: iload 17
ifle 161
iload 18
ifle 161
86: goto 91
87: StackMap locals: int int
StackMap stack:
iload 6
i2l
iload 18
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 6
88: lload 7
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 18
laload
aload 4
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 7
89: lload 7
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 5
90: iload 5
iload 17
isub
istore 18
91: StackMap locals:
StackMap stack:
iload 18
ifgt 87
end local 18 end local 17 92: goto 161
93: StackMap locals:
StackMap stack:
iload 3
newarray 5
astore 17
start local 17 94: goto 124
95: StackMap locals: char[]
StackMap stack:
aload 1
iload 2
caload
istore 14
start local 14 96: iload 14
bipush 48
if_icmplt 97
iload 14
bipush 57
if_icmple 98
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int char[]
StackMap stack:
97: iload 14
invokestatic java.lang.Character.isDigit:(C)Z
ifeq 113
98: StackMap locals:
StackMap stack:
iload 14
bipush 48
if_icmpeq 99
iload 14
bipush 10
invokestatic java.lang.Character.digit:(CI)I
ifne 107
99: StackMap locals:
StackMap stack:
iload 5
ifne 103
100: aload 17
iload 16
iload 14
castore
101: iconst_1
istore 5
102: goto 110
StackMap locals:
StackMap stack:
103: iload 16
ifeq 110
104: aload 17
iload 16
iinc 16 1
iload 14
castore
105: iinc 5 1
106: goto 110
107: StackMap locals:
StackMap stack:
iload 5
iconst_1
if_icmpne 108
iload 16
ifeq 109
108: StackMap locals:
StackMap stack:
iinc 5 1
109: StackMap locals:
StackMap stack:
aload 17
iload 16
iinc 16 1
iload 14
castore
110: StackMap locals:
StackMap stack:
iload 11
ifeq 123
111: iinc 6 1
112: goto 123
113: StackMap locals:
StackMap stack:
iload 14
bipush 46
if_icmpne 118
114: iload 11
ifeq 116
115: new java.lang.NumberFormatException
dup
ldc "Character array contains more than one decimal point."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
116: StackMap locals:
StackMap stack:
iconst_1
istore 11
117: goto 123
118: StackMap locals:
StackMap stack:
iload 14
bipush 101
if_icmpeq 120
iload 14
bipush 69
if_icmpeq 120
119: new java.lang.NumberFormatException
dup
ldc "Character array is missing \"e\" notation exponential mark."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
120: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
invokestatic java.math.BigDecimal.parseExp:([CII)J
lstore 12
121: lload 12
l2i
i2l
lload 12
lcmp
ifeq 125
122: new java.lang.NumberFormatException
dup
ldc "Exponent overflow."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
123: StackMap locals:
StackMap stack:
iinc 2 1
iinc 3 -1
end local 14 StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
StackMap stack:
124: iload 3
ifgt 95
125: StackMap locals:
StackMap stack:
iload 5
ifne 127
126: new java.lang.NumberFormatException
dup
ldc "No digits found."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
127: StackMap locals:
StackMap stack:
lload 12
lconst_0
lcmp
ifeq 129
128: aload 0
iload 6
lload 12
invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
istore 6
129: StackMap locals:
StackMap stack:
new java.math.BigInteger
dup
aload 17
iload 10
ifeq 130
iconst_m1
goto 131
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
StackMap stack: new 129 new 129 char[]
130: iconst_1
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
StackMap stack: new 129 new 129 char[] int
131: iload 5
invokespecial java.math.BigInteger.<init>:([CII)V
astore 9
132: aload 9
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 7
133: aload 4
getfield java.math.MathContext.precision:I
istore 18
start local 18 134: iload 18
ifle 161
iload 5
iload 18
if_icmple 161
135: lload 7
ldc -9223372036854775808
lcmp
ifne 147
136: iload 5
iload 18
isub
istore 19
start local 19 137: goto 146
138: StackMap locals: int int
StackMap stack:
iload 6
i2l
iload 19
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 6
139: aload 9
iload 19
aload 4
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
astore 9
140: aload 9
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 7
141: lload 7
ldc -9223372036854775808
lcmp
ifeq 144
142: lload 7
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 5
143: goto 147
144: StackMap locals:
StackMap stack:
aload 9
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 5
145: iload 5
iload 18
isub
istore 19
146: StackMap locals:
StackMap stack:
iload 19
ifgt 138
end local 19 147: StackMap locals:
StackMap stack:
lload 7
ldc -9223372036854775808
lcmp
ifeq 161
148: iload 5
iload 18
isub
istore 19
start local 19 149: goto 154
150: StackMap locals: int
StackMap stack:
iload 6
i2l
iload 19
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 6
151: lload 7
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 19
laload
aload 4
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 7
152: lload 7
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 5
153: iload 5
iload 18
isub
istore 19
154: StackMap locals:
StackMap stack:
iload 19
ifgt 150
155: aconst_null
astore 9
end local 19 end local 18 end local 17 end local 16 end local 15 end local 12 end local 11 end local 10 156: goto 161
StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger
StackMap stack: java.lang.RuntimeException
157: astore 10
start local 10 158: new java.lang.NumberFormatException
dup
invokespecial java.lang.NumberFormatException.<init>:()V
astore 11
start local 11 159: aload 11
aload 10
invokevirtual java.lang.NumberFormatException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
160: aload 11
athrow
end local 11 end local 10 161: StackMap locals:
StackMap stack:
aload 0
iload 6
putfield java.math.BigDecimal.scale:I
162: aload 0
iload 5
putfield java.math.BigDecimal.precision:I
163: aload 0
lload 7
putfield java.math.BigDecimal.intCompact:J
164: aload 0
aload 9
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
165: return
end local 9 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 166 0 this Ljava/math/BigDecimal;
0 166 1 in [C
0 166 2 offset I
0 166 3 len I
0 166 4 mc Ljava/math/MathContext;
8 166 5 prec I
9 166 6 scl I
10 166 7 rs J
11 166 9 rb Ljava/math/BigInteger;
12 156 10 isneg Z
21 156 11 dot Z
22 156 12 exp J
29 75 14 c C
96 124 14 c C
25 156 15 isCompact Z
26 156 16 idx I
40 45 17 digit I
53 65 17 digit I
84 92 17 mcp I
85 92 18 drop I
94 156 17 coeff [C
134 156 18 mcp I
137 147 19 drop I
149 156 19 drop I
158 161 10 e Ljava/lang/RuntimeException;
159 161 11 nfe Ljava/lang/NumberFormatException;
Exception table:
from to target type
1 2 3 Class java.lang.IndexOutOfBoundsException
11 156 157 Class java.lang.ArrayIndexOutOfBoundsException
11 156 157 Class java.lang.NegativeArraySizeException
MethodParameters:
Name Flags
in
offset
len
mc
private int adjustScale(int, long);
descriptor: (IJ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
i2l
lload 2
lsub
lstore 4
start local 4 1: lload 4
ldc 2147483647
lcmp
ifgt 2
lload 4
ldc -2147483648
lcmp
ifge 3
2: StackMap locals: long
StackMap stack:
new java.lang.NumberFormatException
dup
ldc "Scale out of range."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
lload 4
l2i
istore 1
4: iload 1
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/BigDecimal;
0 5 1 scl I
0 5 2 exp J
1 5 4 adjustedScale J
MethodParameters:
Name Flags
scl
exp
private static long parseExp(char[], int, int);
descriptor: ([CII)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: lconst_0
lstore 3
start local 3 1: iinc 1 1
2: aload 0
iload 1
caload
istore 5
start local 5 3: iinc 2 -1
4: iload 5
bipush 45
if_icmpne 5
iconst_1
goto 6
StackMap locals: long int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 6
ifne 8
iload 5
bipush 43
if_icmpne 11
8: StackMap locals: int
StackMap stack:
iinc 1 1
9: aload 0
iload 1
caload
istore 5
10: iinc 2 -1
11: StackMap locals:
StackMap stack:
iload 2
ifgt 16
12: new java.lang.NumberFormatException
dup
ldc "No exponent digits."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iinc 1 1
14: aload 0
iload 1
caload
istore 5
15: iinc 2 -1
16: StackMap locals:
StackMap stack:
iload 2
bipush 10
if_icmple 17
iload 5
bipush 48
if_icmpeq 13
iload 5
bipush 10
invokestatic java.lang.Character.digit:(CI)I
ifeq 13
17: StackMap locals:
StackMap stack:
iload 2
bipush 10
if_icmple 19
18: new java.lang.NumberFormatException
dup
ldc "Too many nonzero exponent digits."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
iload 5
bipush 48
if_icmplt 22
iload 5
bipush 57
if_icmpgt 22
20: iload 5
bipush 48
isub
istore 7
start local 7 21: goto 25
end local 7 22: StackMap locals:
StackMap stack:
iload 5
bipush 10
invokestatic java.lang.Character.digit:(CI)I
istore 7
start local 7 23: iload 7
ifge 25
24: new java.lang.NumberFormatException
dup
ldc "Not a digit."
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals: int
StackMap stack:
lload 3
ldc 10
lmul
iload 7
i2l
ladd
lstore 3
26: iload 2
iconst_1
if_icmpne 28
27: goto 31
28: StackMap locals:
StackMap stack:
iinc 1 1
29: aload 0
iload 1
caload
istore 5
end local 7 30: iinc 2 -1
goto 19
31: StackMap locals:
StackMap stack:
iload 6
ifeq 33
32: lload 3
lneg
lstore 3
33: StackMap locals:
StackMap stack:
lload 3
lreturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 in [C
0 34 1 offset I
0 34 2 len I
1 34 3 exp J
3 34 5 c C
7 34 6 negexp Z
21 22 7 v I
23 30 7 v I
MethodParameters:
Name Flags
in
offset
len
public void <init>(char[]);
descriptor: ([C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
aload 1
arraylength
invokespecial java.math.BigDecimal.<init>:([CII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 in [C
MethodParameters:
Name Flags
in
public void <init>(char[], java.math.MathContext);
descriptor: ([CLjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
aload 1
arraylength
aload 2
invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 in [C
0 2 2 mc Ljava/math/MathContext;
MethodParameters:
Name Flags
in
mc
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.String.toCharArray:()[C
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
invokespecial java.math.BigDecimal.<init>:([CII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 val Ljava/lang/String;
MethodParameters:
Name Flags
val
public void <init>(java.lang.String, java.math.MathContext);
descriptor: (Ljava/lang/String;Ljava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.lang.String.toCharArray:()[C
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
aload 2
invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 val Ljava/lang/String;
0 2 2 mc Ljava/math/MathContext;
MethodParameters:
Name Flags
val
mc
public void <init>(double);
descriptor: (D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dload 1
getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 val D
MethodParameters:
Name Flags
val
public void <init>(double, java.math.MathContext);
descriptor: (DLjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=18, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: dload 1
invokestatic java.lang.Double.isInfinite:(D)Z
ifne 2
dload 1
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 3
2: StackMap locals: java.math.BigDecimal double java.math.MathContext
StackMap stack:
new java.lang.NumberFormatException
dup
ldc "Infinite or NaN"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
dload 1
invokestatic java.lang.Double.doubleToLongBits:(D)J
lstore 4
start local 4 4: lload 4
bipush 63
lshr
lconst_0
lcmp
ifne 5
iconst_1
goto 6
StackMap locals: long
StackMap stack:
5: iconst_m1
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: lload 4
bipush 52
lshr
ldc 2047
land
l2i
istore 7
start local 7 8: iload 7
ifne 10
9: lload 4
ldc 4503599627370495
land
iconst_1
lshl
goto 11
10: StackMap locals: int int
StackMap stack:
lload 4
ldc 4503599627370495
land
ldc 4503599627370496
lor
11: StackMap locals:
StackMap stack: long
lstore 8
start local 8 12: iinc 7 -1075
13: lload 8
lconst_0
lcmp
ifne 21
14: aload 0
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
15: aload 0
iconst_0
putfield java.math.BigDecimal.scale:I
16: aload 0
lconst_0
putfield java.math.BigDecimal.intCompact:J
17: aload 0
iconst_1
putfield java.math.BigDecimal.precision:I
18: return
19: StackMap locals: long
StackMap stack:
lload 8
iconst_1
lshr
lstore 8
20: iinc 7 1
21: StackMap locals:
StackMap stack:
lload 8
lconst_1
land
lconst_0
lcmp
ifeq 19
22: iconst_0
istore 10
start local 10 23: iload 6
i2l
lload 8
lmul
lstore 12
start local 12 24: iload 7
ifne 29
25: lload 12
ldc -9223372036854775808
lcmp
ifne 26
getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
goto 27
StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int top long
StackMap stack:
26: aconst_null
StackMap locals:
StackMap stack: java.math.BigInteger
27: astore 11
start local 11 28: goto 35
end local 11 29: StackMap locals:
StackMap stack:
iload 7
ifge 33
30: ldc 5
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
iload 7
ineg
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
lload 12
invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
astore 11
start local 11 31: iload 7
ineg
istore 10
32: goto 34
end local 11 33: StackMap locals:
StackMap stack:
getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
iload 7
invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
lload 12
invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
astore 11
start local 11 34: StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long
StackMap stack:
aload 11
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 12
35: StackMap locals:
StackMap stack:
iconst_0
istore 14
start local 14 36: aload 3
getfield java.math.MathContext.precision:I
istore 15
start local 15 37: iload 15
ifle 61
38: aload 3
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
istore 16
start local 16 39: lload 12
ldc -9223372036854775808
lcmp
ifne 51
40: aload 11
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 14
41: iload 14
iload 15
isub
istore 17
start local 17 42: goto 50
43: StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long int int int int
StackMap stack:
iload 10
i2l
iload 17
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 10
44: aload 11
iload 17
iload 16
invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
astore 11
45: aload 11
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 12
46: lload 12
ldc -9223372036854775808
lcmp
ifeq 48
47: goto 51
48: StackMap locals:
StackMap stack:
aload 11
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 14
49: iload 14
iload 15
isub
istore 17
50: StackMap locals:
StackMap stack:
iload 17
ifgt 43
end local 17 51: StackMap locals:
StackMap stack:
lload 12
ldc -9223372036854775808
lcmp
ifeq 61
52: lload 12
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 14
53: iload 14
iload 15
isub
istore 17
start local 17 54: goto 59
55: StackMap locals: int
StackMap stack:
iload 10
i2l
iload 17
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 10
56: lload 12
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 17
laload
aload 3
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 12
57: lload 12
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 14
58: iload 14
iload 15
isub
istore 17
59: StackMap locals:
StackMap stack:
iload 17
ifgt 55
60: aconst_null
astore 11
end local 17 end local 16 61: StackMap locals:
StackMap stack:
aload 0
aload 11
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
62: aload 0
lload 12
putfield java.math.BigDecimal.intCompact:J
63: aload 0
iload 10
putfield java.math.BigDecimal.scale:I
64: aload 0
iload 14
putfield java.math.BigDecimal.precision:I
65: return
end local 15 end local 14 end local 12 end local 11 end local 10 end local 8 end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Ljava/math/BigDecimal;
0 66 1 val D
0 66 3 mc Ljava/math/MathContext;
4 66 4 valBits J
7 66 6 sign I
8 66 7 exponent I
12 66 8 significand J
23 66 10 scl I
28 29 11 rb Ljava/math/BigInteger;
31 33 11 rb Ljava/math/BigInteger;
34 66 11 rb Ljava/math/BigInteger;
24 66 12 compactVal J
36 66 14 prec I
37 66 15 mcp I
39 61 16 mode I
42 51 17 drop I
54 61 17 drop I
MethodParameters:
Name Flags
val
mc
public void <init>(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
iconst_0
putfield java.math.BigDecimal.scale:I
2: aload 0
aload 1
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
3: aload 0
aload 1
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
putfield java.math.BigDecimal.intCompact:J
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/BigDecimal;
0 5 1 val Ljava/math/BigInteger;
MethodParameters:
Name Flags
val
public void <init>(java.math.BigInteger, java.math.MathContext);
descriptor: (Ljava/math/BigInteger;Ljava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
aload 2
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/math/BigDecimal;
0 2 1 val Ljava/math/BigInteger;
0 2 2 mc Ljava/math/MathContext;
MethodParameters:
Name Flags
val
mc
public void <init>(java.math.BigInteger, int);
descriptor: (Ljava/math/BigInteger;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
aload 1
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
2: aload 0
aload 1
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
putfield java.math.BigDecimal.intCompact:J
3: aload 0
iload 2
putfield java.math.BigDecimal.scale:I
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/BigDecimal;
0 5 1 unscaledVal Ljava/math/BigInteger;
0 5 2 scale I
MethodParameters:
Name Flags
unscaledVal
scale
public void <init>(java.math.BigInteger, int, java.math.MathContext);
descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 1
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 4
start local 4 2: aload 3
getfield java.math.MathContext.precision:I
istore 6
start local 6 3: iconst_0
istore 7
start local 7 4: iload 6
ifle 28
5: aload 3
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
istore 8
start local 8 6: lload 4
ldc -9223372036854775808
lcmp
ifne 18
7: aload 1
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 7
8: iload 7
iload 6
isub
istore 9
start local 9 9: goto 17
10: StackMap locals: java.math.BigDecimal java.math.BigInteger int java.math.MathContext long int int int int
StackMap stack:
iload 2
i2l
iload 9
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 2
11: aload 1
iload 9
iload 8
invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
astore 1
12: aload 1
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 4
13: lload 4
ldc -9223372036854775808
lcmp
ifeq 15
14: goto 18
15: StackMap locals:
StackMap stack:
aload 1
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 7
16: iload 7
iload 6
isub
istore 9
17: StackMap locals:
StackMap stack:
iload 9
ifgt 10
end local 9 18: StackMap locals:
StackMap stack:
lload 4
ldc -9223372036854775808
lcmp
ifeq 28
19: lload 4
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 7
20: iload 7
iload 6
isub
istore 9
start local 9 21: goto 26
22: StackMap locals: int
StackMap stack:
iload 2
i2l
iload 9
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 2
23: lload 4
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 9
laload
iload 8
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 4
24: lload 4
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 7
25: iload 7
iload 6
isub
istore 9
26: StackMap locals:
StackMap stack:
iload 9
ifgt 22
27: aconst_null
astore 1
end local 9 end local 8 28: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
29: aload 0
lload 4
putfield java.math.BigDecimal.intCompact:J
30: aload 0
iload 2
putfield java.math.BigDecimal.scale:I
31: aload 0
iload 7
putfield java.math.BigDecimal.precision:I
32: return
end local 7 end local 6 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 Ljava/math/BigDecimal;
0 33 1 unscaledVal Ljava/math/BigInteger;
0 33 2 scale I
0 33 3 mc Ljava/math/MathContext;
2 33 4 compactVal J
3 33 6 mcp I
4 33 7 prec I
6 28 8 mode I
9 18 9 drop I
21 28 9 drop I
MethodParameters:
Name Flags
unscaledVal
scale
mc
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
iload 1
i2l
putfield java.math.BigDecimal.intCompact:J
2: aload 0
iconst_0
putfield java.math.BigDecimal.scale:I
3: aload 0
aconst_null
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/math/BigDecimal;
0 5 1 val I
MethodParameters:
Name Flags
val
public void <init>(int, java.math.MathContext);
descriptor: (ILjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 2
getfield java.math.MathContext.precision:I
istore 3
start local 3 2: iload 1
i2l
lstore 4
start local 4 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: iload 3
ifle 14
6: lload 4
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 7
7: iload 7
iload 3
isub
istore 8
start local 8 8: goto 13
9: StackMap locals: java.math.BigDecimal int java.math.MathContext int long int int int
StackMap stack:
iload 6
i2l
iload 8
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 6
10: lload 4
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 8
laload
aload 2
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 4
11: lload 4
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 7
12: iload 7
iload 3
isub
istore 8
13: StackMap locals:
StackMap stack:
iload 8
ifgt 9
end local 8 14: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
15: aload 0
lload 4
putfield java.math.BigDecimal.intCompact:J
16: aload 0
iload 6
putfield java.math.BigDecimal.scale:I
17: aload 0
iload 7
putfield java.math.BigDecimal.precision:I
18: return
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/math/BigDecimal;
0 19 1 val I
0 19 2 mc Ljava/math/MathContext;
2 19 3 mcp I
3 19 4 compactVal J
4 19 6 scl I
5 19 7 prec I
8 14 8 drop I
MethodParameters:
Name Flags
val
mc
public void <init>(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 0
lload 1
putfield java.math.BigDecimal.intCompact:J
2: aload 0
lload 1
ldc -9223372036854775808
lcmp
ifne 3
getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
goto 4
StackMap locals: java.math.BigDecimal long
StackMap stack: java.math.BigDecimal
3: aconst_null
StackMap locals: java.math.BigDecimal long
StackMap stack: java.math.BigDecimal java.math.BigInteger
4: putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
5: aload 0
iconst_0
putfield java.math.BigDecimal.scale:I
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/math/BigDecimal;
0 7 1 val J
MethodParameters:
Name Flags
val
public void <init>(long, java.math.MathContext);
descriptor: (JLjava/math/MathContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial java.lang.Number.<init>:()V
1: aload 3
getfield java.math.MathContext.precision:I
istore 4
start local 4 2: aload 3
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: lload 1
ldc -9223372036854775808
lcmp
ifne 6
getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
goto 7
StackMap locals: java.math.BigDecimal long java.math.MathContext int int int int
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: java.math.BigInteger
7: astore 8
start local 8 8: iload 4
ifle 31
9: lload 1
ldc -9223372036854775808
lcmp
ifne 21
10: bipush 19
istore 6
11: iload 6
iload 4
isub
istore 9
start local 9 12: goto 20
13: StackMap locals: java.math.BigInteger int
StackMap stack:
iload 7
i2l
iload 9
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 7
14: aload 8
iload 9
iload 5
invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
astore 8
15: aload 8
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 1
16: lload 1
ldc -9223372036854775808
lcmp
ifeq 18
17: goto 21
18: StackMap locals:
StackMap stack:
aload 8
invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
istore 6
19: iload 6
iload 4
isub
istore 9
20: StackMap locals:
StackMap stack:
iload 9
ifgt 13
end local 9 21: StackMap locals:
StackMap stack:
lload 1
ldc -9223372036854775808
lcmp
ifeq 31
22: lload 1
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 6
23: iload 6
iload 4
isub
istore 9
start local 9 24: goto 29
25: StackMap locals: int
StackMap stack:
iload 7
i2l
iload 9
i2l
lsub
invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
istore 7
26: lload 1
getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
iload 9
laload
aload 3
getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
getfield java.math.RoundingMode.oldMode:I
invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
lstore 1
27: lload 1
invokestatic java.math.BigDecimal.longDigitLength:(J)I
istore 6
28: iload 6
iload 4
isub
istore 9
29: StackMap locals:
StackMap stack:
iload 9
ifgt 25
30: aconst_null
astore 8
end local 9 31: StackMap locals:
StackMap stack:
aload 0
aload 8
putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
32: aload 0
lload 1
putfield java.math.BigDecimal.intCompact:J
33: aload 0
iload 7
putfield java.math.BigDecimal.scale:I
34: aload 0
iload 6
putfield java.math.BigDecimal.precision:I
35: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljava/math/BigDecimal;
0 36 1 val J
0 36 3 mc Ljava/math/MathContext;
2 36 4 mcp I
3 36 5 mode I
4 36 6 prec I
5 36 7 scl I
8 36 8 rb Ljava/math/BigInteger;
12 21 9 drop I
24 31 9 drop I
MethodParameters:
Name Flags
val
mc
public static java.math.BigDecimal valueOf(long, int);
descriptor: (JI)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 2 0: iload 2
ifne 2
1: lload 0
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
areturn
2: StackMap locals:
StackMap stack:
lload 0
lconst_0
lcmp
ifne 4
3: iload 2
invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
areturn
4: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
lload 0
ldc -9223372036854775808
lcmp
ifne 6
5: getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
goto 7
StackMap locals: long int
StackMap stack: new 4 new 4
6: aconst_null
7: StackMap locals: long int
StackMap stack: new 4 new 4 java.math.BigInteger
lload 0
iload 2
iconst_0
8: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 unscaledVal J
0 9 2 scale I
MethodParameters:
Name Flags
unscaledVal
scale
public static java.math.BigDecimal valueOf(long);
descriptor: (J)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=2, args_size=1
start local 0 0: lload 0
lconst_0
lcmp
iflt 2
lload 0
getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
arraylength
i2l
lcmp
ifge 2
1: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
lload 0
l2i
aaload
areturn
2: StackMap locals:
StackMap stack:
lload 0
ldc -9223372036854775808
lcmp
ifeq 4
3: new java.math.BigDecimal
dup
aconst_null
lload 0
iconst_0
iconst_0
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
4: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
lload 0
iconst_0
iconst_0
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 val J
MethodParameters:
Name Flags
val
static java.math.BigDecimal valueOf(long, int, int);
descriptor: (JII)Ljava/math/BigDecimal;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 2 start local 3 0: iload 2
ifne 2
lload 0
lconst_0
lcmp
iflt 2
lload 0
getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
arraylength
i2l
lcmp
ifge 2
1: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
lload 0
l2i
aaload
areturn
2: StackMap locals:
StackMap stack:
lload 0
lconst_0
lcmp
ifne 4
3: iload 2
invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
areturn
4: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
lload 0
ldc -9223372036854775808
lcmp
ifne 5
getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
goto 6
StackMap locals: long int int
StackMap stack: new 4 new 4
5: aconst_null
6: StackMap locals: long int int
StackMap stack: new 4 new 4 java.math.BigInteger
lload 0
iload 2
iload 3
7: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 unscaledVal J
0 8 2 scale I
0 8 3 prec I
MethodParameters:
Name Flags
unscaledVal
scale
prec
static java.math.BigDecimal valueOf(java.math.BigInteger, int, int);
descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
ifne 3
2: iload 1
invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
areturn
3: StackMap locals: long
StackMap stack:
iload 1
ifne 5
lload 3
lconst_0
lcmp
iflt 5
lload 3
getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
arraylength
i2l
lcmp
ifge 5
4: getstatic java.math.BigDecimal.ZERO_THROUGH_TEN:[Ljava/math/BigDecimal;
lload 3
l2i
aaload
areturn
5: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
aload 0
lload 3
iload 1
iload 2
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 intVal Ljava/math/BigInteger;
0 6 1 scale I
0 6 2 prec I
1 6 3 val J
MethodParameters:
Name Flags
intVal
scale
prec
static java.math.BigDecimal zeroValueOf(int);
descriptor: (I)Ljava/math/BigDecimal;
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: iload 0
iflt 2
iload 0
getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
arraylength
if_icmpge 2
1: getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
iload 0
aaload
areturn
2: StackMap locals:
StackMap stack:
new java.math.BigDecimal
dup
getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
lconst_0
iload 0
iconst_1
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0