final class com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry
  super_class: java.lang.Object
{
  private final java.util.HashMap<com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer, com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor> functionDescriptors;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;>;

  final com.oracle.truffle.llvm.runtime.LLVMContext this$0;
    descriptor: Lcom/oracle/truffle/llvm/runtime/LLVMContext;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(com.oracle.truffle.llvm.runtime.LLVMContext);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
         0: .line 160
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry.this$0:Lcom/oracle/truffle/llvm/runtime/LLVMContext;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 161
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry.functionDescriptors:Ljava/util/HashMap;
         2: .line 160
            return
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/llvm/runtime/LLVMContext$LLVMFunctionPointerRegistry;
    MethodParameters:
        Name  Flags
      this$0  final

  synchronized com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor getDescriptor(com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;)Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
        start local 1 // com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer pointer
         0: .line 164
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry.functionDescriptors:Ljava/util/HashMap;
            aload 1 /* pointer */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor
            areturn
        end local 1 // com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer pointer
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/llvm/runtime/LLVMContext$LLVMFunctionPointerRegistry;
            0    1     1  pointer  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;
    MethodParameters:
         Name  Flags
      pointer  

  synchronized void register(com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer, com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
        start local 1 // com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer pointer
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor desc
         0: .line 168
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry.functionDescriptors:Ljava/util/HashMap;
            aload 1 /* pointer */
            aload 2 /* desc */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 169
            return
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor desc
        end local 1 // com.oracle.truffle.llvm.runtime.pointer.LLVMNativePointer pointer
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/oracle/truffle/llvm/runtime/LLVMContext$LLVMFunctionPointerRegistry;
            0    2     1  pointer  Lcom/oracle/truffle/llvm/runtime/pointer/LLVMNativePointer;
            0    2     2     desc  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;
    MethodParameters:
         Name  Flags
      pointer  
      desc     

  synchronized com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor create(com.oracle.truffle.llvm.runtime.LLVMFunction, com.oracle.truffle.llvm.runtime.LLVMFunctionCode);
    descriptor: (Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;)Lcom/oracle/truffle/llvm/runtime/LLVMFunctionDescriptor;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
        start local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction functionDetail
        start local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode functionCode
         0: .line 172
            new com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor
            dup
            aload 1 /* functionDetail */
            aload 2 /* functionCode */
            invokespecial com.oracle.truffle.llvm.runtime.LLVMFunctionDescriptor.<init>:(Lcom/oracle/truffle/llvm/runtime/LLVMFunction;Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;)V
            areturn
        end local 2 // com.oracle.truffle.llvm.runtime.LLVMFunctionCode functionCode
        end local 1 // com.oracle.truffle.llvm.runtime.LLVMFunction functionDetail
        end local 0 // com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/oracle/truffle/llvm/runtime/LLVMContext$LLVMFunctionPointerRegistry;
            0    1     1  functionDetail  Lcom/oracle/truffle/llvm/runtime/LLVMFunction;
            0    1     2    functionCode  Lcom/oracle/truffle/llvm/runtime/LLVMFunctionCode;
    MethodParameters:
                Name  Flags
      functionDetail  
      functionCode    
}
SourceFile: "LLVMContext.java"
NestHost: com.oracle.truffle.llvm.runtime.LLVMContext
InnerClasses:
  private final LLVMFunctionPointerRegistry = com.oracle.truffle.llvm.runtime.LLVMContext$LLVMFunctionPointerRegistry of com.oracle.truffle.llvm.runtime.LLVMContext