class org.graalvm.compiler.core.common.type.IntegerStamp$8 extends org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$Rem
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.graalvm.compiler.core.common.type.IntegerStamp$8
super_class: org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$Rem
{
void <init>(boolean, boolean);
descriptor: (ZZ)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
start local 1 // boolean $anonymous0
start local 2 // boolean $anonymous1
0: .line 1112
aload 0 /* this */
iload 1 /* $anonymous0 */
iload 2 /* $anonymous1 */
invokespecial org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$Rem.<init>:(ZZ)V
return
end local 2 // boolean $anonymous1
end local 1 // boolean $anonymous0
end local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/core/common/type/IntegerStamp$8;
0 1 1 $anonymous0 Z
0 1 2 $anonymous1 Z
MethodParameters:
Name Flags
$anonymous0
$anonymous1
public jdk.vm.ci.meta.Constant foldConstant(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
start local 1 // jdk.vm.ci.meta.Constant const1
start local 2 // jdk.vm.ci.meta.Constant const2
0: .line 1116
aload 1 /* const1 */
checkcast jdk.vm.ci.meta.PrimitiveConstant
astore 3 /* a */
start local 3 // jdk.vm.ci.meta.PrimitiveConstant a
1: .line 1117
aload 2 /* const2 */
checkcast jdk.vm.ci.meta.PrimitiveConstant
astore 4 /* b */
start local 4 // jdk.vm.ci.meta.PrimitiveConstant b
2: .line 1118
getstatic org.graalvm.compiler.core.common.type.IntegerStamp.$assertionsDisabled:Z
ifne 3
aload 3 /* a */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 4 /* b */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: .line 1119
StackMap locals: jdk.vm.ci.meta.PrimitiveConstant jdk.vm.ci.meta.PrimitiveConstant
StackMap stack:
aload 4 /* b */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lconst_0
lcmp
ifne 5
4: .line 1120
aconst_null
areturn
5: .line 1122
StackMap locals:
StackMap stack:
aload 3 /* a */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 3 /* a */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
aload 4 /* b */
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lrem
invokestatic jdk.vm.ci.meta.JavaConstant.forIntegerKind:(Ljdk/vm/ci/meta/JavaKind;J)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
end local 4 // jdk.vm.ci.meta.PrimitiveConstant b
end local 3 // jdk.vm.ci.meta.PrimitiveConstant a
end local 2 // jdk.vm.ci.meta.Constant const2
end local 1 // jdk.vm.ci.meta.Constant const1
end local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/core/common/type/IntegerStamp$8;
0 6 1 const1 Ljdk/vm/ci/meta/Constant;
0 6 2 const2 Ljdk/vm/ci/meta/Constant;
1 6 3 a Ljdk/vm/ci/meta/PrimitiveConstant;
2 6 4 b Ljdk/vm/ci/meta/PrimitiveConstant;
MethodParameters:
Name Flags
const1
const2
public org.graalvm.compiler.core.common.type.Stamp foldStamp(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
start local 1 // org.graalvm.compiler.core.common.type.Stamp stamp1
start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp2
0: .line 1127
aload 1 /* stamp1 */
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifeq 2
1: .line 1128
aload 1 /* stamp1 */
areturn
2: .line 1130
StackMap locals:
StackMap stack:
aload 2 /* stamp2 */
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifeq 4
3: .line 1131
aload 2 /* stamp2 */
areturn
4: .line 1133
StackMap locals:
StackMap stack:
aload 1 /* stamp1 */
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 3 /* a */
start local 3 // org.graalvm.compiler.core.common.type.IntegerStamp a
5: .line 1134
aload 2 /* stamp2 */
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 4 /* b */
start local 4 // org.graalvm.compiler.core.common.type.IntegerStamp b
6: .line 1135
getstatic org.graalvm.compiler.core.common.type.IntegerStamp.$assertionsDisabled:Z
ifne 7
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: .line 1137
StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
aload 3 /* a */
getfield org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:J
aload 3 /* a */
getfield org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:J
lcmp
ifne 10
aload 4 /* b */
getfield org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:J
aload 4 /* b */
getfield org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:J
lcmp
ifne 10
aload 4 /* b */
getfield org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:J
lconst_0
lcmp
ifeq 10
8: .line 1138
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lrem
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
iconst_0
invokestatic jdk.vm.ci.code.CodeUtil.convert:(JIZ)J
lstore 5 /* value */
start local 5 // long value
9: .line 1139
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
lload 5 /* value */
lload 5 /* value */
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
end local 5 // long value
10: .line 1143
StackMap locals:
StackMap stack:
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lconst_0
invokestatic java.lang.Math.min:(JJ)J
lstore 5 /* newLowerBound */
start local 5 // long newLowerBound
11: .line 1144
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lconst_0
invokestatic java.lang.Math.max:(JJ)J
lstore 7 /* newUpperBound */
start local 7 // long newUpperBound
12: .line 1148
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
invokestatic jdk.vm.ci.code.CodeUtil.minValue:(I)J
lcmp
ifne 15
13: .line 1150
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
invokestatic jdk.vm.ci.code.CodeUtil.maxValue:(I)J
lstore 9 /* magnitude */
start local 9 // long magnitude
14: .line 1151
goto 16
end local 9 // long magnitude
15: .line 1152
StackMap locals: long long
StackMap stack:
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
invokestatic java.lang.Math.abs:(J)J
aload 4 /* b */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
invokestatic java.lang.Math.abs:(J)J
invokestatic java.lang.Math.max:(JJ)J
lconst_1
lsub
lstore 9 /* magnitude */
start local 9 // long magnitude
16: .line 1154
StackMap locals: long
StackMap stack:
lload 5 /* newLowerBound */
lload 9 /* magnitude */
lneg
invokestatic java.lang.Math.max:(JJ)J
lstore 5 /* newLowerBound */
17: .line 1155
lload 7 /* newUpperBound */
lload 9 /* magnitude */
invokestatic java.lang.Math.min:(JJ)J
lstore 7 /* newUpperBound */
18: .line 1157
aload 3 /* a */
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
lload 5 /* newLowerBound */
lload 7 /* newUpperBound */
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
end local 9 // long magnitude
end local 7 // long newUpperBound
end local 5 // long newLowerBound
end local 4 // org.graalvm.compiler.core.common.type.IntegerStamp b
end local 3 // org.graalvm.compiler.core.common.type.IntegerStamp a
end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp2
end local 1 // org.graalvm.compiler.core.common.type.Stamp stamp1
end local 0 // org.graalvm.compiler.core.common.type.IntegerStamp$8 this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/core/common/type/IntegerStamp$8;
0 19 1 stamp1 Lorg/graalvm/compiler/core/common/type/Stamp;
0 19 2 stamp2 Lorg/graalvm/compiler/core/common/type/Stamp;
5 19 3 a Lorg/graalvm/compiler/core/common/type/IntegerStamp;
6 19 4 b Lorg/graalvm/compiler/core/common/type/IntegerStamp;
9 10 5 value J
11 19 5 newLowerBound J
12 19 7 newUpperBound J
14 15 9 magnitude J
16 19 9 magnitude J
MethodParameters:
Name Flags
stamp1
stamp2
}
SourceFile: "IntegerStamp.java"
EnclosingMethod: org.graalvm.compiler.core.common.type.IntegerStamp
NestHost: org.graalvm.compiler.core.common.type.IntegerStamp
InnerClasses:
public abstract BinaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract Rem = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp$Rem of org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
org.graalvm.compiler.core.common.type.IntegerStamp$8