abstract class com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode extends com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode
  super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode
{
  private com.oracle.truffle.api.TruffleLanguage$ContextReference<com.oracle.truffle.llvm.runtime.LLVMContext> ctxRef;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<Lcom/oracle/truffle/llvm/runtime/LLVMContext;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private com.oracle.truffle.api.nodes.DirectCallNode initContext;
    descriptor: Lcom/oracle/truffle/api/nodes/DirectCallNode;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Child()

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 387
            ldc Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.llvm.runtime.LLVMFunctionCode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode initContextFunctionCode
         0: .line 393
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMStatementNode.<init>:()V
         1: .line 394
            aload 1 /* initContextFunctionCode */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMFunctionCode.getLLVMIRFunctionSlowPath:()Lcom/oracle/truffle/api/RootCallTarget;
            astore 2 /* initContextFunction */
        start local 2 // com.oracle.truffle.api.RootCallTarget initContextFunction
         2: .line 395
            aload 0 /* this */
            aload 2 /* initContextFunction */
            invokestatic com.oracle.truffle.api.nodes.DirectCallNode.create:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
            putfield com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.initContext:Lcom/oracle/truffle/api/nodes/DirectCallNode;
         3: .line 396
            return
        end local 2 // com.oracle.truffle.api.RootCallTarget initContextFunction
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode initContextFunctionCode
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    4     0                     this  Lcom/oracle/truffle/llvm/runtime/LLVMLanguage$InitializeContextNode;
            0    4     1  initContextFunctionCode  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
            2    4     2      initContextFunction  Lcom/oracle/truffle/api/RootCallTarget;
    MethodParameters:
                         Name  Flags
      initContextFunctionCode  

  public void doInit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode this
         0: .line 400
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.ctxRef:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            ifnonnull 3
         1: .line 401
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 402
            aload 0 /* this */
            aload 0 /* this */
            ldc Lcom/oracle/truffle/llvm/runtime/LLVMLanguage;
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.lookupContextReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            putfield com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.ctxRef:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
         3: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.ctxRef:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
            invokevirtual com.oracle.truffle.api.TruffleLanguage$ContextReference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.LLVMContext
            astore 1 /* ctx */
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMContext ctx
         4: .line 405
            aload 1 /* ctx */
            getfield com.oracle.truffle.llvm.runtime.LLVMContext.initialized:Z
            ifne 10
         5: .line 406
            getstatic com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.$assertionsDisabled:Z
            ifne 6
            aload 1 /* ctx */
            getfield com.oracle.truffle.llvm.runtime.LLVMContext.cleanupNecessary:Z
            ifeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 407
      StackMap locals: com.oracle.truffle.llvm.runtime.LLVMContext
      StackMap stack:
            aload 1 /* ctx */
            iconst_1
            putfield com.oracle.truffle.llvm.runtime.LLVMContext.initialized:Z
         7: .line 408
            aload 1 /* ctx */
            iconst_1
            putfield com.oracle.truffle.llvm.runtime.LLVMContext.cleanupNecessary:Z
         8: .line 409
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ctx */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getThreadingStack:()Lcom/oracle/truffle/llvm/runtime/memory/LLVMThreadingStack;
            invokevirtual com.oracle.truffle.llvm.runtime.memory.LLVMThreadingStack.getStack:()Lcom/oracle/truffle/llvm/runtime/memory/LLVMStack;
            aastore
            dup
            iconst_1
            aload 1 /* ctx */
            invokevirtual com.oracle.truffle.llvm.runtime.LLVMContext.getApplicationArguments:()Lcom/oracle/truffle/llvm/runtime/pointer/LLVMManagedPointer;
            aastore
            dup
            iconst_2
            invokestatic com.oracle.truffle.llvm.runtime.LLVMContext.getEnvironmentVariables:()Lcom/oracle/truffle/llvm/runtime/pointer/LLVMManagedPointer;
            aastore
            dup
            iconst_3
            invokestatic com.oracle.truffle.llvm.runtime.LLVMContext.getRandomValues:()Lcom/oracle/truffle/llvm/runtime/pointer/LLVMManagedPointer;
            aastore
            astore 2 /* args */
        start local 2 // java.lang.Object[] args
         9: .line 410
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode.initContext:Lcom/oracle/truffle/api/nodes/DirectCallNode;
            aload 2 /* args */
            invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.lang.Object[] args
        10: .line 412
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMContext ctx
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/oracle/truffle/llvm/runtime/LLVMLanguage$InitializeContextNode;
            4   11     1   ctx  Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            9   10     2  args  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization()
}
SourceFile: "LLVMLanguage.java"
NestHost: com.oracle.truffle.llvm.runtime.LLVMLanguage
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  abstract InitializeContextNode = com.oracle.truffle.llvm.runtime.LLVMLanguage$InitializeContextNode of com.oracle.truffle.llvm.runtime.LLVMLanguage