class com.google.common.math.LongMath$MillerRabinTester$2 extends com.google.common.math.LongMath$MillerRabinTester
minor version: 0
major version: 59
flags: flags: (0x4020) ACC_SUPER, ACC_ANNOTATION
this_class: com.google.common.math.LongMath$MillerRabinTester$2
super_class: com.google.common.math.LongMath$MillerRabinTester
{
void <init>(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
0: .line 1108
aload 0 /* this */
aload 1
iload 2
invokespecial com.google.common.math.LongMath$MillerRabinTester.<init>:(Ljava/lang/String;I)V
return
end local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/LongMath$MillerRabinTester$2;
MethodParameters:
Name Flags
$enum$name
$enum$ordinal
private long plusMod(long, long, long);
descriptor: (JJJ)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
start local 1 // long a
start local 3 // long b
start local 5 // long m
0: .line 1111
lload 1 /* a */
lload 5 /* m */
lload 3 /* b */
lsub
lcmp
iflt 1
lload 1 /* a */
lload 3 /* b */
ladd
lload 5 /* m */
lsub
goto 2
StackMap locals:
StackMap stack:
1: lload 1 /* a */
lload 3 /* b */
ladd
StackMap locals:
StackMap stack: long
2: lreturn
end local 5 // long m
end local 3 // long b
end local 1 // long a
end local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/math/LongMath$MillerRabinTester$2;
0 3 1 a J
0 3 3 b J
0 3 5 m J
MethodParameters:
Name Flags
a
b
m
private long times2ToThe32Mod(long, long);
descriptor: (JJ)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
start local 1 // long a
start local 3 // long m
0: .line 1116
bipush 32
istore 5 /* remainingPowersOf2 */
start local 5 // int remainingPowersOf2
1: .line 1118
StackMap locals: int
StackMap stack:
iload 5 /* remainingPowersOf2 */
lload 1 /* a */
invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
invokestatic java.lang.Math.min:(II)I
istore 6 /* shift */
start local 6 // int shift
2: .line 1121
lload 1 /* a */
iload 6 /* shift */
lshl
lload 3 /* m */
invokestatic com.google.common.primitives.UnsignedLongs.remainder:(JJ)J
lstore 1 /* a */
3: .line 1122
iload 5 /* remainingPowersOf2 */
iload 6 /* shift */
isub
istore 5 /* remainingPowersOf2 */
end local 6 // int shift
4: .line 1123
iload 5 /* remainingPowersOf2 */
5: .line 1117
ifgt 1
6: .line 1124
lload 1 /* a */
lreturn
end local 5 // int remainingPowersOf2
end local 3 // long m
end local 1 // long a
end local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/math/LongMath$MillerRabinTester$2;
0 7 1 a J
0 7 3 m J
1 7 5 remainingPowersOf2 I
2 4 6 shift I
MethodParameters:
Name Flags
a
m
long mulMod(long, long, long);
descriptor: (JJJ)J
flags: (0x0000)
Code:
stack=7, locals=17, args_size=4
start local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
start local 1 // long a
start local 3 // long b
start local 5 // long m
0: .line 1129
lload 1 /* a */
bipush 32
lushr
lstore 7 /* aHi */
start local 7 // long aHi
1: .line 1130
lload 3 /* b */
bipush 32
lushr
lstore 9 /* bHi */
start local 9 // long bHi
2: .line 1131
lload 1 /* a */
ldc 4294967295
land
lstore 11 /* aLo */
start local 11 // long aLo
3: .line 1132
lload 3 /* b */
ldc 4294967295
land
lstore 13 /* bLo */
start local 13 // long bLo
4: .line 1142
aload 0 /* this */
lload 7 /* aHi */
lload 9 /* bHi */
lmul
lload 5 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.times2ToThe32Mod:(JJ)J
lstore 15 /* result */
start local 15 // long result
5: .line 1143
lload 15 /* result */
lload 7 /* aHi */
lload 13 /* bLo */
lmul
ladd
lstore 15 /* result */
6: .line 1144
lload 15 /* result */
lconst_0
lcmp
ifge 8
7: .line 1145
lload 15 /* result */
lload 5 /* m */
invokestatic com.google.common.primitives.UnsignedLongs.remainder:(JJ)J
lstore 15 /* result */
8: .line 1148
StackMap locals: com.google.common.math.LongMath$MillerRabinTester$2 long long long long long long long long
StackMap stack:
lload 15 /* result */
lload 11 /* aLo */
lload 9 /* bHi */
lmul
ladd
lstore 15 /* result */
9: .line 1149
aload 0 /* this */
lload 15 /* result */
lload 5 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.times2ToThe32Mod:(JJ)J
lstore 15 /* result */
10: .line 1150
aload 0 /* this */
lload 15 /* result */
lload 11 /* aLo */
lload 13 /* bLo */
lmul
lload 5 /* m */
invokestatic com.google.common.primitives.UnsignedLongs.remainder:(JJ)J
lload 5 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.plusMod:(JJJ)J
lreturn
end local 15 // long result
end local 13 // long bLo
end local 11 // long aLo
end local 9 // long bHi
end local 7 // long aHi
end local 5 // long m
end local 3 // long b
end local 1 // long a
end local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/google/common/math/LongMath$MillerRabinTester$2;
0 11 1 a J
0 11 3 b J
0 11 5 m J
1 11 7 aHi J
2 11 9 bHi J
3 11 11 aLo J
4 11 13 bLo J
5 11 15 result J
MethodParameters:
Name Flags
a
b
m
long squareMod(long, long);
descriptor: (JJ)J
flags: (0x0000)
Code:
stack=7, locals=13, args_size=3
start local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
start local 1 // long a
start local 3 // long m
0: .line 1155
lload 1 /* a */
bipush 32
lushr
lstore 5 /* aHi */
start local 5 // long aHi
1: .line 1156
lload 1 /* a */
ldc 4294967295
land
lstore 7 /* aLo */
start local 7 // long aLo
2: .line 1165
aload 0 /* this */
lload 5 /* aHi */
lload 5 /* aHi */
lmul
lload 3 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.times2ToThe32Mod:(JJ)J
lstore 9 /* result */
start local 9 // long result
3: .line 1166
lload 5 /* aHi */
lload 7 /* aLo */
lmul
ldc 2
lmul
lstore 11 /* hiLo */
start local 11 // long hiLo
4: .line 1167
lload 11 /* hiLo */
lconst_0
lcmp
ifge 6
5: .line 1168
lload 11 /* hiLo */
lload 3 /* m */
invokestatic com.google.common.primitives.UnsignedLongs.remainder:(JJ)J
lstore 11 /* hiLo */
6: .line 1171
StackMap locals: com.google.common.math.LongMath$MillerRabinTester$2 long long long long long long
StackMap stack:
lload 9 /* result */
lload 11 /* hiLo */
ladd
lstore 9 /* result */
7: .line 1172
aload 0 /* this */
lload 9 /* result */
lload 3 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.times2ToThe32Mod:(JJ)J
lstore 9 /* result */
8: .line 1173
aload 0 /* this */
lload 9 /* result */
lload 7 /* aLo */
lload 7 /* aLo */
lmul
lload 3 /* m */
invokestatic com.google.common.primitives.UnsignedLongs.remainder:(JJ)J
lload 3 /* m */
invokevirtual com.google.common.math.LongMath$MillerRabinTester$2.plusMod:(JJJ)J
lreturn
end local 11 // long hiLo
end local 9 // long result
end local 7 // long aLo
end local 5 // long aHi
end local 3 // long m
end local 1 // long a
end local 0 // com.google.common.math.LongMath$MillerRabinTester$2 this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/math/LongMath$MillerRabinTester$2;
0 9 1 a J
0 9 3 m J
1 9 5 aHi J
2 9 7 aLo J
3 9 9 result J
4 9 11 hiLo J
MethodParameters:
Name Flags
a
m
}
SourceFile: "LongMath.java"
EnclosingMethod: com.google.common.math.LongMath$MillerRabinTester
NestHost: com.google.common.math.LongMath
InnerClasses:
private abstract MillerRabinTester = com.google.common.math.LongMath$MillerRabinTester of com.google.common.math.LongMath
com.google.common.math.LongMath$MillerRabinTester$2