public class com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod extends com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod
  super_class: com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
{
  private final com.oracle.svm.hosted.c.NativeLibraries nativeLibraries;
    descriptor: Lcom/oracle/svm/hosted/c/NativeLibraries;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.oracle.svm.hosted.c.NativeLibraries, jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Lcom/oracle/svm/hosted/c/NativeLibraries;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
        start local 1 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 60
            aload 0 /* this */
            aload 2 /* method */
            invokespecial com.oracle.svm.hosted.annotation.CustomSubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
         1: .line 61
            aload 0 /* this */
            aload 1 /* nativeLibraries */
            putfield com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
         2: .line 62
            return
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
        end local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/oracle/svm/hosted/cenum/CEnumCallWrapperMethod;
            0    3     1  nativeLibraries  Lcom/oracle/svm/hosted/c/NativeLibraries;
            0    3     2           method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                 Name  Flags
      nativeLibraries  
      method           

  public int getModifiers();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
         0: .line 66
            aload 0 /* this */
            getfield com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod.original:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getModifiers:()I
            sipush -257
            iand
            ireturn
        end local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/cenum/CEnumCallWrapperMethod;

  public boolean isSynthetic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
         0: .line 71
            iconst_1
            ireturn
        end local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/cenum/CEnumCallWrapperMethod;

  public org.graalvm.compiler.nodes.StructuredGraph buildGraph(org.graalvm.compiler.debug.DebugContext, jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.graal.pointsto.meta.HostedProviders, com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/graal/pointsto/meta/HostedProviders;Lcom/oracle/graal/pointsto/infrastructure/GraphProvider$Purpose;)Lorg/graalvm/compiler/nodes/StructuredGraph;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=17, args_size=5
        start local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 3 // com.oracle.graal.pointsto.meta.HostedProviders providers
        start local 4 // com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose purpose
         0: .line 77
            new com.oracle.svm.hosted.phases.HostedGraphKit
            dup
            aload 1 /* debug */
            aload 3 /* providers */
            aload 2 /* method */
            invokespecial com.oracle.svm.hosted.phases.HostedGraphKit.<init>:(Lorg/graalvm/compiler/debug/DebugContext;Lcom/oracle/graal/pointsto/meta/HostedProviders;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            astore 5 /* kit */
        start local 5 // com.oracle.svm.hosted.phases.HostedGraphKit kit
         1: .line 78
            aload 5 /* kit */
            invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 6 /* graph */
        start local 6 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 80
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            aconst_null
            invokeinterface jdk.vm.ci.meta.Signature.getReturnType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 7 /* returnType */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaType returnType
         3: .line 81
            aload 5 /* kit */
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.toParameterTypes:()[Ljdk/vm/ci/meta/JavaType;
            invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.loadArguments:([Ljdk/vm/ci/meta/JavaType;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 8 /* arg */
        start local 8 // org.graalvm.compiler.nodes.ValueNode arg
         4: .line 83
            new com.oracle.svm.hosted.phases.CInterfaceEnumTool
            dup
            aload 3 /* providers */
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* providers */
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            invokespecial com.oracle.svm.hosted.phases.CInterfaceEnumTool.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
            astore 9 /* tool */
        start local 9 // com.oracle.svm.hosted.phases.CInterfaceEnumTool tool
         5: .line 85
            aload 2 /* method */
            invokestatic com.oracle.svm.hosted.phases.CInterfaceInvocationPlugin.pushKind:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/JavaKind;
            astore 10 /* pushKind */
        start local 10 // jdk.vm.ci.meta.JavaKind pushKind
         6: .line 87
            aload 2 /* method */
            ldc Lorg/graalvm/nativeimage/c/constant/CEnumLookup;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 11
         7: .line 88
            aload 0 /* this */
            getfield com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            aload 7 /* returnType */
            invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
            checkcast com.oracle.svm.hosted.c.info.EnumInfo
            astore 12 /* enumInfo */
        start local 12 // com.oracle.svm.hosted.c.info.EnumInfo enumInfo
         8: .line 89
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            astore 13 /* parameterKind */
        start local 13 // jdk.vm.ci.meta.JavaKind parameterKind
         9: .line 90
            aload 9 /* tool */
            aload 5 /* kit */
            aload 7 /* returnType */
            aload 12 /* enumInfo */
            aload 13 /* parameterKind */
            aload 8 /* arg */
            invokevirtual com.oracle.svm.hosted.phases.CInterfaceEnumTool.createEnumLookupInvoke:(Lcom/oracle/svm/hosted/phases/HostedGraphKit;Ljdk/vm/ci/meta/ResolvedJavaType;Lcom/oracle/svm/hosted/c/info/EnumInfo;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* returnValue */
        end local 13 // jdk.vm.ci.meta.JavaKind parameterKind
        end local 12 // com.oracle.svm.hosted.c.info.EnumInfo enumInfo
        start local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
        10: .line 91
            goto 20
        end local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
      StackMap locals: com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod org.graalvm.compiler.debug.DebugContext jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.graal.pointsto.meta.HostedProviders com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose com.oracle.svm.hosted.phases.HostedGraphKit org.graalvm.compiler.nodes.StructuredGraph jdk.vm.ci.meta.ResolvedJavaType org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.phases.CInterfaceEnumTool jdk.vm.ci.meta.JavaKind
      StackMap stack:
        11: aload 2 /* method */
            ldc Lorg/graalvm/nativeimage/c/constant/CEnumValue;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 19
        12: .line 92
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 12 /* declaringType */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaType declaringType
        13: .line 93
            aload 0 /* this */
            getfield com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            aload 12 /* declaringType */
            invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
            checkcast com.oracle.svm.hosted.c.info.EnumInfo
            astore 13 /* enumInfo */
        start local 13 // com.oracle.svm.hosted.c.info.EnumInfo enumInfo
        14: .line 94
            aload 9 /* tool */
            aload 5 /* kit */
            aload 13 /* enumInfo */
            aload 7 /* returnType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 8 /* arg */
            invokevirtual com.oracle.svm.hosted.phases.CInterfaceEnumTool.createEnumValueInvoke:(Lcom/oracle/svm/hosted/phases/HostedGraphKit;Lcom/oracle/svm/hosted/c/info/EnumInfo;Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 14 /* invoke */
        start local 14 // org.graalvm.compiler.nodes.ValueNode invoke
        15: .line 96
            aload 6 /* graph */
            aload 14 /* invoke */
            aload 14 /* invoke */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 7 /* returnType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            iconst_0
            invokestatic com.oracle.svm.hosted.phases.CInterfaceInvocationPlugin.adaptPrimitiveType:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 15 /* adapted */
        start local 15 // org.graalvm.compiler.nodes.ValueNode adapted
        16: .line 97
            aload 7 /* returnType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 16 /* originalStamp */
        start local 16 // org.graalvm.compiler.core.common.type.Stamp originalStamp
        17: .line 98
            aload 6 /* graph */
            aload 15 /* adapted */
            aload 7 /* returnType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 16 /* originalStamp */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            iconst_0
            invokestatic com.oracle.svm.hosted.phases.CInterfaceInvocationPlugin.adaptPrimitiveType:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 11 /* returnValue */
        end local 16 // org.graalvm.compiler.core.common.type.Stamp originalStamp
        end local 15 // org.graalvm.compiler.nodes.ValueNode adapted
        end local 14 // org.graalvm.compiler.nodes.ValueNode invoke
        end local 13 // com.oracle.svm.hosted.c.info.EnumInfo enumInfo
        end local 12 // jdk.vm.ci.meta.ResolvedJavaType declaringType
        start local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
        18: .line 99
            goto 20
        end local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
        19: .line 100
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
        20: .line 103
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 5 /* kit */
            invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.getFrameState:()Lorg/graalvm/compiler/java/FrameStateBuilder;
            aload 10 /* pushKind */
            aload 11 /* returnValue */
            invokevirtual org.graalvm.compiler.java.FrameStateBuilder.push:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)V
        21: .line 104
            aload 5 /* kit */
            aload 11 /* returnValue */
            aload 10 /* pushKind */
            invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.createReturn:(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/nodes/ValueNode;
            pop
        22: .line 106
            aload 5 /* kit */
            invokevirtual com.oracle.svm.hosted.phases.HostedGraphKit.finalizeGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            areturn
        end local 11 // org.graalvm.compiler.nodes.ValueNode returnValue
        end local 10 // jdk.vm.ci.meta.JavaKind pushKind
        end local 9 // com.oracle.svm.hosted.phases.CInterfaceEnumTool tool
        end local 8 // org.graalvm.compiler.nodes.ValueNode arg
        end local 7 // jdk.vm.ci.meta.ResolvedJavaType returnType
        end local 6 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 5 // com.oracle.svm.hosted.phases.HostedGraphKit kit
        end local 4 // com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose purpose
        end local 3 // com.oracle.graal.pointsto.meta.HostedProviders providers
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lcom/oracle/svm/hosted/cenum/CEnumCallWrapperMethod;
            0   23     1          debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   23     2         method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   23     3      providers  Lcom/oracle/graal/pointsto/meta/HostedProviders;
            0   23     4        purpose  Lcom/oracle/graal/pointsto/infrastructure/GraphProvider$Purpose;
            1   23     5            kit  Lcom/oracle/svm/hosted/phases/HostedGraphKit;
            2   23     6          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3   23     7     returnType  Ljdk/vm/ci/meta/ResolvedJavaType;
            4   23     8            arg  Lorg/graalvm/compiler/nodes/ValueNode;
            5   23     9           tool  Lcom/oracle/svm/hosted/phases/CInterfaceEnumTool;
            6   23    10       pushKind  Ljdk/vm/ci/meta/JavaKind;
           10   11    11    returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
           18   19    11    returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
           20   23    11    returnValue  Lorg/graalvm/compiler/nodes/ValueNode;
            8   10    12       enumInfo  Lcom/oracle/svm/hosted/c/info/EnumInfo;
            9   10    13  parameterKind  Ljdk/vm/ci/meta/JavaKind;
           13   18    12  declaringType  Ljdk/vm/ci/meta/ResolvedJavaType;
           14   18    13       enumInfo  Lcom/oracle/svm/hosted/c/info/EnumInfo;
           15   18    14         invoke  Lorg/graalvm/compiler/nodes/ValueNode;
           16   18    15        adapted  Lorg/graalvm/compiler/nodes/ValueNode;
           17   18    16  originalStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
    MethodParameters:
           Name  Flags
      debug      
      method     
      providers  
      purpose    
}
SourceFile: "CEnumCallWrapperMethod.java"
InnerClasses:
  public final Purpose = com.oracle.graal.pointsto.infrastructure.GraphProvider$Purpose of com.oracle.graal.pointsto.infrastructure.GraphProvider