class org.graalvm.compiler.hotspot.JVMCIVersionCheck
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.graalvm.compiler.hotspot.JVMCIVersionCheck
super_class: java.lang.Object
{
private static final int JVMCI8_MIN_MAJOR_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int JVMCI8_MIN_MINOR_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 46
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/JVMCIVersionCheck;
private static void failVersionCheck(boolean, java.lang.String, java.lang.Object[]);
descriptor: (ZLjava/lang/String;[Ljava/lang/Object;)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.util.Formatter
dup
invokespecial java.util.Formatter.<init>:()V
aload 1
aload 2
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
astore 3
start local 3 1: ldc "java.home"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 2: ldc "java.vm.name"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 5
start local 5 3: aload 3
ldc "Set the JVMCI_VERSION_CHECK environment variable to \"ignore\" to suppress "
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
4: aload 3
ldc "this error or to \"warn\" to emit a warning and continue execution.%n"
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
5: aload 3
ldc "Currently used Java home directory is %s.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
6: aload 3
ldc "Currently used VM configuration is: %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
7: ldc "java.specification.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
ldc "1.9"
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ifge 10
8: aload 3
ldc "Download the latest JVMCI JDK 8 from http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html"
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
9: goto 11
10: StackMap locals: java.util.Formatter java.lang.String java.lang.String
StackMap stack:
aload 3
ldc "Download JDK 11 or later."
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
11: StackMap locals:
StackMap stack:
ldc "JVMCI_VERSION_CHECK"
invokestatic java.lang.System.getenv:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 12: ldc "warn"
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 3
invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: goto 22
StackMap locals: java.lang.String
StackMap stack:
15: ldc "ignore"
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
16: return
17: StackMap locals:
StackMap stack:
iload 0
ifeq 21
18: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 3
invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: iconst_m1
invokestatic java.lang.System.exit:(I)V
20: goto 22
21: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
aload 3
invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
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 23 0 exit Z
0 23 1 reason Ljava/lang/String;
0 23 2 args [Ljava/lang/Object;
1 23 3 errorMessage Ljava/util/Formatter;
2 23 4 javaHome Ljava/lang/String;
3 23 5 vmName Ljava/lang/String;
12 23 6 value Ljava/lang/String;
MethodParameters:
Name Flags
exit
reason
args
static void check(boolean);
descriptor: (Z)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: ldc "java.specification.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: ldc "java.vm.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 2: aload 1
ldc "1.9"
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ifge 37
3: aload 2
ldc "-jvmci-"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 3
start local 3 4: iload 3
iflt 33
5: iload 3
ldc "-jvmci-"
invokevirtual java.lang.String.length:()I
iadd
istore 3
6: aload 2
bipush 46
iload 3
invokevirtual java.lang.String.indexOf:(II)I
istore 4
start local 4 7: iload 4
ifle 33
8: aload 2
iload 3
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 5
start local 5 9: goto 15
end local 5 StackMap locals: int java.lang.String java.lang.String int int
StackMap stack: java.lang.NumberFormatException
10: pop
11: iload 0
ldc "The VM does not support the minimum JVMCI API version required by Graal.%nCannot read JVMCI major version from java.vm.version property: %s.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
12: aload 2
aastore
13: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
14: return
start local 5 15: StackMap locals: int
StackMap stack:
iload 4
iconst_1
iadd
istore 3
16: iload 3
istore 4
17: goto 19
18: StackMap locals:
StackMap stack:
iinc 4 1
19: StackMap locals:
StackMap stack:
iload 4
aload 2
invokevirtual java.lang.String.length:()I
if_icmpge 20
aload 2
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isDigit:(C)Z
ifne 18
20: StackMap locals:
StackMap stack:
aload 2
iload 3
iload 4
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 6
start local 6 21: goto 27
end local 6 StackMap locals:
StackMap stack: java.lang.NumberFormatException
22: pop
23: iload 0
ldc "The VM does not support the minimum JVMCI API version required by Graal.%nCannot read JVMCI minor version from java.vm.version property: %s.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
24: aload 2
aastore
25: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
26: return
start local 6 27: StackMap locals: int
StackMap stack:
iload 5
iflt 29
iload 6
bipush 46
if_icmplt 29
28: return
29: StackMap locals:
StackMap stack:
iload 0
ldc "The VM does not support the minimum JVMCI API version required by Graal: %d.%d < %d.%d.%n"
iconst_4
anewarray java.lang.Object
dup
iconst_0
30: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
bipush 46
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
31: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
32: return
end local 6 end local 5 end local 4 33: StackMap locals:
StackMap stack:
iload 0
ldc "The VM does not support the minimum JVMCI API version required by Graal.%nCannot read JVMCI version from java.vm.version property: %s.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
34: aload 2
aastore
35: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
end local 3 36: goto 53
StackMap locals:
StackMap stack:
37: aload 1
ldc "11"
invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
ifge 40
38: iload 0
ldc "Graal is not compatible with the JVMCI API in JDK 9 and 10.%n"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
39: goto 53
40: StackMap locals:
StackMap stack:
aload 2
ldc "SNAPSHOT"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 42
41: return
42: StackMap locals:
StackMap stack:
aload 2
ldc "internal"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 44
43: return
44: StackMap locals:
StackMap stack:
aload 2
ldc "11-ea+"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 53
45: aload 2
ldc "11-ea+"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 46: aload 3
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 4
start local 4 47: iload 4
bipush 20
if_icmpge 53
48: iload 0
ldc "Graal requires build 20 or later of JDK 11 early access binary, got build %d.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
49: return
end local 4 50: StackMap locals: int java.lang.String java.lang.String java.lang.String
StackMap stack: java.lang.NumberFormatException
pop
51: iload 0
ldc "Could not parse the JDK 11 early access build number from java.vm.version property: %s.%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
52: return
end local 3 53: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 exitOnFailure Z
1 54 1 javaSpecVersion Ljava/lang/String;
2 54 2 vmVersion Ljava/lang/String;
4 36 3 start I
7 33 4 end I
9 10 5 major I
15 33 5 major I
21 22 6 minor I
27 33 6 minor I
46 53 3 buildString Ljava/lang/String;
47 50 4 build I
Exception table:
from to target type
8 9 10 Class java.lang.NumberFormatException
20 21 22 Class java.lang.NumberFormatException
46 49 50 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
exitOnFailure
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.check:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 args [Ljava/lang/String;
MethodParameters:
Name Flags
args
}
SourceFile: "JVMCIVersionCheck.java"