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: 29
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 the latest JDK 9 build from https://jdk9.java.net/download/"
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=6, args_size=1
start local 0 0: ldc "java.vm.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 1
start local 1 1: 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 36
2: aload 1
ldc "-jvmci-"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 3: iload 2
iflt 32
4: iload 2
ldc "-jvmci-"
invokevirtual java.lang.String.length:()I
iadd
istore 2
5: aload 1
bipush 46
iload 2
invokevirtual java.lang.String.indexOf:(II)I
istore 3
start local 3 6: iload 3
ifle 32
7: aload 1
iload 2
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 4
start local 4 8: goto 14
end local 4 StackMap locals: int java.lang.String int int
StackMap stack: java.lang.NumberFormatException
9: pop
10: 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
11: aload 1
aastore
12: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
13: return
start local 4 14: StackMap locals: int
StackMap stack:
iload 3
iconst_1
iadd
istore 2
15: iload 2
istore 3
16: goto 18
17: StackMap locals:
StackMap stack:
iinc 3 1
18: StackMap locals:
StackMap stack:
iload 3
aload 1
invokevirtual java.lang.String.length:()I
if_icmpge 19
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.Character.isDigit:(C)Z
ifne 17
19: StackMap locals:
StackMap stack:
aload 1
iload 2
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 5
start local 5 20: goto 26
end local 5 StackMap locals:
StackMap stack: java.lang.NumberFormatException
21: pop
22: 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
23: aload 1
aastore
24: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
25: return
start local 5 26: StackMap locals: int
StackMap stack:
iload 4
iflt 28
iload 5
bipush 29
if_icmplt 28
27: return
28: 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
29: iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 5
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 29
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
30: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
31: return
end local 5 end local 4 end local 3 32: 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
33: aload 1
aastore
34: invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
end local 2 35: goto 43
36: StackMap locals:
StackMap stack:
aload 1
ldc "SNAPSHOT"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 38
37: return
38: StackMap locals:
StackMap stack:
aload 1
ldc "internal"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 40
39: return
40: StackMap locals:
StackMap stack:
aload 1
ldc "9-ea"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 43
41: iload 0
ldc "This version of Graal is not compatible with JDK 9 Early Access builds.%n"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.hotspot.JVMCIVersionCheck.failVersionCheck:(ZLjava/lang/String;[Ljava/lang/Object;)V
42: return
43: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 exitOnFailure Z
1 44 1 vmVersion Ljava/lang/String;
3 35 2 start I
6 32 3 end I
8 9 4 major I
14 32 4 major I
20 21 5 minor I
26 32 5 minor I
Exception table:
from to target type
7 8 9 Class java.lang.NumberFormatException
19 20 21 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"