public final class com.oracle.truffle.api.instrumentation.ProbeNode extends com.oracle.truffle.api.nodes.Node
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.ProbeNode
super_class: com.oracle.truffle.api.nodes.Node
{
private static final int SEEN_UNWIND;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int SEEN_UNWIND_NEXT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int SEEN_RETURN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int SEEN_REENTER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
public static final java.lang.Object UNWIND_ACTION_REENTER;
descriptor: Ljava/lang/Object;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final java.lang.Object UNWIND_ACTION_IGNORED;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.oracle.truffle.api.instrumentation.InstrumentationHandler handler;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference retiredNodeReference;
descriptor: Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.oracle.truffle.api.instrumentation.EventContext context;
descriptor: Lcom/oracle/truffle/api/instrumentation/EventContext;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode chain;
descriptor: Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.Node$Child()
private volatile com.oracle.truffle.api.Assumption version;
descriptor: Lcom/oracle/truffle/api/Assumption;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
private volatile int seen;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
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=2, locals=0, args_size=0
0: ldc Lcom/oracle/truffle/api/instrumentation/ProbeNode;
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.api.instrumentation.ProbeNode.$assertionsDisabled:Z
3: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
4: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_IGNORED:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.api.instrumentation.InstrumentationHandler, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Lcom/oracle/truffle/api/source/SourceSection;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.truffle.api.instrumentation.ProbeNode.seen:I
2: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.ProbeNode.handler:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
3: aload 0
new com.oracle.truffle.api.instrumentation.EventContext
dup
aload 0
aload 2
invokespecial com.oracle.truffle.api.instrumentation.EventContext.<init>:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;Lcom/oracle/truffle/api/source/SourceSection;)V
putfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 5 1 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 5 2 sourceSection Lcom/oracle/truffle/api/source/SourceSection;
MethodParameters:
Name Flags
handler
sourceSection
com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference getRetiredNodeReference();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
void clearRetiredNodeReference();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
private boolean hasNewTags(com.oracle.truffle.api.nodes.Node, java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.next:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
ifnonnull 1
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.materializeTags:Ljava/util/Set;
goto 2
StackMap locals:
StackMap stack:
1: new java.util.HashSet
dup
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.materializeTags:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
StackMap locals:
StackMap stack: java.util.Set
2: astore 3
start local 3 3: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
astore 4
start local 4 4: goto 11
5: StackMap locals: java.util.Set com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
StackMap stack:
aload 3
aload 4
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.materializeTags:Ljava/util/Set;
if_acmpeq 7
6: aload 3
aload 4
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.materializeTags:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
7: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.getNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 5
start local 5 8: getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 9
aload 5
ifnull 9
aload 5
aload 1
if_acmpne 9
new java.lang.AssertionError
dup
ldc "The same retired node must not be set more than once!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 10
aload 4
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.materializeTags:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifeq 10
new java.lang.AssertionError
dup
ldc "Retired node must be set at most once for the same set of tags!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
10: StackMap locals:
StackMap stack:
aload 4
getfield com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.next:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
astore 4
end local 5 11: StackMap locals:
StackMap stack:
aload 4
ifnonnull 5
12: aload 3
aload 2
invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
ifeq 13
iconst_0
goto 14
StackMap locals:
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 15 1 retiredNode Lcom/oracle/truffle/api/nodes/Node;
0 15 2 materializeTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
3 15 3 allSeenMaterializeTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
4 15 4 nodeRef Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
8 11 5 nodeRefNode Lcom/oracle/truffle/api/nodes/Node;
Signature: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Z
MethodParameters:
Name Flags
retiredNode
materializeTags
void setRetiredNode(com.oracle.truffle.api.nodes.Node, java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
ifnonnull 3
1: aload 0
new com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
dup
aload 1
aload 2
aconst_null
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;)V
putfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
2: goto 7
3: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 4
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.hasNewTags:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;)Z
ifne 4
new java.lang.AssertionError
dup
ldc "There should always be some new materialize tag!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
astore 3
start local 3 5: new com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
dup
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference.<init>:(Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set;Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;)V
astore 4
start local 4 6: aload 0
aload 4
putfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
end local 4 end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 8 1 retiredNode Lcom/oracle/truffle/api/nodes/Node;
0 8 2 materializeTags Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
5 7 3 previousRetiredNodeReference Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
6 7 4 newRetiredNodeReference Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
Signature: (Lcom/oracle/truffle/api/nodes/Node;Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)V
MethodParameters:
Name Flags
retiredNode
materializeTags
public void onEnter(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdate:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onEnter:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
3: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 4 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 4 2 localChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
public void onReturnValue(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdate:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 3
start local 3 1: getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 2
aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.isNullOrInteropValue:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 3
ifnull 4
3: aload 3
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
aload 2
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onReturnValue:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 5 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 5 2 result Ljava/lang/Object;
1 5 3 localChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
result
private boolean isNullOrInteropValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode
ifne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
ifnonnull 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.interopAccess:()Lcom/oracle/truffle/api/impl/Accessor$InteropSupport;
aload 1
invokevirtual com.oracle.truffle.api.impl.Accessor$InteropSupport.checkInteropType:(Ljava/lang/Object;)V
5: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 6 1 result Ljava/lang/Object;
MethodParameters:
Name Flags
result
public com.oracle.truffle.api.nodes.Node copy();
descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.nodes.Node.copy:()Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.api.instrumentation.ProbeNode
astore 1
start local 1 1: aload 1
new com.oracle.truffle.api.instrumentation.EventContext
dup
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokespecial com.oracle.truffle.api.instrumentation.EventContext.<init>:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;Lcom/oracle/truffle/api/source/SourceSection;)V
putfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
1 3 1 pn Lcom/oracle/truffle/api/instrumentation/ProbeNode;
public java.lang.Object onReturnExceptionalOrUnwind(com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable, boolean);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;Z)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 2
instanceof com.oracle.truffle.api.instrumentation.UnwindException
ifeq 5
2: aload 0
iconst_1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.profileBranch:(I)V
3: aload 2
checkcast com.oracle.truffle.api.instrumentation.UnwindException
astore 4
4: goto 7
StackMap locals: com.oracle.truffle.api.instrumentation.UnwindException
StackMap stack:
5: aload 2
instanceof java.lang.ThreadDeath
ifeq 7
6: aload 2
checkcast java.lang.ThreadDeath
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdate:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 5
start local 5 8: aload 5
ifnull 29
9: iload 3
ifne 19
10: aload 5
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
aload 2
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onReturnExceptional:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
11: goto 19
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame java.lang.Throwable int com.oracle.truffle.api.instrumentation.UnwindException com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack: com.oracle.truffle.api.instrumentation.UnwindException
12: astore 6
start local 6 13: aload 0
iconst_1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.profileBranch:(I)V
14: aload 4
ifnull 18
aload 4
aload 6
if_acmpeq 18
15: aload 0
iconst_2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.profileBranch:(I)V
16: aload 4
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.UnwindException.addNext:(Lcom/oracle/truffle/api/instrumentation/UnwindException;)V
17: goto 19
18: StackMap locals: com.oracle.truffle.api.instrumentation.UnwindException
StackMap stack:
aload 6
astore 4
end local 6 19: StackMap locals:
StackMap stack:
aload 4
ifnull 29
20: aload 5
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
aload 4
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onUnwind:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/UnwindException;)Ljava/lang/Object;
astore 6
start local 6 21: aload 6
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
if_acmpne 24
22: aload 0
bipush 8
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.profileBranch:(I)V
23: getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
areturn
24: StackMap locals: java.lang.Object
StackMap stack:
aload 6
ifnull 28
aload 6
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_IGNORED:Ljava/lang/Object;
if_acmpeq 28
25: aload 0
iconst_4
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.profileBranch:(I)V
26: getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 27
aload 0
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.isNullOrInteropValue:(Ljava/lang/Object;)Z
ifne 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 6
areturn
28: StackMap locals:
StackMap stack:
aload 4
athrow
end local 6 29: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 30 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 30 2 exception Ljava/lang/Throwable;
0 30 3 isReturnCalled Z
1 30 4 unwind Lcom/oracle/truffle/api/instrumentation/UnwindException;
8 30 5 localChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
13 19 6 ex Lcom/oracle/truffle/api/instrumentation/UnwindException;
21 29 6 ret Ljava/lang/Object;
Exception table:
from to target type
10 11 12 Class com.oracle.truffle.api.instrumentation.UnwindException
MethodParameters:
Name Flags
frame
exception
isReturnCalled
private void profileBranch(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.seen:I
iload 1
iand
ifne 3
1: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
2: aload 0
dup
getfield com.oracle.truffle.api.instrumentation.ProbeNode.seen:I
iload 1
ior
putfield com.oracle.truffle.api.instrumentation.ProbeNode.seen:I
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 4 1 flag I
MethodParameters:
Name Flags
flag
void onInputValue(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.EventBinding<?>, com.oracle.truffle.api.instrumentation.EventContext, int, );
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding;Lcom/oracle/truffle/api/instrumentation/EventContext;ILjava/lang/Object;)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdate:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 6
start local 6 1: aload 6
ifnull 3
2: aload 6
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
aload 2
aload 3
iload 4
aload 5
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onInputValue:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding;Lcom/oracle/truffle/api/instrumentation/EventContext;ILjava/lang/Object;)V
3: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 4 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 4 2 targetBinding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
0 4 3 inputContext Lcom/oracle/truffle/api/instrumentation/EventContext;
0 4 4 inputIndex I
0 4 5 inputValue Ljava/lang/Object;
1 4 6 localChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
Signature: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;Lcom/oracle/truffle/api/instrumentation/EventContext;ILjava/lang/Object;)V
MethodParameters:
Name Flags
frame
targetBinding
inputContext
inputIndex
inputValue
com.oracle.truffle.api.instrumentation.EventContext getContext();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/EventContext;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode findWrapper();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 1
start local 1 1: aload 1
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifne 6
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 1
ifnonnull 5
4: new java.lang.AssertionError
dup
ldc "Probe node disconnected from AST."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
new java.lang.AssertionError
dup
ldc "ProbeNodes must have a parent Node that implements NodeWrapper."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
aload 1
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
1 7 1 parent Lcom/oracle/truffle/api/nodes/Node;
Exceptions:
throws java.lang.AssertionError
synchronized void invalidate();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.version:Lcom/oracle/truffle/api/Assumption;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokeinterface com.oracle.truffle.api.Assumption.invalidate:()V
3: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
1 4 1 localVersion Lcom/oracle/truffle/api/Assumption;
com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode lazyUpdate(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.version:Lcom/oracle/truffle/api/Assumption;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifne 4
2: StackMap locals: com.oracle.truffle.api.Assumption
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdatedImpl:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 5 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 5 2 localVersion Lcom/oracle/truffle/api/Assumption;
MethodParameters:
Name Flags
frame
private com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode lazyUpdatedImpl(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getLock:()Ljava/util/concurrent/locks/Lock;
astore 4
start local 4 1: aload 4
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.version:Lcom/oracle/truffle/api/Assumption;
astore 5
start local 5 3: aload 5
ifnull 7
aload 5
invokeinterface com.oracle.truffle.api.Assumption.isValid:()Z
ifeq 7
4: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 8
5: aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 8
areturn
7: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame top top java.util.concurrent.locks.Lock com.oracle.truffle.api.Assumption
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.handler:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getExecutionBindingsSnapshot:()[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
astore 6
start local 6 8: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.handler:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 1
aload 0
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.createBindings:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/ProbeNode;[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 3
start local 3 9: aload 3
ifnonnull 17
10: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.retiredNodeReference:Lcom/oracle/truffle/api/instrumentation/ProbeNode$RetiredNodeReference;
ifnonnull 14
11: aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.removeWrapper:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;)V
12: aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
13: aconst_null
areturn
14: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame top com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode java.util.concurrent.locks.Lock com.oracle.truffle.api.Assumption com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 2
start local 2 15: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
16: goto 19
end local 2 17: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 2
start local 2 18: aload 0
aload 0
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.insert:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
checkcast com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
putfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
19: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode java.util.concurrent.locks.Lock com.oracle.truffle.api.Assumption com.oracle.truffle.api.instrumentation.EventBinding$Source[]
StackMap stack:
aload 0
invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
ldc "Instruments unchanged"
invokeinterface com.oracle.truffle.api.TruffleRuntime.createAssumption:(Ljava/lang/String;)Lcom/oracle/truffle/api/Assumption;
putfield com.oracle.truffle.api.instrumentation.ProbeNode.version:Lcom/oracle/truffle/api/Assumption;
20: aload 6
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.handler:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getExecutionBindingsSnapshot:()[Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
if_acmpne 7
21: getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 25
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.validEventContextOnLazyUpdate:()Z
ifne 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 6 end local 5 end local 3 end local 2 22: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame top top java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
astore 7
23: aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
24: aload 7
athrow
start local 2 start local 3 25: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode java.util.concurrent.locks.Lock
StackMap stack:
aload 4
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
26: aload 2
ifnull 28
27: aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
aload 1
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.onDispose:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
28: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 29 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
15 17 2 oldChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
18 22 2 oldChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
25 29 2 oldChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
9 22 3 nextChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
25 29 3 nextChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
1 29 4 lock Ljava/util/concurrent/locks/Lock;
3 22 5 localVersion Lcom/oracle/truffle/api/Assumption;
8 22 6 executionBindingsSnapshot [Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
Exception table:
from to target type
2 5 22 any
7 12 22 any
14 22 22 any
MethodParameters:
Name Flags
frame
com.oracle.truffle.api.instrumentation.ExecutionEventNode lookupExecutionEventNode(com.oracle.truffle.api.instrumentation.EventBinding<?>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.isDisposed:()Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.chain:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 2
start local 2 3: goto 8
4: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 2
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.binding:Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
aload 1
if_acmpne 7
5: aload 2
instanceof com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode
ifeq 7
6: aload 2
checkcast com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.eventNode:Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
areturn
7: StackMap locals:
StackMap stack:
aload 2
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.next:Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 2
8: StackMap locals:
StackMap stack:
aload 2
ifnonnull 4
9: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 10 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
3 10 2 chainNode Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
MethodParameters:
Name Flags
binding
java.util.Iterator<com.oracle.truffle.api.instrumentation.ExecutionEventNode> lookupExecutionEventNodes(java.util.Collection<com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory>>);
descriptor: (Ljava/util/Collection;)Ljava/util/Iterator;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new com.oracle.truffle.api.instrumentation.ProbeNode$1
dup
aload 0
aload 1
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$1.<init>:(Lcom/oracle/truffle/api/instrumentation/ProbeNode;Ljava/util/Collection;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 1 1 bindings Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;>;
Signature: (Ljava/util/Collection<Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;>;>;)Ljava/util/Iterator<Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;>;
MethodParameters:
Name Flags
bindings
com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode createParentEventChainCallback(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0000)
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.findParentChain:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 5
start local 5 1: aload 5
instanceof com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
ifne 3
2: aconst_null
areturn
3: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.findProbe:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 6
start local 6 4: aload 5
checkcast com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
astore 7
start local 7 5: aload 2
aload 3
aload 4
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
aload 6
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.indexOfChild:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)I
istore 8
start local 8 6: iload 8
iflt 7
iload 8
aload 7
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
if_icmplt 9
7: StackMap locals: com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode int
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 8
aload 7
aload 6
aload 2
aload 3
aload 4
iload 8
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.throwIllegalASTAssertion:(Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;I)Z
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.findProbe:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
astore 9
start local 9 10: new com.oracle.truffle.api.instrumentation.ProbeNode$InputValueChainNode
dup
aload 2
aload 9
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
iload 8
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$InputValueChainNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ProbeNode;Lcom/oracle/truffle/api/instrumentation/EventContext;I)V
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 11 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 11 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 11 3 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 11 4 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
1 11 5 parent Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
4 11 6 parentContext Lcom/oracle/truffle/api/instrumentation/EventContext;
5 11 7 parentChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
6 11 8 index I
10 11 9 probe Lcom/oracle/truffle/api/instrumentation/ProbeNode;
Signature: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
binding
rootNode
providedTags
private static boolean throwIllegalASTAssertion(com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode, com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, );
descriptor: (Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=15, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 1: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
astore 7
start local 7 2: aload 2
aload 3
aload 4
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
3: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
iload 5
bipush 10
iadd
invokestatic java.lang.Math.max:(II)I
4: invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.findChildContexts:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;I)[Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 8
start local 8 5: iconst_0
istore 9
start local 9 6: iconst_0
istore 10
start local 10 7: goto 12
8: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set int java.lang.StringBuilder com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.EventContext[] int int
StackMap stack:
aload 8
iload 10
aaload
astore 11
start local 11 9: aload 11
ifnull 11
10: iinc 9 1
end local 11 11: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
12: iload 10
aload 8
arraylength
if_icmplt 8
end local 10 13: aload 6
new java.lang.StringBuilder
dup
ldc "Stable AST assumption violated. "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " children expected got "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 6
new java.lang.StringBuilder
dup
ldc "\n Parent: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: iconst_0
istore 10
start local 10 16: goto 39
17: StackMap locals:
StackMap stack:
aload 8
iload 10
aaload
astore 11
start local 11 18: aload 11
ifnonnull 20
19: goto 38
20: StackMap locals: com.oracle.truffle.api.instrumentation.EventContext
StackMap stack:
aload 6
new java.lang.StringBuilder
dup
ldc "\nChild["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
21: aload 11
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 12
start local 12 22: ldc " "
astore 13
start local 13 23: goto 37
24: StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.String
StackMap stack:
aload 6
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: aload 6
aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
26: aload 12
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
if_acmpne 29
27: aload 6
ldc "Parent"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: goto 38
29: StackMap locals:
StackMap stack:
aload 12
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnonnull 32
30: aload 6
ldc "null parent = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: goto 34
32: StackMap locals:
StackMap stack:
aload 12
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
aload 12
invokestatic com.oracle.truffle.api.nodes.NodeUtil.findChildField:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getName:()Ljava/lang/String;
astore 14
start local 14 33: aload 6
new java.lang.StringBuilder
dup
aload 12
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 14 34: StackMap locals:
StackMap stack:
aload 6
new java.lang.StringBuilder
dup
aload 12
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "#"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
35: new java.lang.StringBuilder
dup
aload 13
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 13
36: aload 12
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 12
37: StackMap locals:
StackMap stack:
aload 12
ifnonnull 24
end local 13 end local 12 end local 11 38: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
39: iload 10
aload 8
arraylength
if_icmplt 17
end local 10 end local 9 end local 8 end local 7 40: goto 45
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set int java.lang.StringBuilder
StackMap stack: java.lang.Throwable
41: astore 7
start local 7 42: new java.lang.AssertionError
dup
ldc "Stable AST assumption violated"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
astore 8
start local 8 43: aload 8
aload 7
invokevirtual java.lang.AssertionError.addSuppressed:(Ljava/lang/Throwable;)V
44: aload 8
athrow
end local 8 end local 7 45: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 6
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 parentChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 46 1 parentContext Lcom/oracle/truffle/api/instrumentation/EventContext;
0 46 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 46 3 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 46 4 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 46 5 index I
1 46 6 msg Ljava/lang/StringBuilder;
2 40 7 parentSourceSection Lcom/oracle/truffle/api/source/SourceSection;
5 40 8 contexts [Lcom/oracle/truffle/api/instrumentation/EventContext;
6 40 9 contextCount I
7 13 10 i I
9 11 11 eventContext Lcom/oracle/truffle/api/instrumentation/EventContext;
16 40 10 i I
18 38 11 eventContext Lcom/oracle/truffle/api/instrumentation/EventContext;
22 38 12 node Lcom/oracle/truffle/api/nodes/Node;
23 38 13 indent Ljava/lang/String;
33 34 14 fieldName Ljava/lang/String;
42 45 7 e Ljava/lang/Throwable;
43 45 8 error Ljava/lang/AssertionError;
Exception table:
from to target type
1 40 41 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;I)Z
MethodParameters:
Name Flags
parentChain
parentContext
binding
rootNode
providedTags
index
com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode createEventChainCallback(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0000)
Code:
stack=6, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
astore 8
start local 8 1: aload 8
instanceof com.oracle.truffle.api.instrumentation.ExecutionEventListener
ifeq 4
2: new com.oracle.truffle.api.instrumentation.ProbeNode$EventFilterChainNode
dup
aload 2
aload 8
checkcast com.oracle.truffle.api.instrumentation.ExecutionEventListener
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventFilterChainNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)V
astore 7
start local 7 3: goto 25
end local 7 4: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.lang.Object
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.$assertionsDisabled:Z
ifne 5
aload 8
instanceof com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 8
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.createEventNode:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/Object;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
astore 9
start local 9 6: aload 9
ifnonnull 8
7: aconst_null
areturn
8: StackMap locals: com.oracle.truffle.api.instrumentation.ExecutionEventNode
StackMap stack:
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInputFilter:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
ifnull 24
9: aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.findParentChain:(Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 10
start local 10 10: aload 10
checkcast com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
astore 11
start local 11 11: aload 11
ifnonnull 14
12: iconst_0
istore 12
start local 12 13: goto 21
end local 12 14: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
StackMap stack:
aload 11
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.findProbe:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getContext:()Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 13
start local 13 15: aload 2
aload 3
aload 4
aload 13
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
aload 13
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 5
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.indexOfChild:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)I
istore 14
start local 14 16: aload 11
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputBaseIndex:I
istore 15
start local 15 17: iload 14
ifge 20
18: iload 15
aload 11
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
iadd
istore 12
start local 12 19: goto 21
end local 12 20: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.lang.Object com.oracle.truffle.api.instrumentation.ExecutionEventNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode top com.oracle.truffle.api.instrumentation.EventContext int int
StackMap stack:
iload 15
iload 14
iadd
istore 12
end local 15 end local 14 end local 13 start local 12 21: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection top java.lang.Object com.oracle.truffle.api.instrumentation.ExecutionEventNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode int
StackMap stack:
aload 2
aload 3
aload 4
aload 5
aload 6
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.countChildren:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)I
istore 13
start local 13 22: new com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
dup
aload 2
aload 9
iload 12
iload 13
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;II)V
astore 7
end local 13 end local 12 end local 11 end local 10 start local 7 23: goto 25
end local 7 24: StackMap locals:
StackMap stack:
new com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode
dup
aload 2
aload 9
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;)V
astore 7
end local 9 start local 7 25: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.frame.VirtualFrame com.oracle.truffle.api.instrumentation.EventBinding$Source com.oracle.truffle.api.nodes.RootNode java.util.Set com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.source.SourceSection com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode java.lang.Object
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 26 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 26 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 26 3 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 26 4 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 26 5 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
0 26 6 instrumentedNodeSourceSection Lcom/oracle/truffle/api/source/SourceSection;
3 4 7 next Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
23 24 7 next Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
25 26 7 next Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
1 26 8 element Ljava/lang/Object;
6 25 9 eventNode Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
10 23 10 parent Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
11 23 11 parentChain Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
13 14 12 baseInput I
19 20 12 baseInput I
21 23 12 baseInput I
15 21 13 parentContext Lcom/oracle/truffle/api/instrumentation/EventContext;
16 21 14 childIndex I
17 21 15 inputBaseIndex I
22 23 13 inputCount I
Signature: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
binding
rootNode
providedTags
instrumentedNode
instrumentedNodeSourceSection
static com.oracle.truffle.api.instrumentation.EventContext[] findChildContexts(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, int);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;I)[Lcom/oracle/truffle/api/instrumentation/EventContext;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new com.oracle.truffle.api.instrumentation.ProbeNode$InputChildContextLookup
dup
aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$InputChildContextLookup.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;I)V
astore 6
start local 6 1: aload 3
aload 6
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
pop
2: aload 6
getfield com.oracle.truffle.api.instrumentation.ProbeNode$InputChildContextLookup.foundContexts:[Lcom/oracle/truffle/api/instrumentation/EventContext;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 3 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 3 2 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 3 3 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
0 3 4 instrumentedNodeSourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 3 5 inputCount I
1 3 6 visitor Lcom/oracle/truffle/api/instrumentation/ProbeNode$InputChildContextLookup;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;I)[Lcom/oracle/truffle/api/instrumentation/EventContext;
MethodParameters:
Name Flags
binding
rootNode
providedTags
instrumentedNode
instrumentedNodeSourceSection
inputCount
private static int indexOfChild(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection, com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup
dup
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)V
astore 6
start local 6 1: aload 3
aload 6
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
pop
2: aload 6
getfield com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup.found:Z
ifeq 3
aload 6
getfield com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup.index:I
goto 4
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup
StackMap stack:
3: iconst_m1
StackMap locals:
StackMap stack: int
4: ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 5 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 5 2 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 5 3 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
0 5 4 instrumentedNodeSourceSection Lcom/oracle/truffle/api/source/SourceSection;
0 5 5 lookupChild Lcom/oracle/truffle/api/nodes/Node;
1 5 6 visitor Lcom/oracle/truffle/api/instrumentation/ProbeNode$InputChildIndexLookup;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)I
MethodParameters:
Name Flags
binding
rootNode
providedTags
instrumentedNode
instrumentedNodeSourceSection
lookupChild
private static int countChildren(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup
dup
aload 0
aload 1
aload 2
aload 3
aload 4
aconst_null
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;)V
astore 5
start local 5 1: aload 3
aload 5
invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
pop
2: aload 5
getfield com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup.index:I
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 3 1 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
0 3 2 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
0 3 3 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
0 3 4 instrumentedNodeSourceSection Lcom/oracle/truffle/api/source/SourceSection;
1 3 5 visitor Lcom/oracle/truffle/api/instrumentation/ProbeNode$InputChildIndexLookup;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)I
MethodParameters:
Name Flags
binding
rootNode
providedTags
instrumentedNode
instrumentedNodeSourceSection
private com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode findParentChain(com.oracle.truffle.api.frame.VirtualFrame, com.oracle.truffle.api.instrumentation.EventBinding<?>);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
start local 3 1: goto 12
2: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
aload 3
instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
ifeq 9
3: aload 3
checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getProbeNode:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
astore 4
start local 4 4: aload 4
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode.lazyUpdate:(Lcom/oracle/truffle/api/frame/VirtualFrame;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 5
start local 5 5: aload 5
ifnull 7
6: aload 5
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode.find:(Lcom/oracle/truffle/api/instrumentation/EventBinding;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
astore 5
7: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode
StackMap stack:
aload 5
ifnull 11
8: aload 5
areturn
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 3
instanceof com.oracle.truffle.api.nodes.RootNode
ifeq 11
10: goto 13
11: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
astore 3
12: StackMap locals:
StackMap stack:
aload 3
ifnonnull 2
13: StackMap locals:
StackMap stack:
aload 3
ifnonnull 15
14: new java.lang.IllegalStateException
dup
ldc "The AST node is not yet adopted. "
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 16 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 16 2 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;
1 16 3 node Lcom/oracle/truffle/api/nodes/Node;
4 9 4 probe Lcom/oracle/truffle/api/instrumentation/ProbeNode;
5 9 5 c Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
Signature: (Lcom/oracle/truffle/api/frame/VirtualFrame;Lcom/oracle/truffle/api/instrumentation/EventBinding<*>;)Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventChainNode;
MethodParameters:
Name Flags
frame
binding
private com.oracle.truffle.api.instrumentation.ExecutionEventNode createEventNode(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, );
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/Object;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
checkcast com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
invokeinterface com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory.create:(Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
astore 3
start local 3 1: aload 3
ifnull 14
aload 3
invokevirtual com.oracle.truffle.api.instrumentation.ExecutionEventNode.getParent:()Lcom/oracle/truffle/api/nodes/Node;
ifnull 14
2: new java.lang.IllegalStateException
dup
ldc "Returned EventNode %s was already adopted by another AST."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 3 3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 4: aload 4
instanceof com.oracle.truffle.api.instrumentation.InstrumentException
ifeq 12
5: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
6: new java.lang.IllegalStateException
dup
7: ldc "Error propagation is not supported in %s.create(%s). Errors propagated in this method may result in an AST that never stabilizes. Propagate the error in one of the execution event node events like onEnter, onInputValue, onReturn or onReturnExceptional to resolve this problem."
iconst_2
anewarray java.lang.Object
dup
iconst_0
8: ldc Lcom/oracle/truffle/api/instrumentation/ExecutionEventNodeFactory;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
9: ldc Lcom/oracle/truffle/api/instrumentation/EventContext;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
10: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
11: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source java.lang.Object top java.lang.Throwable
StackMap stack:
aload 1
ldc "ProbeNodeFactory.create"
aload 4
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
13: aconst_null
areturn
end local 4 start local 3 14: StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode com.oracle.truffle.api.instrumentation.EventBinding$Source java.lang.Object com.oracle.truffle.api.instrumentation.ExecutionEventNode
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
0 15 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 15 2 element Ljava/lang/Object;
1 3 3 eventNode Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
14 15 3 eventNode Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
4 14 4 t Ljava/lang/Throwable;
Exception table:
from to target type
0 3 3 Class java.lang.Throwable
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Ljava/lang/Object;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
MethodParameters:
Name Flags
binding
element
static void exceptionEventForClientInstrument(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, java.lang.String, java.lang.Throwable);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof java.lang.ThreadDeath
ifeq 2
1: aload 2
checkcast java.lang.ThreadDeath
athrow
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getCurrentPolyglotEngine:()Ljava/lang/Object;
astore 3
start local 3 3: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
instanceof com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter
ifne 4
aload 3
ifnull 5
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.engineAccess:()Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
aload 3
invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.isInstrumentExceptionsAreThrown:(Ljava/lang/Object;)Z
ifeq 5
4: StackMap locals: java.lang.Object
StackMap stack:
ldc Ljava/lang/RuntimeException;
aload 2
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.sthrow:(Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
checkcast com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter
astore 4
start local 4 6: ldc "Event %s failed for instrument class %s and listener/factory %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
7: aload 1
aastore
dup
iconst_1
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.getInstrumentClassName:()Ljava/lang/String;
aastore
dup
iconst_2
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 5
start local 5 9: new java.lang.Exception
dup
aload 5
aload 2
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 6
start local 6 10: new java.io.PrintStream
dup
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter.getEnv:()Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.err:()Ljava/io/OutputStream;
invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
astore 7
start local 7 11: aload 6
aload 7
invokevirtual java.lang.Exception.printStackTrace:(Ljava/io/PrintStream;)V
12: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 b Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 13 1 eventName Ljava/lang/String;
0 13 2 t Ljava/lang/Throwable;
3 13 3 polyglotEngine Ljava/lang/Object;
6 13 4 instrumenter Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$InstrumentClientInstrumenter;
9 13 5 message Ljava/lang/String;
10 13 6 exception Ljava/lang/Exception;
11 13 7 stream Ljava/io/PrintStream;
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Ljava/lang/String;Ljava/lang/Throwable;)V
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
MethodParameters:
Name Flags
b
eventName
t
public com.oracle.truffle.api.nodes.NodeCost getCost();
descriptor: ()Lcom/oracle/truffle/api/nodes/NodeCost;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic com.oracle.truffle.api.nodes.NodeCost.NONE:Lcom/oracle/truffle/api/nodes/NodeCost;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode;
private static boolean checkInteropType(, com.oracle.truffle.api.instrumentation.EventBinding$Source<?>);
descriptor: (Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
ifnull 17
aload 0
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
if_acmpeq 17
aload 0
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_IGNORED:Ljava/lang/Object;
if_acmpeq 17
getstatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.ACCESSOR:Lcom/oracle/truffle/api/instrumentation/InstrumentAccessor;
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentAccessor.isTruffleObject:(Ljava/lang/Object;)Z
ifne 17
1: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 2
start local 2 2: aload 2
ldc Ljava/lang/Byte;
if_acmpeq 17
3: aload 2
ldc Ljava/lang/Short;
if_acmpeq 17
4: aload 2
ldc Ljava/lang/Integer;
if_acmpeq 17
5: aload 2
ldc Ljava/lang/Long;
if_acmpeq 17
6: aload 2
ldc Ljava/lang/Float;
if_acmpeq 17
7: aload 2
ldc Ljava/lang/Double;
if_acmpeq 17
8: aload 2
ldc Ljava/lang/Character;
if_acmpeq 17
9: aload 2
ldc Ljava/lang/Boolean;
if_acmpeq 17
10: aload 2
ldc Ljava/lang/String;
if_acmpeq 17
11: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
12: new java.lang.ClassCastException
dup
new java.lang.StringBuilder
dup
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " isn't allowed Truffle interop type!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
astore 3
start local 3 13: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isLanguageBinding:()Z
ifeq 15
14: aload 3
athrow
15: StackMap locals: java.lang.Class java.lang.ClassCastException
StackMap stack:
aload 1
ldc "onUnwind"
aload 3
invokestatic com.oracle.truffle.api.instrumentation.ProbeNode.exceptionEventForClientInstrument:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Ljava/lang/String;Ljava/lang/Throwable;)V
16: iconst_0
ireturn
end local 3 end local 2 17: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 value Ljava/lang/Object;
0 18 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
2 17 2 clazz Ljava/lang/Class<*>;
13 17 3 ccex Ljava/lang/ClassCastException;
Signature: (Ljava/lang/Object;Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;)Z
MethodParameters:
Name Flags
value
binding
private static java.lang.Object mergePostUnwindReturns(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ifnull 1
aload 1
ifnonnull 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_IGNORED:Ljava/lang/Object;
if_acmpne 4
3: aload 1
areturn
4: StackMap locals:
StackMap stack:
aload 1
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_IGNORED:Ljava/lang/Object;
if_acmpne 6
5: aload 0
areturn
6: StackMap locals:
StackMap stack:
aload 0
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
if_acmpeq 7
aload 1
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
if_acmpne 8
7: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode.UNWIND_ACTION_REENTER:Ljava/lang/Object;
areturn
8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 r1 Ljava/lang/Object;
0 9 1 r2 Ljava/lang/Object;
MethodParameters:
Name Flags
r1
r2
private static <T extends java.lang.Throwable> T sthrow(java.lang.Class<T>, java.lang.Throwable) throws T;
descriptor: (Ljava/lang/Class;Ljava/lang/Throwable;)Ljava/lang/Throwable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class<TT;>;
0 1 1 t Ljava/lang/Throwable;
Exceptions:
throws java.lang.Throwable
Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Class<TT;>;Ljava/lang/Throwable;)TT;^TT;
MethodParameters:
Name Flags
type
t
}
SourceFile: "ProbeNode.java"
NestMembers:
com.oracle.truffle.api.instrumentation.ProbeNode$1 com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventFilterChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID com.oracle.truffle.api.instrumentation.ProbeNode$InputChildContextLookup com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup com.oracle.truffle.api.instrumentation.ProbeNode$InputValueChainNode com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
public abstract InteropSupport = com.oracle.truffle.api.impl.Accessor$InteropSupport of com.oracle.truffle.api.impl.Accessor
final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
abstract AbstractInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final EngineInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$EngineInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final InstrumentClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$InstrumentClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
com.oracle.truffle.api.instrumentation.ProbeNode$1
abstract EventChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
private EventFilterChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventFilterChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
EventProviderChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
EventProviderWithInputChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
private InputChildContextLookup = com.oracle.truffle.api.instrumentation.ProbeNode$InputChildContextLookup of com.oracle.truffle.api.instrumentation.ProbeNode
private InputChildIndexLookup = com.oracle.truffle.api.instrumentation.ProbeNode$InputChildIndexLookup of com.oracle.truffle.api.instrumentation.ProbeNode
private InputValueChainNode = com.oracle.truffle.api.instrumentation.ProbeNode$InputValueChainNode of com.oracle.truffle.api.instrumentation.ProbeNode
private abstract InstrumentableChildVisitor = com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor of com.oracle.truffle.api.instrumentation.ProbeNode
RetiredNodeReference = com.oracle.truffle.api.instrumentation.ProbeNode$RetiredNodeReference of com.oracle.truffle.api.instrumentation.ProbeNode
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node