public class org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest extends org.graalvm.compiler.test.GraalTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest
super_class: org.graalvm.compiler.test.GraalTest
{
static long[] longBoundaryValues;
descriptor: [J
flags: (0x0008) ACC_STATIC
static int[] shiftBoundaryValues;
descriptor: [I
flags: (0x0008) ACC_STATIC
static java.util.HashSet<org.graalvm.compiler.core.common.type.IntegerStamp> shiftStamps;
descriptor: Ljava/util/HashSet;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/IntegerStamp;>;
static java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp> integerTestStamps;
descriptor: Ljava/util/HashSet;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
static java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp> floatTestStamps;
descriptor: Ljava/util/HashSet;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
static double[] doubleBoundaryValues;
descriptor: [D
flags: (0x0008) ACC_STATIC
static double[] doubleSpecialValues;
descriptor: [D
flags: (0x0008) ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=12, args_size=0
0: bipush 11
newarray 11
dup
iconst_0
ldc -9223372036854775808
lastore
dup
iconst_1
ldc -9223372036854775807
lastore
dup
iconst_2
ldc -2147483648
lastore
dup
iconst_3
ldc -2147483647
lastore
dup
iconst_4
ldc -1
lastore
dup
bipush 6
lconst_1
lastore
dup
bipush 7
ldc 2147483646
lastore
dup
bipush 8
ldc 2147483647
lastore
dup
bipush 9
ldc 9223372036854775806
lastore
dup
bipush 10
1: ldc 9223372036854775807
lastore
2: putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.longBoundaryValues:[J
3: bipush 10
newarray 10
dup
iconst_0
bipush -128
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_3
iconst_1
iastore
dup
iconst_4
iconst_4
iastore
dup
iconst_5
bipush 8
iastore
dup
bipush 6
bipush 16
iastore
dup
bipush 7
bipush 31
iastore
dup
bipush 8
bipush 63
iastore
dup
bipush 9
sipush 128
iastore
putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftBoundaryValues:[I
4: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftStamps:Ljava/util/HashSet;
5: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftBoundaryValues:[I
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 13
StackMap locals: top top int int int[]
StackMap stack:
6: aload 4
iload 2
iaload
i2l
lstore 0
start local 0 7: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftBoundaryValues:[I
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 11
StackMap locals: long int int int[] top top int int int[]
StackMap stack:
8: aload 9
iload 7
iaload
i2l
lstore 5
start local 5 9: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftStamps:Ljava/util/HashSet;
bipush 32
lload 0
lload 5
invokestatic java.lang.Math.min:(JJ)J
lload 0
lload 5
invokestatic java.lang.Math.max:(JJ)J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 5 10: iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
iload 8
if_icmplt 8
end local 0 12: iinc 2 1
StackMap locals: top top int int int[]
StackMap stack:
13: iload 2
iload 3
if_icmplt 6
14: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shiftStamps:Ljava/util/HashSet;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
15: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.integerTestStamps:Ljava/util/HashSet;
16: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.longBoundaryValues:[J
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 26
StackMap locals: top top int int long[]
StackMap stack:
17: aload 4
iload 2
laload
lstore 0
start local 0 18: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.longBoundaryValues:[J
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 24
StackMap locals: long int int long[] top top int int long[]
StackMap stack:
19: aload 9
iload 7
laload
lstore 5
start local 5 20: lload 5
lload 5
l2i
i2l
lcmp
ifne 22
lload 0
lload 0
l2i
i2l
lcmp
ifne 22
21: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.integerTestStamps:Ljava/util/HashSet;
bipush 32
lload 0
lload 5
invokestatic java.lang.Math.min:(JJ)J
lload 0
lload 5
invokestatic java.lang.Math.max:(JJ)J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
22: StackMap locals: long int int long[] long int int long[]
StackMap stack:
getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.integerTestStamps:Ljava/util/HashSet;
bipush 64
lload 0
lload 5
invokestatic java.lang.Math.min:(JJ)J
lload 0
lload 5
invokestatic java.lang.Math.max:(JJ)J
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 5 23: iinc 7 1
StackMap locals: long int int long[] top top int int long[]
StackMap stack:
24: iload 7
iload 8
if_icmplt 19
end local 0 25: iinc 2 1
StackMap locals: top top int int long[]
StackMap stack:
26: iload 2
iload 3
if_icmplt 17
27: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.integerTestStamps:Ljava/util/HashSet;
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
28: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.integerTestStamps:Ljava/util/HashSet;
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
29: bipush 20
newarray 7
dup
iconst_0
ldc -Infinity
dastore
dup
iconst_1
ldc 4.9E-324
dastore
dup
iconst_2
ldc -Infinity
dastore
dup
iconst_3
ldc 1.401298464324817E-45
dastore
dup
iconst_4
30: ldc -9.223372036854776E18
dastore
dup
iconst_5
ldc -9.223372036854776E18
dastore
dup
bipush 6
ldc -2.147483648E9
dastore
dup
bipush 7
ldc -2.147483647E9
dastore
dup
bipush 8
ldc -1.0
dastore
dup
bipush 9
ldc -0.0
dastore
dup
bipush 10
dconst_0
dastore
dup
bipush 11
dconst_1
dastore
dup
bipush 12
31: ldc 2.147483646E9
dastore
dup
bipush 13
ldc 2.147483647E9
dastore
dup
bipush 14
ldc 9.223372036854776E18
dastore
dup
bipush 15
ldc 9.223372036854776E18
dastore
dup
bipush 16
32: ldc 3.4028234663852886E38
dastore
dup
bipush 17
ldc Infinity
dastore
dup
bipush 18
ldc 1.7976931348623157E308
dastore
dup
bipush 19
ldc Infinity
dastore
33: putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.doubleBoundaryValues:[D
34: iconst_4
newarray 7
dup
iconst_0
ldc NaN
dastore
dup
iconst_1
ldc -0.0
dastore
dup
iconst_2
ldc -0.0
dastore
dup
iconst_3
ldc NaN
dastore
putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.doubleSpecialValues:[D
35: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatTestStamps:Ljava/util/HashSet;
36: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.doubleBoundaryValues:[D
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 50
StackMap locals: top top int int double[]
StackMap stack:
37: aload 4
iload 2
daload
dstore 0
start local 0 38: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.doubleBoundaryValues:[D
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 48
StackMap locals: double int int double[] top top int int double[]
StackMap stack:
39: aload 9
iload 7
daload
dstore 5
start local 5 40: dload 5
d2f
fstore 10
start local 10 41: dload 0
d2f
fstore 11
start local 11 42: dload 5
fload 10
f2d
dcmpl
ifne 45
dload 0
fload 11
f2d
dcmpl
ifne 45
43: new org.graalvm.compiler.core.common.type.FloatStamp
dup
bipush 32
fload 11
fload 10
invokestatic java.lang.Math.min:(FF)F
f2d
fload 11
fload 10
invokestatic java.lang.Math.max:(FF)F
f2d
iconst_1
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.generateFloatingStamps:(Lorg/graalvm/compiler/core/common/type/FloatStamp;)V
44: new org.graalvm.compiler.core.common.type.FloatStamp
dup
bipush 32
fload 11
fload 10
invokestatic java.lang.Math.min:(FF)F
f2d
fload 11
fload 10
invokestatic java.lang.Math.max:(FF)F
f2d
iconst_0
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.generateFloatingStamps:(Lorg/graalvm/compiler/core/common/type/FloatStamp;)V
45: StackMap locals: double int int double[] double int int double[] float float
StackMap stack:
new org.graalvm.compiler.core.common.type.FloatStamp
dup
bipush 64
dload 0
dload 5
invokestatic java.lang.Math.min:(DD)D
dload 0
dload 5
invokestatic java.lang.Math.max:(DD)D
iconst_1
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.generateFloatingStamps:(Lorg/graalvm/compiler/core/common/type/FloatStamp;)V
46: new org.graalvm.compiler.core.common.type.FloatStamp
dup
bipush 64
dload 0
dload 5
invokestatic java.lang.Math.min:(DD)D
dload 0
dload 5
invokestatic java.lang.Math.max:(DD)D
iconst_0
invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.generateFloatingStamps:(Lorg/graalvm/compiler/core/common/type/FloatStamp;)V
end local 11 end local 10 end local 5 47: iinc 7 1
StackMap locals: double int int double[] top top int int double[]
StackMap stack:
48: iload 7
iload 8
if_icmplt 39
end local 0 49: iinc 2 1
StackMap locals: top top int int double[]
StackMap stack:
50: iload 2
iload 3
if_icmplt 37
51: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatTestStamps:Ljava/util/HashSet;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
52: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatTestStamps:Ljava/util/HashSet;
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
53: return
LocalVariableTable:
Start End Slot Name Signature
7 12 0 v1 J
9 10 5 v2 J
18 25 0 v1 J
20 23 5 v2 J
38 49 0 d1 D
40 47 5 d2 D
41 47 10 f1 F
42 47 11 f2 F
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.test.GraalTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
private static void generateFloatingStamps(org.graalvm.compiler.core.common.type.FloatStamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/FloatStamp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatTestStamps:Ljava/util/HashSet;
aload 0
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
1: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.doubleSpecialValues:[D
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.graalvm.compiler.core.common.type.FloatStamp top top int int double[]
StackMap stack:
2: aload 5
iload 3
daload
dstore 1
start local 1 3: aload 0
dload 1
aload 0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.getBits:()I
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatStampForConstant:(DI)Lorg/graalvm/compiler/core/common/type/FloatStamp;
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.FloatStamp
astore 6
start local 6 4: aload 6
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.isUnrestricted:()Z
ifne 6
5: getstatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatTestStamps:Ljava/util/HashSet;
aload 6
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 1 6: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
iload 4
if_icmplt 2
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 floatStamp Lorg/graalvm/compiler/core/common/type/FloatStamp;
3 6 1 d D
4 6 6 newStamp Lorg/graalvm/compiler/core/common/type/FloatStamp;
MethodParameters:
Name Flags
floatStamp
public void testConvertBoundaryValues();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
RuntimeInvisibleAnnotations:
Test()
private static void testConvertBoundaryValues(org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp<?>, int, int, java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp>);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;IILjava/util/HashSet;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp int int java.util.HashSet top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 4
start local 4 2: iload 1
aload 4
invokevirtual org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:()I
if_icmpne 7
3: aload 4
iconst_0
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 4: aload 4
iconst_1
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 5: aload 0
iload 1
iload 2
aload 0
iload 1
iload 2
aload 4
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp.foldStamp:(IILorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkConvertOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;IILorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
6: aload 0
iload 1
iload 2
aload 0
iload 1
iload 2
aload 4
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp.foldStamp:(IILorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkConvertOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;IILorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
end local 7 end local 6 end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp<*>;
0 9 1 inputBits I
0 9 2 resultBits I
0 9 3 stamps Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
2 7 4 stamp Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
4 7 6 lower Lorg/graalvm/compiler/core/common/type/Stamp;
5 7 7 upper Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp<*>;IILjava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;)V
MethodParameters:
Name Flags
op
inputBits
resultBits
stamps
private static void checkConvertOperation(org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp<?>, int, int, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp;IILorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
iload 2
aload 4
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp.foldStamp:(IILorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 5
start local 5 1: aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 2
aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
ifnonnull 2
iconst_0
goto 3
StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ldc "should constant fold %s %s %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 5
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
4: aload 3
aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "result out of range %s %s %s %s %s"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 5
aastore
dup
iconst_3
aload 3
aastore
dup
iconst_4
aload 3
aload 5
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
5: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp<*>;
0 6 1 inputBits I
0 6 2 resultBits I
0 6 3 result Lorg/graalvm/compiler/core/common/type/Stamp;
0 6 4 v1stamp Lorg/graalvm/compiler/core/common/type/Stamp;
1 6 5 folded Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$IntegerConvertOp<*>;IILorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
MethodParameters:
Name Flags
op
inputBits
resultBits
result
v1stamp
public void testFloatConvertBoundaryValues();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
RuntimeInvisibleAnnotations:
Test()
private static void testConvertBoundaryValues(org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp, int, java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp>);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;ILjava/util/HashSet;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp int java.util.HashSet top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 3
start local 3 2: iload 1
aload 3
invokevirtual org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:()I
if_icmpne 7
3: aload 3
iconst_0
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 5
start local 5 4: aload 3
iconst_1
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 5: aload 0
aload 0
aload 3
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 5
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkConvertOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
6: aload 0
aload 0
aload 3
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 6
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkConvertOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
end local 6 end local 5 end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;
0 9 1 bits I
0 9 2 stamps Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
2 7 3 stamp Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
4 7 5 lower Lorg/graalvm/compiler/core/common/type/Stamp;
5 7 6 upper Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;ILjava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;)V
MethodParameters:
Name Flags
op
bits
stamps
static void shouldConstantFold(boolean, org.graalvm.compiler.core.common.type.Stamp, java.lang.Object, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (ZLorg/graalvm/compiler/core/common/type/Stamp;Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 0
ifne 2
aload 1
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 1
aload 1
checkcast org.graalvm.compiler.core.common.type.FloatStamp
dconst_0
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.contains:(D)Z
ifne 2
StackMap locals:
StackMap stack:
1: iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ldc "should constant fold %s %s %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
dup
iconst_2
aload 1
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 b Z
0 5 1 folded Lorg/graalvm/compiler/core/common/type/Stamp;
0 5 2 o Ljava/lang/Object;
0 5 3 s1 Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
b
folded
o
s1
private static boolean constantFloatStampMayIncludeNegativeZero(org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 4
1: aload 0
checkcast org.graalvm.compiler.core.common.type.FloatStamp
astore 1
start local 1 2: aload 1
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.lowerBound:()D
aload 1
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
invokestatic java.lang.Double.compare:(DD)I
ifne 3
aload 1
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.isNonNaN:()Z
ifeq 3
iconst_1
ireturn
StackMap locals: org.graalvm.compiler.core.common.type.FloatStamp
StackMap stack:
3: iconst_0
ireturn
end local 1 4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 s Lorg/graalvm/compiler/core/common/type/Stamp;
2 4 1 f Lorg/graalvm/compiler/core/common/type/FloatStamp;
MethodParameters:
Name Flags
s
private static void checkConvertOperation(org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 2
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
ifnonnull 2
iconst_0
goto 3
StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: aload 3
aload 0
aload 2
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.shouldConstantFold:(ZLorg/graalvm/compiler/core/common/type/Stamp;Ljava/lang/Object;Lorg/graalvm/compiler/core/common/type/Stamp;)V
4: aload 1
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "result out of range %s %s %s %s %s"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 1
aastore
dup
iconst_4
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$FloatConvertOp;
0 6 1 result Lorg/graalvm/compiler/core/common/type/Stamp;
0 6 2 v1stamp Lorg/graalvm/compiler/core/common/type/Stamp;
1 6 3 folded Lorg/graalvm/compiler/core/common/type/Stamp;
MethodParameters:
Name Flags
op
result
v1stamp
public void testShiftBoundaryValues();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
RuntimeInvisibleAnnotations:
Test()
private static void testShiftBoundaryValues(org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp<?>, java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp>, java.util.HashSet<org.graalvm.compiler.core.common.type.IntegerStamp>);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Ljava/util/HashSet;Ljava/util/HashSet;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 4
goto 17
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp java.util.HashSet java.util.HashSet top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 3
start local 3 2: aload 3
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 17
3: aload 3
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 5
start local 5 4: aload 2
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 7
goto 16
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp java.util.HashSet java.util.HashSet org.graalvm.compiler.core.common.type.PrimitiveStamp java.util.Iterator org.graalvm.compiler.core.common.type.IntegerStamp top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 6
start local 6 6: aload 0
aload 5
aload 6
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 8
start local 8 7: aload 8
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isEmpty:()Z
ifeq 12
8: aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isEmpty:()Z
ifne 9
aload 6
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isEmpty:()Z
ifne 9
iconst_0
goto 10
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp java.util.HashSet java.util.HashSet org.graalvm.compiler.core.common.type.PrimitiveStamp java.util.Iterator org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp java.util.Iterator org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
9: iconst_1
StackMap locals:
StackMap stack: int
10: invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
11: goto 16
12: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
aload 0
aload 8
aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 6
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkShiftOperation:(ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
13: aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
aload 0
aload 8
aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 6
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkShiftOperation:(ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
14: aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
aload 0
aload 8
aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 6
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkShiftOperation:(ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
15: aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
aload 0
aload 8
aload 5
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 6
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkShiftOperation:(ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
end local 8 end local 6 16: StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp java.util.HashSet java.util.HashSet org.graalvm.compiler.core.common.type.PrimitiveStamp java.util.Iterator org.graalvm.compiler.core.common.type.IntegerStamp top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 5 end local 3 17: StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp java.util.HashSet java.util.HashSet top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 shiftOp Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp<*>;
0 19 1 stamps Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
0 19 2 shifts Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/IntegerStamp;>;
2 17 3 testStamp Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
4 17 5 stamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
6 16 6 shiftStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
7 16 8 foldedStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp<*>;Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/IntegerStamp;>;)V
MethodParameters:
Name Flags
shiftOp
stamps
shifts
private static void checkShiftOperation(int, org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp<?>, org.graalvm.compiler.core.common.type.IntegerStamp, long, );
descriptor: (ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: iload 0
lload 3
lload 3
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
astore 7
start local 7 1: bipush 32
lload 5
lload 5
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
astore 8
start local 8 2: aload 1
aload 7
aload 8
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/IntegerStamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 9
start local 9 3: aload 1
iload 0
lload 3
invokestatic jdk.vm.ci.meta.JavaConstant.forPrimitiveInt:(IJ)Ljdk/vm/ci/meta/PrimitiveConstant;
lload 5
l2i
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp.foldConstant:(Ljdk/vm/ci/meta/Constant;I)Ljdk/vm/ci/meta/Constant;
astore 10
start local 10 4: aload 10
ifnull 5
iconst_1
goto 6
StackMap locals: int org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp org.graalvm.compiler.core.common.type.IntegerStamp long long org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp jdk.vm.ci.meta.Constant
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
7: aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.asConstant:()Ljdk/vm/ci/meta/JavaConstant;
ifnull 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: ldc "should constant fold %s %s %s %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 7
aastore
dup
iconst_2
aload 8
aastore
dup
iconst_3
aload 9
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
10: aload 2
aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "result out of range %s %s %s %s %s %s"
bipush 6
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 7
aastore
dup
iconst_2
aload 8
aastore
dup
iconst_3
aload 9
aastore
dup
iconst_4
aload 2
aastore
dup
iconst_5
aload 2
aload 9
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
11: return
end local 10 end local 9 end local 8 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 bits I
0 12 1 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp<*>;
0 12 2 result Lorg/graalvm/compiler/core/common/type/IntegerStamp;
0 12 3 v1 J
0 12 5 v2 J
1 12 7 v1stamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
2 12 8 v2stamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
3 12 9 folded Lorg/graalvm/compiler/core/common/type/IntegerStamp;
4 12 10 constant Ljdk/vm/ci/meta/Constant;
Signature: (ILorg/graalvm/compiler/core/common/type/ArithmeticOpTable$ShiftOp<*>;Lorg/graalvm/compiler/core/common/type/IntegerStamp;JJ)V
MethodParameters:
Name Flags
bits
op
result
v1
v2
private static void checkBinaryOperation(org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<?>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.constantFloatStampMayIncludeNegativeZero:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifne 1
aload 3
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.constantFloatStampMayIncludeNegativeZero:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 3: aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 4
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifeq 12
4: StackMap locals: org.graalvm.compiler.core.common.type.Stamp
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
5: aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
ifnonnull 6
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
8: aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
ifnonnull 9
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 9
iconst_0
goto 10
StackMap locals:
StackMap stack:
9: iconst_1
StackMap locals:
StackMap stack: int
10: invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
11: return
12: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldConstant:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
astore 5
start local 5 13: aload 5
ifnull 32
14: aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertFalse:(Z)V
15: aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 6
start local 6 16: aload 6
ifnonnull 24
aload 2
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 24
17: aload 5
checkcast jdk.vm.ci.meta.JavaConstant
astore 7
start local 7 18: aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 19
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.asDouble:()D
invokestatic java.lang.Double.isNaN:(D)Z
ifne 21
19: StackMap locals: jdk.vm.ci.meta.Constant jdk.vm.ci.meta.Constant jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 20
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.asFloat:()F
invokestatic java.lang.Float.isNaN:(F)Z
ifne 21
StackMap locals:
StackMap stack:
20: iconst_0
goto 22
StackMap locals:
StackMap stack:
21: iconst_1
22: StackMap locals:
StackMap stack: int
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
end local 7 23: goto 31
24: StackMap locals:
StackMap stack:
aload 6
ifnull 25
iconst_1
goto 26
StackMap locals:
StackMap stack:
25: iconst_0
StackMap locals:
StackMap stack: int
26: ldc "should constant fold %s %s %s %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 4
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
27: aload 5
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 30
28: aload 0
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldConstant:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
pop
29: aload 0
aload 2
aload 3
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
pop
30: StackMap locals:
StackMap stack:
aload 5
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "should produce same constant %s %s %s %s %s"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 5
aastore
dup
iconst_4
aload 6
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
31: StackMap locals:
StackMap stack:
aload 1
aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "result out of range %s %s %s %s %s %s"
bipush 6
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 4
aastore
dup
iconst_4
aload 1
aastore
dup
iconst_5
aload 1
aload 4
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
end local 6 32: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<*>;
0 33 1 result Lorg/graalvm/compiler/core/common/type/Stamp;
0 33 2 v1stamp Lorg/graalvm/compiler/core/common/type/Stamp;
0 33 3 v2stamp Lorg/graalvm/compiler/core/common/type/Stamp;
3 33 4 folded Lorg/graalvm/compiler/core/common/type/Stamp;
13 33 5 constant Ljdk/vm/ci/meta/Constant;
16 32 6 constant2 Ljdk/vm/ci/meta/Constant;
18 23 7 c Ljdk/vm/ci/meta/JavaConstant;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<*>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
MethodParameters:
Name Flags
op
result
v1stamp
v2stamp
public void testBinaryBoundaryValues();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
RuntimeInvisibleAnnotations:
Test()
private static org.graalvm.compiler.core.common.type.Stamp boundaryStamp(org.graalvm.compiler.core.common.type.Stamp, boolean);
descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifeq 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 8
3: aload 0
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 2
start local 2 4: iload 1
ifeq 5
aload 2
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
goto 6
StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
5: aload 2
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
StackMap locals:
StackMap stack: long
6: lstore 3
start local 3 7: aload 2
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
lload 3
lload 3
invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.create:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
areturn
end local 3 end local 2 8: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 15
9: aload 0
checkcast org.graalvm.compiler.core.common.type.FloatStamp
astore 2
start local 2 10: iload 1
ifeq 11
aload 2
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.upperBound:()D
goto 12
StackMap locals: org.graalvm.compiler.core.common.type.FloatStamp
StackMap stack:
11: aload 2
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.lowerBound:()D
StackMap locals:
StackMap stack: double
12: dstore 3
start local 3 13: aload 2
invokevirtual org.graalvm.compiler.core.common.type.FloatStamp.getBits:()I
istore 5
start local 5 14: dload 3
iload 5
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.floatStampForConstant:(DI)Lorg/graalvm/compiler/core/common/type/FloatStamp;
areturn
end local 5 end local 3 end local 2 15: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "unexpected stamp type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 v1 Lorg/graalvm/compiler/core/common/type/Stamp;
0 16 1 upper Z
4 8 2 istamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
7 8 3 bound J
10 15 2 floatStamp Lorg/graalvm/compiler/core/common/type/FloatStamp;
13 15 3 bound D
14 15 5 bits I
MethodParameters:
Name Flags
v1
upper
private static org.graalvm.compiler.core.common.type.FloatStamp floatStampForConstant(double, int);
descriptor: (DI)Lorg/graalvm/compiler/core/common/type/FloatStamp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=4, args_size=2
start local 0 start local 2 0: iload 2
bipush 32
if_icmpne 5
1: dload 0
d2f
fstore 3
start local 3 2: new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 2
fload 3
f2d
fload 3
f2d
fload 3
invokestatic java.lang.Float.isNaN:(F)Z
ifeq 3
iconst_0
goto 4
StackMap locals: double int float
StackMap stack: new 2 new 2 int double double
3: iconst_1
StackMap locals: double int float
StackMap stack: new 2 new 2 int double double int
4: invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
end local 3 5: StackMap locals:
StackMap stack:
new org.graalvm.compiler.core.common.type.FloatStamp
dup
iload 2
dload 0
dload 0
dload 0
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 6
iconst_0
goto 7
StackMap locals: double int
StackMap stack: new 5 new 5 int double double
6: iconst_1
StackMap locals: double int
StackMap stack: new 5 new 5 int double double int
7: invokespecial org.graalvm.compiler.core.common.type.FloatStamp.<init>:(IDDZ)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 bound D
0 8 2 bits I
2 5 3 fbound F
MethodParameters:
Name Flags
bound
bits
private static void testBinaryBoundaryValues(org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<?>, java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp>);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Ljava/util/HashSet;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 3
goto 15
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp java.util.HashSet top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 2
start local 2 2: aload 1
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp java.util.HashSet org.graalvm.compiler.core.common.type.PrimitiveStamp java.util.Iterator top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 4
start local 4 4: aload 2
invokevirtual org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:()I
aload 4
invokevirtual org.graalvm.compiler.core.common.type.PrimitiveStamp.getBits:()I
if_icmpne 14
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
if_acmpne 14
5: aload 0
aload 2
aload 4
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 6
start local 6 6: aload 2
iconst_0
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 7
start local 7 7: aload 2
iconst_1
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 8
start local 8 8: aload 4
iconst_0
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 9
start local 9 9: aload 4
iconst_1
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 10
start local 10 10: aload 0
aload 6
aload 7
aload 9
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkBinaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
11: aload 0
aload 6
aload 7
aload 10
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkBinaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
12: aload 0
aload 6
aload 8
aload 9
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkBinaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
13: aload 0
aload 6
aload 8
aload 10
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkBinaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 4 14: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 2 15: StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp java.util.HashSet top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<*>;
0 17 1 stamps Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
2 15 2 v1 Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
4 14 4 v2 Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
6 14 6 result Lorg/graalvm/compiler/core/common/type/Stamp;
7 14 7 v1lower Lorg/graalvm/compiler/core/common/type/Stamp;
8 14 8 v1upper Lorg/graalvm/compiler/core/common/type/Stamp;
9 14 9 v2lower Lorg/graalvm/compiler/core/common/type/Stamp;
10 14 10 v2upper Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<*>;Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;)V
MethodParameters:
Name Flags
op
stamps
public void testUnaryBoundaryValues();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest;
RuntimeInvisibleAnnotations:
Test()
private static void testUnaryBoundaryValues(org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp<?>, java.util.HashSet<org.graalvm.compiler.core.common.type.PrimitiveStamp>);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp;Ljava/util/HashSet;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp java.util.HashSet top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.type.PrimitiveStamp
astore 2
start local 2 2: aload 0
aload 2
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 4
start local 4 3: aload 0
aload 4
aload 2
iconst_0
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkUnaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
4: aload 0
aload 4
aload 2
iconst_1
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.boundaryStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Z)Lorg/graalvm/compiler/core/common/type/Stamp;
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.checkUnaryOperation:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
end local 4 end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp<*>;
0 7 1 stamps Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;
2 5 2 v1 Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;
3 5 4 result Lorg/graalvm/compiler/core/common/type/Stamp;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp<*>;Ljava/util/HashSet<Lorg/graalvm/compiler/core/common/type/PrimitiveStamp;>;)V
MethodParameters:
Name Flags
op
stamps
private static void checkUnaryOperation(org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp<?>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
astore 3
start local 3 1: aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 4
start local 4 2: aload 4
ifnull 19
3: aload 0
aload 4
invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp.foldConstant:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
astore 5
start local 5 4: aload 5
ifnull 22
5: aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 6
start local 6 6: aload 6
ifnonnull 14
aload 2
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifeq 14
7: aload 5
checkcast jdk.vm.ci.meta.JavaConstant
astore 7
start local 7 8: aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 9
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.asDouble:()D
invokestatic java.lang.Double.isNaN:(D)Z
ifne 11
9: StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp jdk.vm.ci.meta.Constant jdk.vm.ci.meta.Constant jdk.vm.ci.meta.Constant jdk.vm.ci.meta.JavaConstant
StackMap stack:
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 10
aload 7
invokeinterface jdk.vm.ci.meta.JavaConstant.asFloat:()F
invokestatic java.lang.Float.isNaN:(F)Z
ifne 11
StackMap locals:
StackMap stack:
10: iconst_0
goto 12
StackMap locals:
StackMap stack:
11: iconst_1
12: StackMap locals:
StackMap stack: int
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
end local 7 13: goto 22
14: StackMap locals:
StackMap stack:
aload 6
ifnull 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: ldc "should constant fold %s %s %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
17: aload 5
aload 6
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "should produce same constant %s %s %s %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 5
aastore
dup
iconst_3
aload 6
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
end local 6 end local 5 18: goto 22
19: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
ifne 20
aload 2
instanceof org.graalvm.compiler.core.common.type.FloatStamp
ifne 20
iconst_0
goto 21
StackMap locals:
StackMap stack:
20: iconst_1
StackMap locals:
StackMap stack: int
21: invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(Z)V
22: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ldc "result out of range %s %s %s %s %s"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 1
aastore
dup
iconst_4
aload 1
aload 3
invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
invokestatic org.graalvm.compiler.nodes.test.PrimitiveStampBoundaryTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
23: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 op Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp<*>;
0 24 1 result Lorg/graalvm/compiler/core/common/type/Stamp;
0 24 2 v1stamp Lorg/graalvm/compiler/core/common/type/Stamp;
1 24 3 folded Lorg/graalvm/compiler/core/common/type/Stamp;
2 24 4 v1constant Ljdk/vm/ci/meta/Constant;
4 18 5 constant Ljdk/vm/ci/meta/Constant;
6 18 6 constant2 Ljdk/vm/ci/meta/Constant;
8 13 7 c Ljdk/vm/ci/meta/JavaConstant;
Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$UnaryOp<*>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)V
MethodParameters:
Name Flags
op
result
v1stamp
}
SourceFile: "PrimitiveStampBoundaryTest.java"
InnerClasses:
public abstract BinaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract FloatConvertOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$FloatConvertOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract IntegerConvertOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$IntegerConvertOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract ShiftOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$ShiftOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
public abstract UnaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$UnaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable