public abstract class sun.security.util.math.intpoly.IntegerPolynomial implements sun.security.util.math.IntegerFieldModuloP
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.util.math.intpoly.IntegerPolynomial
super_class: java.lang.Object
{
protected static final java.math.BigInteger TWO;
descriptor: Ljava/math/BigInteger;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected final int numLimbs;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final java.math.BigInteger modulus;
descriptor: Ljava/math/BigInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final int bitsPerLimb;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final long[] posModLimbs;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxAdds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc 2
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic sun.security.util.math.intpoly.IntegerPolynomial.TWO:Ljava/math/BigInteger;
return
LocalVariableTable:
Start End Slot Name Signature
protected abstract void reduce(long[]);
descriptor: ([J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
a
protected void multByInt(long[], long);
descriptor: ([JJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 4
start local 4 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 4
dup2
laload
lload 2
lmul
lastore
3: iinc 4 1
StackMap locals:
StackMap stack:
4: iload 4
aload 1
arraylength
if_icmplt 2
end local 4 5: aload 0
aload 1
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.reduce:([J)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 7 1 a [J
0 7 2 b J
1 5 4 i I
MethodParameters:
Name Flags
a
b
protected abstract void mult(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
a
b
r
protected abstract void square(long[], long[]);
descriptor: ([J[J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
a
r
void <init>(int, int, int, java.math.BigInteger);
descriptor: (IIILjava/math/BigInteger;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 2
putfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
2: aload 0
aload 4
putfield sun.security.util.math.intpoly.IntegerPolynomial.modulus:Ljava/math/BigInteger;
3: aload 0
iload 1
putfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
4: aload 0
iload 3
putfield sun.security.util.math.intpoly.IntegerPolynomial.maxAdds:I
5: aload 0
aload 0
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.setPosModLimbs:()[J
putfield sun.security.util.math.intpoly.IntegerPolynomial.posModLimbs:[J
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 7 1 bitsPerLimb I
0 7 2 numLimbs I
0 7 3 maxAdds I
0 7 4 modulus Ljava/math/BigInteger;
MethodParameters:
Name Flags
bitsPerLimb
numLimbs
maxAdds
modulus
private long[] setPosModLimbs();
descriptor: ()[J
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
newarray 11
astore 1
start local 1 1: aload 0
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.modulus:Ljava/math/BigInteger;
aload 1
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.setLimbsValuePositive:(Ljava/math/BigInteger;[J)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
1 3 1 result [J
protected int getNumLimbs();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
public int getMaxAdds();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.maxAdds:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
public java.math.BigInteger getSize();
descriptor: ()Ljava/math/BigInteger;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.modulus:Ljava/math/BigInteger;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
public sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement get0();
descriptor: ()Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement
dup
aload 0
iconst_0
invokespecial sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement.<init>:(Lsun/security/util/math/intpoly/IntegerPolynomial;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
public sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement get1();
descriptor: ()Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement
dup
aload 0
iconst_1
invokespecial sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement.<init>:(Lsun/security/util/math/intpoly/IntegerPolynomial;Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
public sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement getElement(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement
dup
aload 0
aload 1
invokespecial sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement.<init>:(Lsun/security/util/math/intpoly/IntegerPolynomial;Ljava/math/BigInteger;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 1 1 v Ljava/math/BigInteger;
MethodParameters:
Name Flags
v
public sun.security.util.math.SmallValue getSmallValue(int);
descriptor: (I)Lsun/security/util/math/SmallValue;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_1
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iconst_1
isub
ishl
istore 2
start local 2 1: iload 1
invokestatic java.lang.Math.abs:(I)I
iload 2
if_icmplt 5
2: new java.lang.IllegalArgumentException
dup
3: new java.lang.StringBuilder
dup
ldc "max magnitude is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: int
StackMap stack:
new sun.security.util.math.intpoly.IntegerPolynomial$Limb
dup
aload 0
iload 1
invokespecial sun.security.util.math.intpoly.IntegerPolynomial$Limb.<init>:(Lsun/security/util/math/intpoly/IntegerPolynomial;I)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 6 1 value I
1 6 2 maxMag I
MethodParameters:
Name Flags
value
protected void encode(java.nio.ByteBuffer, int, byte, long[]);
descriptor: (Ljava/nio/ByteBuffer;IB[J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: bipush 32
iload 3
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
istore 5
start local 5 1: bipush 8
iload 2
imul
iload 5
iadd
istore 6
start local 6 2: iload 6
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iadd
iconst_1
isub
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
idiv
istore 7
start local 7 3: iload 7
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
if_icmple 8
4: iload 7
newarray 11
astore 8
start local 8 5: aload 0
aload 1
iload 2
iload 3
aload 8
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.encodeSmall:(Ljava/nio/ByteBuffer;IB[J)V
6: aload 8
iconst_0
aload 4
iconst_0
aload 4
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 8 7: goto 9
8: StackMap locals: int int int
StackMap stack:
aload 0
aload 1
iload 2
iload 3
aload 4
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.encodeSmall:(Ljava/nio/ByteBuffer;IB[J)V
9: StackMap locals:
StackMap stack:
return
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 10 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 10 1 buf Ljava/nio/ByteBuffer;
0 10 2 length I
0 10 3 highByte B
0 10 4 result [J
1 10 5 numHighBits I
2 10 6 numBits I
3 10 7 requiredLimbs I
5 7 8 temp [J
MethodParameters:
Name Flags
buf
length
highByte
result
protected void encodeSmall(java.nio.ByteBuffer, int, byte, long[]);
descriptor: (Ljava/nio/ByteBuffer;IB[J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: lconst_0
lstore 6
start local 6 2: iconst_0
istore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 16
5: StackMap locals: sun.security.util.math.intpoly.IntegerPolynomial java.nio.ByteBuffer int int long[] int long int int
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
i2l
lstore 10
start local 10 6: iload 8
bipush 8
iadd
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
if_icmplt 13
7: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iload 8
isub
istore 12
start local 12 8: lload 6
lload 10
sipush 255
bipush 8
iload 12
isub
ishr
i2l
land
iload 8
lshl
ladd
lstore 6
9: aload 4
iload 5
iinc 5 1
lload 6
lastore
10: lload 10
iload 12
lshr
lstore 6
11: bipush 8
iload 12
isub
istore 8
end local 12 12: goto 15
13: StackMap locals: long
StackMap stack:
lload 6
lload 10
iload 8
lshl
ladd
lstore 6
14: iinc 8 8
end local 10 15: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
16: iload 9
iload 2
if_icmplt 5
end local 9 17: iload 3
ifeq 26
18: iload 3
sipush 255
iand
i2l
lstore 9
start local 9 19: iload 8
bipush 8
iadd
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
if_icmplt 25
20: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iload 8
isub
istore 11
start local 11 21: lload 6
lload 9
sipush 255
bipush 8
iload 11
isub
ishr
i2l
land
iload 8
lshl
ladd
lstore 6
22: aload 4
iload 5
iinc 5 1
lload 6
lastore
23: lload 9
iload 11
lshr
lstore 6
end local 11 24: goto 26
25: StackMap locals: sun.security.util.math.intpoly.IntegerPolynomial java.nio.ByteBuffer int int long[] int long int long
StackMap stack:
lload 6
lload 9
iload 8
lshl
ladd
lstore 6
end local 9 26: StackMap locals:
StackMap stack:
iload 5
aload 4
arraylength
if_icmpge 28
27: aload 4
iload 5
iinc 5 1
lload 6
lastore
28: StackMap locals:
StackMap stack:
aload 4
iload 5
aload 4
arraylength
lconst_0
invokestatic java.util.Arrays.fill:([JIIJ)V
29: aload 0
aload 4
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.postEncodeCarry:([J)V
30: return
end local 8 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 31 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 31 1 buf Ljava/nio/ByteBuffer;
0 31 2 length I
0 31 3 highByte B
0 31 4 result [J
1 31 5 limbIndex I
2 31 6 curLimbValue J
3 31 8 bitPos I
4 17 9 i I
6 15 10 curV J
8 12 12 bitsThisLimb I
19 26 9 curV J
21 24 11 bitsThisLimb I
MethodParameters:
Name Flags
buf
length
highByte
result
protected void encode(byte[], int, int, byte, long[]);
descriptor: ([BIIB[J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
iload 2
iload 3
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
astore 6
start local 6 1: aload 6
getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
2: aload 0
aload 6
iload 3
iload 4
aload 5
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.encode:(Ljava/nio/ByteBuffer;IB[J)V
3: return
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 4 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 4 1 v [B
0 4 2 offset I
0 4 3 length I
0 4 4 highByte B
0 4 5 result [J
1 4 6 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
v
offset
length
highByte
result
protected void postEncodeCarry(long[]);
descriptor: ([J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.reduce:([J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 2 1 v [J
MethodParameters:
Name Flags
v
public sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement getElement(byte[], int, int, byte);
descriptor: ([BIIB)Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
newarray 11
astore 5
start local 5 1: aload 0
aload 1
iload 2
iload 3
iload 4
aload 5
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.encode:([BIIB[J)V
2: new sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement
dup
aload 0
aload 5
iconst_0
invokespecial sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement.<init>:(Lsun/security/util/math/intpoly/IntegerPolynomial;[JI)V
areturn
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 3 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 3 1 v [B
0 3 2 offset I
0 3 3 length I
0 3 4 highByte B
1 3 5 result [J
MethodParameters:
Name Flags
v
offset
length
highByte
protected java.math.BigInteger evaluate(long[]);
descriptor: ([J)Ljava/math/BigInteger;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
astore 2
start local 2 1: aload 1
arraylength
iconst_1
isub
istore 3
start local 3 2: goto 7
3: StackMap locals: java.math.BigInteger int
StackMap stack:
aload 2
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
4: aload 1
iload 3
laload
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
5: astore 2
6: iinc 3 -1
StackMap locals:
StackMap stack:
7: iload 3
ifge 3
end local 3 8: aload 2
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.modulus:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 9 1 limbs [J
1 9 2 result Ljava/math/BigInteger;
2 8 3 i I
MethodParameters:
Name Flags
limbs
protected long carryValue(long);
descriptor: (J)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: lload 1
iconst_1
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iconst_1
isub
ishl
i2l
ladd
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshr
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 1 1 x J
MethodParameters:
Name Flags
x
protected void carry(long[], int, int);
descriptor: ([JII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
istore 4
start local 4 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 4
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.carryOut:([JI)J
lstore 5
start local 5 3: aload 1
iload 4
iconst_1
iadd
dup2
laload
lload 5
ladd
lastore
end local 5 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 3
if_icmplt 2
end local 4 6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 7 1 limbs [J
0 7 2 start I
0 7 3 end I
1 6 4 i I
3 4 5 carry J
MethodParameters:
Name Flags
limbs
start
end
protected void carry(long[]);
descriptor: ([J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
aload 1
arraylength
iconst_1
isub
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.carry:([JII)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 2 1 limbs [J
MethodParameters:
Name Flags
limbs
protected long carryOut(long[], int);
descriptor: ([JI)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
laload
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.carryValue:(J)J
lstore 3
start local 3 1: aload 1
iload 2
dup2
laload
lload 3
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshl
lsub
lastore
2: lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 3 1 limbs [J
0 3 2 index I
1 3 3 carry J
MethodParameters:
Name Flags
limbs
index
private void setLimbsValue(java.math.BigInteger, long[]);
descriptor: (Ljava/math/BigInteger;[J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.setLimbsValuePositive:(Ljava/math/BigInteger;[J)V
1: aload 0
aload 2
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.carry:([J)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 3 1 v Ljava/math/BigInteger;
0 3 2 limbs [J
MethodParameters:
Name Flags
v
limbs
protected void setLimbsValuePositive(java.math.BigInteger, long[]);
descriptor: (Ljava/math/BigInteger;[J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
ishl
i2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 6
3: StackMap locals: java.math.BigInteger int
StackMap stack:
aload 2
iload 4
aload 1
aload 3
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.longValue:()J
lastore
4: aload 1
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
astore 1
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
aload 2
arraylength
if_icmplt 3
end local 4 7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 8 1 v Ljava/math/BigInteger;
0 8 2 limbs [J
1 8 3 mod Ljava/math/BigInteger;
2 7 4 i I
MethodParameters:
Name Flags
v
limbs
protected abstract void finalCarryReduceLast(long[]);
descriptor: ([J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
limbs
protected void finalReduce(long[]);
descriptor: ([J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 13
2: StackMap locals: int
StackMap stack:
aload 0
aload 1
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.finalCarryReduceLast:([J)V
3: lconst_0
lstore 3
start local 3 4: iconst_0
istore 5
start local 5 5: goto 10
6: StackMap locals: long int
StackMap stack:
aload 1
iload 5
dup2
laload
lload 3
ladd
lastore
7: aload 1
iload 5
laload
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshr
lstore 3
8: aload 1
iload 5
dup2
laload
lload 3
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshl
lsub
lastore
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
iconst_1
isub
if_icmplt 6
end local 5 11: aload 1
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
iconst_1
isub
dup2
laload
lload 3
ladd
lastore
end local 3 12: iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
iconst_2
if_icmplt 2
end local 2 14: iconst_1
istore 2
start local 2 15: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
newarray 11
astore 3
start local 3 16: aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
iconst_1
isub
istore 4
start local 4 17: goto 21
18: StackMap locals: long[] int
StackMap stack:
aload 3
iload 4
aload 1
iload 4
laload
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.posModLimbs:[J
iload 4
laload
lsub
lastore
19: iload 2
aload 3
iload 4
laload
bipush 63
lshr
l2i
iconst_1
iadd
imul
istore 2
20: iinc 4 -1
StackMap locals:
StackMap stack:
21: iload 4
ifge 18
end local 4 22: iload 2
aload 1
aload 3
invokestatic sun.security.util.math.intpoly.IntegerPolynomial.conditionalSwap:(I[J[J)V
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 24 1 limbs [J
1 14 2 pass I
4 12 3 carry J
5 11 5 i I
15 24 2 smallerNonNegative I
16 24 3 smaller [J
17 22 4 i I
MethodParameters:
Name Flags
limbs
protected void decode(long[], byte[], int, int);
descriptor: ([J[BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=13, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_0
istore 5
start local 5 1: aload 1
iload 5
iinc 5 1
laload
lstore 6
start local 6 2: iconst_0
istore 8
start local 8 3: iconst_0
istore 9
start local 9 4: goto 23
5: StackMap locals: sun.security.util.math.intpoly.IntegerPolynomial long[] byte[] int int int long int int
StackMap stack:
iload 9
iload 3
iadd
istore 10
start local 10 6: iload 8
bipush 8
iadd
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
if_icmplt 19
7: aload 2
iload 10
lload 6
l2i
i2b
bastore
8: lconst_0
lstore 6
9: iload 5
aload 1
arraylength
if_icmpge 11
10: aload 1
iload 5
iinc 5 1
laload
lstore 6
11: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
iload 8
isub
istore 11
start local 11 12: bipush 8
iload 11
isub
istore 12
start local 12 13: aload 2
iload 10
dup2
baload
i2l
lload 6
sipush 255
iload 11
ishr
i2l
land
14: iload 11
lshl
15: ladd
l2i
i2b
bastore
16: lload 6
iload 12
lshr
lstore 6
17: iload 12
istore 8
end local 12 end local 11 18: goto 22
19: StackMap locals:
StackMap stack:
aload 2
iload 10
lload 6
l2i
i2b
bastore
20: lload 6
bipush 8
lshr
lstore 6
21: iinc 8 8
end local 10 22: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
23: iload 9
iload 4
if_icmplt 5
end local 9 24: return
end local 8 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 25 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 25 1 v [J
0 25 2 dst [B
0 25 3 offset I
0 25 4 length I
1 25 5 nextLimbIndex I
2 25 6 curLimbValue J
3 25 8 bitPos I
4 24 9 i I
6 22 10 dstIndex I
12 18 11 bitsAdded I
13 18 12 bitsLeft I
MethodParameters:
Name Flags
v
dst
offset
length
protected void addLimbs(long[], long[], long[]);
descriptor: ([J[J[J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 3
iload 4
aload 1
iload 4
laload
aload 2
iload 4
laload
ladd
lastore
3: iinc 4 1
StackMap locals:
StackMap stack:
4: iload 4
aload 3
arraylength
if_icmplt 2
end local 4 5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 6 1 a [J
0 6 2 b [J
0 6 3 dst [J
1 5 4 i I
MethodParameters:
Name Flags
a
b
dst
protected static void conditionalAssign(int, long[], long[]);
descriptor: (I[J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
iload 0
isub
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 6
3: StackMap locals: int int
StackMap stack:
iload 3
i2l
aload 1
iload 4
laload
aload 2
iload 4
laload
lxor
land
lstore 5
start local 5 4: aload 1
iload 4
lload 5
aload 1
iload 4
laload
lxor
lastore
end local 5 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
aload 1
arraylength
if_icmplt 3
end local 4 7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 set I
0 8 1 a [J
0 8 2 b [J
1 8 3 maskValue I
2 7 4 i I
4 5 5 dummyLimbs J
MethodParameters:
Name Flags
set
a
b
protected static void conditionalSwap(int, long[], long[]);
descriptor: (I[J[J)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
iload 0
isub
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 7
3: StackMap locals: int int
StackMap stack:
iload 3
i2l
aload 1
iload 4
laload
aload 2
iload 4
laload
lxor
land
lstore 5
start local 5 4: aload 1
iload 4
lload 5
aload 1
iload 4
laload
lxor
lastore
5: aload 2
iload 4
lload 5
aload 2
iload 4
laload
lxor
lastore
end local 5 6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
aload 1
arraylength
if_icmplt 3
end local 4 8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 swap I
0 9 1 a [J
0 9 2 b [J
1 9 3 maskValue I
2 8 4 i I
4 6 5 dummyLimbs J
MethodParameters:
Name Flags
swap
a
b
protected void limbsToByteArray(long[], byte[]);
descriptor: ([J[B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual long[].clone:()Ljava/lang/Object;
checkcast long[]
astore 3
start local 3 1: aload 0
aload 3
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.finalReduce:([J)V
2: aload 0
aload 3
aload 2
iconst_0
aload 2
arraylength
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.decode:([J[BII)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 4 1 limbs [J
0 4 2 result [B
1 4 3 reducedLimbs [J
MethodParameters:
Name Flags
limbs
result
protected void addLimbsModPowerTwo(long[], long[], byte[]);
descriptor: ([J[J[B)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual long[].clone:()Ljava/lang/Object;
checkcast long[]
astore 4
start local 4 1: aload 1
invokevirtual long[].clone:()Ljava/lang/Object;
checkcast long[]
astore 5
start local 5 2: aload 0
aload 4
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.finalReduce:([J)V
3: aload 0
aload 5
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.finalReduce:([J)V
4: aload 0
aload 5
aload 4
aload 5
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.addLimbs:([J[J[J)V
5: lconst_0
lstore 6
start local 6 6: iconst_0
istore 8
start local 8 7: goto 12
8: StackMap locals: sun.security.util.math.intpoly.IntegerPolynomial long[] long[] byte[] long[] long[] long int
StackMap stack:
aload 5
iload 8
dup2
laload
lload 6
ladd
lastore
9: aload 5
iload 8
laload
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshr
lstore 6
10: aload 5
iload 8
dup2
laload
lload 6
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.bitsPerLimb:I
lshl
lsub
lastore
11: iinc 8 1
StackMap locals:
StackMap stack:
12: iload 8
aload 0
getfield sun.security.util.math.intpoly.IntegerPolynomial.numLimbs:I
if_icmplt 8
end local 8 13: aload 0
aload 5
aload 3
iconst_0
aload 3
arraylength
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.decode:([J[BII)V
14: return
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 15 0 this Lsun/security/util/math/intpoly/IntegerPolynomial;
0 15 1 limbs [J
0 15 2 other [J
0 15 3 result [B
1 15 4 reducedOther [J
2 15 5 reducedLimbs [J
6 15 6 carry J
7 13 8 i I
MethodParameters:
Name Flags
limbs
other
result
public sun.security.util.math.ImmutableIntegerModuloP getElement(byte[], int, int, byte);
descriptor: ([BIIB)Lsun/security/util/math/ImmutableIntegerModuloP;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
0: aload 0
aload 1
iload 2
iload 3
iload 4
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.getElement:([BIIB)Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
areturn
LocalVariableTable:
Start End Slot Name Signature
public sun.security.util.math.ImmutableIntegerModuloP getElement(java.math.BigInteger);
descriptor: (Ljava/math/BigInteger;)Lsun/security/util/math/ImmutableIntegerModuloP;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.getElement:(Ljava/math/BigInteger;)Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
areturn
LocalVariableTable:
Start End Slot Name Signature
public sun.security.util.math.ImmutableIntegerModuloP get1();
descriptor: ()Lsun/security/util/math/ImmutableIntegerModuloP;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.get1:()Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
areturn
LocalVariableTable:
Start End Slot Name Signature
public sun.security.util.math.ImmutableIntegerModuloP get0();
descriptor: ()Lsun/security/util/math/ImmutableIntegerModuloP;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.security.util.math.intpoly.IntegerPolynomial.get0:()Lsun/security/util/math/intpoly/IntegerPolynomial$ImmutableElement;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "IntegerPolynomial.java"
NestMembers:
sun.security.util.math.intpoly.IntegerPolynomial$Element sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement sun.security.util.math.intpoly.IntegerPolynomial$Limb sun.security.util.math.intpoly.IntegerPolynomial$MutableElement
InnerClasses:
private abstract Element = sun.security.util.math.intpoly.IntegerPolynomial$Element of sun.security.util.math.intpoly.IntegerPolynomial
ImmutableElement = sun.security.util.math.intpoly.IntegerPolynomial$ImmutableElement of sun.security.util.math.intpoly.IntegerPolynomial
Limb = sun.security.util.math.intpoly.IntegerPolynomial$Limb of sun.security.util.math.intpoly.IntegerPolynomial
protected MutableElement = sun.security.util.math.intpoly.IntegerPolynomial$MutableElement of sun.security.util.math.intpoly.IntegerPolynomial