public abstract class com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode extends com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode
  super_class: com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
         0: .line 95
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.runtime.nodes.api.LLVMNode.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMPointerEqualsNode;

  public abstract boolean execute(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      a     
      b     

  boolean doPointerPointer(java.lang.Object, java.lang.Object, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
        start local 1 // java.lang.Object a
        start local 2 // java.lang.Object b
        start local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        start local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
         0: .line 103
            aload 3 /* libA */
            aload 1 /* a */
            invokevirtual com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary.asPointer:(Ljava/lang/Object;)J
            aload 4 /* libB */
            aload 2 /* b */
            invokevirtual com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary.asPointer:(Ljava/lang/Object;)J
            lcmp
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
        end local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        end local 2 // java.lang.Object b
        end local 1 // java.lang.Object a
        end local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMPointerEqualsNode;
            0    2     1     a  Ljava/lang/Object;
            0    2     2     b  Ljava/lang/Object;
            0    2     3  libA  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
            0    2     4  libB  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
    Exceptions:
      throws com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"libA.isPointer(a)", "libB.isPointer(b)"}, limit = "8", rewriteOn = {Lcom/oracle/truffle/api/interop/UnsupportedMessageException;})
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "a")
      3:
        com.oracle.truffle.api.library.CachedLibrary(value = "b")
    MethodParameters:
      Name  Flags
      a     
      b     
      libA  
      libB  

  boolean doPointerPointerException(java.lang.Object, java.lang.Object, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary, com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMManagedEqualsNode;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
        start local 1 // java.lang.Object a
        start local 2 // java.lang.Object b
        start local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        start local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode managedEquals
         0: .line 112
            aload 0 /* this */
            aload 1 /* a */
            aload 2 /* b */
            aload 3 /* libA */
            aload 4 /* libB */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode.doPointerPointer:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;)Z
         1: ireturn
         2: .line 113
      StackMap locals:
      StackMap stack: com.oracle.truffle.api.interop.UnsupportedMessageException
            pop
         3: .line 118
            aload 0 /* this */
            aload 1 /* a */
            aload 2 /* b */
            aload 3 /* libA */
            aload 4 /* libB */
            aload 5 /* managedEquals */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode.doOther:(Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMManagedEqualsNode;)Z
            ireturn
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode managedEquals
        end local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
        end local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        end local 2 // java.lang.Object b
        end local 1 // java.lang.Object a
        end local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMPointerEqualsNode;
            0    4     1              a  Ljava/lang/Object;
            0    4     2              b  Ljava/lang/Object;
            0    4     3           libA  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
            0    4     4           libB  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
            0    4     5  managedEquals  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMManagedEqualsNode;
      Exception table:
        from    to  target  type
           0     1       2  Class com.oracle.truffle.api.interop.UnsupportedMessageException
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"libA.isPointer(a)", "libB.isPointer(b)"}, replaces = {"doPointerPointer"}, limit = "8")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "a")
      3:
        com.oracle.truffle.api.library.CachedLibrary(value = "b")
      4:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
               Name  Flags
      a              
      b              
      libA           
      libB           
      managedEquals  

  boolean doOther(java.lang.Object, java.lang.Object, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary, com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary, com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMManagedEqualsNode;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
        start local 1 // java.lang.Object a
        start local 2 // java.lang.Object b
        start local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        start local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
        start local 5 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode managedEquals
         0: .line 127
            aload 5 /* managedEquals */
            aload 1 /* a */
            aload 2 /* b */
            invokevirtual com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode.execute:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 5 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode managedEquals
        end local 4 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libB
        end local 3 // com.oracle.truffle.llvm.runtime.library.internal.LLVMNativeLibrary libA
        end local 2 // java.lang.Object b
        end local 1 // java.lang.Object a
        end local 0 // com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMPointerEqualsNode;
            0    1     1              a  Ljava/lang/Object;
            0    1     2              b  Ljava/lang/Object;
            0    1     3           libA  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
            0    1     4           libB  Lcom/oracle/truffle/llvm/runtime/library/internal/LLVMNativeLibrary;
            0    1     5  managedEquals  Lcom/oracle/truffle/llvm/runtime/nodes/op/LLVMAddressEqualsNode$LLVMManagedEqualsNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.dsl.Specialization(guards = {"!libA.isPointer(a) || !libB.isPointer(b)"}, limit = "8")
    RuntimeInvisibleParameterAnnotations: 
      0:
      1:
      2:
        com.oracle.truffle.api.library.CachedLibrary(value = "a")
      3:
        com.oracle.truffle.api.library.CachedLibrary(value = "b")
      4:
        com.oracle.truffle.api.dsl.Cached()
    MethodParameters:
               Name  Flags
      a              
      b              
      libA           
      libB           
      managedEquals  
}
SourceFile: "LLVMAddressEqualsNode.java"
NestHost: com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode
InnerClasses:
  abstract LLVMManagedEqualsNode = com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMManagedEqualsNode of com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode
  public abstract LLVMPointerEqualsNode = com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode$LLVMPointerEqualsNode of com.oracle.truffle.llvm.runtime.nodes.op.LLVMAddressEqualsNode
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.dsl.GenerateUncached()