public class org.graalvm.compiler.core.test.VerifySystemPropertyUsage extends org.graalvm.compiler.phases.VerifyPhase<org.graalvm.compiler.phases.tiers.PhaseContext>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.test.VerifySystemPropertyUsage
  super_class: org.graalvm.compiler.phases.VerifyPhase
{
  static final java.lang.Class<?>[] BOXES;
    descriptor: [Ljava/lang/Class;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  static final int JVMCI_VERSION_MAJOR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int JVMCI_VERSION_MINOR;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=0
         0: .line 48
            iconst_5
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc Ljava/lang/Boolean;
            aastore
            dup
            iconst_3
            ldc Ljava/lang/Float;
            aastore
            dup
            iconst_4
            ldc Ljava/lang/Double;
            aastore
            putstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.BOXES:[Ljava/lang/Class;
         1: .line 52
            iconst_m1
            istore 0 /* major */
        start local 0 // int major
         2: .line 53
            iconst_m1
            istore 1 /* minor */
        start local 1 // int minor
         3: .line 54
            ldc "java.vm.version"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* vmVersion */
        start local 2 // java.lang.String vmVersion
         4: .line 55
            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
         5: .line 56
            ldc ".*-jvmci-(\\d+)\\.(\\d+).*"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 3 /* re */
        start local 3 // java.util.regex.Pattern re
         6: .line 57
            aload 3 /* re */
            aload 2 /* vmVersion */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 4 /* matcher */
        start local 4 // java.util.regex.Matcher matcher
         7: .line 58
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 10
         8: .line 59
            aload 4 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 0 /* major */
         9: .line 60
            aload 4 /* matcher */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 1 /* minor */
        end local 4 // java.util.regex.Matcher matcher
        end local 3 // java.util.regex.Pattern re
        10: .line 63
      StackMap locals: int int java.lang.String
      StackMap stack:
            iload 0 /* major */
            putstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.JVMCI_VERSION_MAJOR:I
        11: .line 64
            iload 1 /* minor */
            putstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.JVMCI_VERSION_MINOR:I
        end local 2 // java.lang.String vmVersion
        end local 1 // int minor
        end local 0 // int major
        12: .line 65
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            2   12     0      major  I
            3   12     1      minor  I
            4   12     2  vmVersion  Ljava/lang/String;
            6   10     3         re  Ljava/util/regex/Pattern;
            7   10     4    matcher  Ljava/util/regex/Matcher;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifySystemPropertyUsage this
         0: .line 46
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.VerifyPhase.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.test.VerifySystemPropertyUsage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifySystemPropertyUsage;

  protected void verify(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.PhaseContext);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=16, args_size=3
        start local 0 // org.graalvm.compiler.core.test.VerifySystemPropertyUsage this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 2 // org.graalvm.compiler.phases.tiers.PhaseContext context
         0: .line 69
            aload 2 /* context */
            invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 3 /* metaAccess */
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         1: .line 70
            aload 3 /* metaAccess */
            ldc Ljava/lang/System;
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* systemType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType systemType
         2: .line 71
            getstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.BOXES:[Ljava/lang/Class;
            arraylength
            anewarray jdk.vm.ci.meta.ResolvedJavaType
            astore 5 /* boxTypes */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType[] boxTypes
         3: .line 72
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 7
         5: .line 73
      StackMap locals: org.graalvm.compiler.core.test.VerifySystemPropertyUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType[] int
      StackMap stack:
            aload 5 /* boxTypes */
            iload 6 /* i */
            aload 3 /* metaAccess */
            getstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.BOXES:[Ljava/lang/Class;
            iload 6 /* i */
            aaload
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aastore
         6: .line 72
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            aload 5 /* boxTypes */
            arraylength
            if_icmplt 5
        end local 6 // int i
         8: .line 76
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 6 /* caller */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod caller
         9: .line 77
            aload 6 /* caller */
            ldc "%H"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* holderQualified */
        start local 7 // java.lang.String holderQualified
        10: .line 78
            aload 6 /* caller */
            ldc "%h"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* holderUnqualified */
        start local 8 // java.lang.String holderUnqualified
        11: .line 79
            aload 7 /* holderQualified */
            aload 8 /* holderUnqualified */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
            ldc ""
            goto 13
      StackMap locals: org.graalvm.compiler.core.test.VerifySystemPropertyUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String java.lang.String
      StackMap stack:
        12: aload 7 /* holderQualified */
            iconst_0
            aload 7 /* holderQualified */
            invokevirtual java.lang.String.length:()I
            aload 8 /* holderUnqualified */
            invokevirtual java.lang.String.length:()I
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        13: astore 9 /* packageName */
        start local 9 // java.lang.String packageName
        14: .line 80
            aload 9 /* packageName */
            ldc "jdk.vm.ci"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        15: .line 81
            getstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.JVMCI_VERSION_MAJOR:I
            iflt 16
            getstatic org.graalvm.compiler.core.test.VerifySystemPropertyUsage.JVMCI_VERSION_MINOR:I
            bipush 56
            if_icmpgt 23
        16: .line 85
      StackMap locals: java.lang.String
      StackMap stack:
            return
        17: .line 87
      StackMap locals:
      StackMap stack:
            aload 7 /* holderQualified */
            ldc "org.graalvm.compiler.hotspot.JVMCIVersionCheck"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
            aload 6 /* caller */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "main"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 89
            return
        19: .line 90
      StackMap locals:
      StackMap stack:
            aload 9 /* packageName */
            ldc "com.oracle.truffle"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 20
            aload 9 /* packageName */
            ldc "org.graalvm.polyglot"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 21
        20: .line 93
      StackMap locals:
      StackMap stack:
            return
        21: .line 94
      StackMap locals:
      StackMap stack:
            aload 9 /* packageName */
            ldc "com.oracle.svm"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
        22: .line 98
            return
        23: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* graph */
            getstatic org.graalvm.compiler.nodes.java.MethodCallTargetNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 11
            goto 45
      StackMap locals: org.graalvm.compiler.core.test.VerifySystemPropertyUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        24: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MethodCallTargetNode
            astore 10 /* t */
        start local 10 // org.graalvm.compiler.nodes.java.MethodCallTargetNode t
        25: .line 101
            aload 10 /* t */
            invokevirtual org.graalvm.compiler.nodes.java.MethodCallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 12 /* callee */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaMethod callee
        26: .line 102
            aload 12 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 4 /* systemType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 32
        27: .line 103
            aload 12 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "getProperty"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            aload 12 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "getProperties"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 45
        28: .line 104
      StackMap locals: org.graalvm.compiler.core.test.VerifySystemPropertyUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String java.lang.String java.lang.String org.graalvm.compiler.nodes.java.MethodCallTargetNode java.util.Iterator jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            new org.graalvm.compiler.phases.VerifyPhase$VerificationError
            dup
            ldc "Call to %s at callsite %s is prohibited. Call Services.getSavedProperties().get(String) instead."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        29: .line 105
            aload 12 /* callee */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
        30: .line 106
            aload 6 /* caller */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
        31: .line 104
            aastore
            invokespecial org.graalvm.compiler.phases.VerifyPhase$VerificationError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        32: .line 109
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        33: goto 44
        34: .line 110
      StackMap locals: int
      StackMap stack:
            aload 5 /* boxTypes */
            iload 13 /* i */
            aaload
            astore 14 /* boxType */
        start local 14 // jdk.vm.ci.meta.ResolvedJavaType boxType
        35: .line 111
            aload 12 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 14 /* boxType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 43
        36: .line 112
            aload 14 /* boxType */
            iconst_0
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            astore 15 /* simpleName */
        start local 15 // java.lang.String simpleName
        37: .line 113
            aload 12 /* callee */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "get"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* simpleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 43
        38: .line 114
            new org.graalvm.compiler.phases.VerifyPhase$VerificationError
            dup
            ldc "Call to %s at callsite %s is prohibited. Call %s.parse%s(Services.getSavedProperties().get(String)) instead."
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        39: .line 115
            aload 12 /* callee */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_1
        40: .line 116
            aload 6 /* caller */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        41: .line 117
            aload 15 /* simpleName */
            aastore
            dup
            iconst_3
            aload 15 /* simpleName */
        42: .line 114
            aastore
            invokespecial org.graalvm.compiler.phases.VerifyPhase$VerificationError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 15 // java.lang.String simpleName
        end local 14 // jdk.vm.ci.meta.ResolvedJavaType boxType
        43: .line 109
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 13 /* i */
            aload 5 /* boxTypes */
            arraylength
            if_icmplt 34
        end local 13 // int i
        end local 12 // jdk.vm.ci.meta.ResolvedJavaMethod callee
        end local 10 // org.graalvm.compiler.nodes.java.MethodCallTargetNode t
        45: .line 100
      StackMap locals: org.graalvm.compiler.core.test.VerifySystemPropertyUsage org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.PhaseContext jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod java.lang.String java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        46: .line 123
            return
        end local 9 // java.lang.String packageName
        end local 8 // java.lang.String holderUnqualified
        end local 7 // java.lang.String holderQualified
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod caller
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType[] boxTypes
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType systemType
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext context
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.core.test.VerifySystemPropertyUsage this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   47     0               this  Lorg/graalvm/compiler/core/test/VerifySystemPropertyUsage;
            0   47     1              graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0   47     2            context  Lorg/graalvm/compiler/phases/tiers/PhaseContext;
            1   47     3         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            2   47     4         systemType  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   47     5           boxTypes  [Ljdk/vm/ci/meta/ResolvedJavaType;
            4    8     6                  i  I
            9   47     6             caller  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           10   47     7    holderQualified  Ljava/lang/String;
           11   47     8  holderUnqualified  Ljava/lang/String;
           14   47     9        packageName  Ljava/lang/String;
           25   45    10                  t  Lorg/graalvm/compiler/nodes/java/MethodCallTargetNode;
           26   45    12             callee  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           33   45    13                  i  I
           35   43    14            boxType  Ljdk/vm/ci/meta/ResolvedJavaType;
           37   43    15         simpleName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      graph    
      context  

  protected void verify(org.graalvm.compiler.nodes.StructuredGraph, java.lang.Object);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.phases.tiers.PhaseContext
            invokevirtual org.graalvm.compiler.core.test.VerifySystemPropertyUsage.verify:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/graalvm/compiler/phases/VerifyPhase<Lorg/graalvm/compiler/phases/tiers/PhaseContext;>;
SourceFile: "VerifySystemPropertyUsage.java"
InnerClasses:
  public VerificationError = org.graalvm.compiler.phases.VerifyPhase$VerificationError of org.graalvm.compiler.phases.VerifyPhase