class com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode extends com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode
super_class: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode
{
static final java.lang.Object[] EMPTY_ARRAY;
descriptor: [Ljava/lang/Object;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private volatile com.oracle.truffle.api.frame.FrameSlot[] inputSlots;
descriptor: [Lcom/oracle/truffle/api/frame/FrameSlot;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
private volatile com.oracle.truffle.api.frame.FrameDescriptor sourceFrameDescriptor;
descriptor: Lcom/oracle/truffle/api/frame/FrameDescriptor;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal()
final int inputBaseIndex;
descriptor: I
flags: (0x0010) ACC_FINAL
final int inputCount;
descriptor: I
flags: (0x0010) ACC_FINAL
volatile com.oracle.truffle.api.instrumentation.EventContext[] inputContexts;
descriptor: [Lcom/oracle/truffle/api/instrumentation/EventContext;
flags: (0x0040) ACC_VOLATILE
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$CompilationFinal(dimensions = 1)
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: 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$EventProviderWithInputChainNode.$assertionsDisabled:Z
3: iconst_0
anewarray java.lang.Object
putstatic com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.EMPTY_ARRAY:[Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.instrumentation.ExecutionEventNode, int, );
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;II)V
flags: (0x0000)
Code:
stack=3, locals=5, 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
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;)V
1: aload 0
iload 3
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputBaseIndex:I
2: aload 0
iload 4
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
3: return
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$EventProviderWithInputChainNode;
0 4 1 binding Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
0 4 2 eventNode Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
0 4 3 inputBaseIndex I
0 4 4 inputCount I
Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;II)V
MethodParameters:
Name Flags
binding
eventNode
inputBaseIndex
inputCount
final int getInputCount();
descriptor: ()I
flags: (0x0010) ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
final com.oracle.truffle.api.instrumentation.EventContext getInputContext(int);
descriptor: (I)Lcom/oracle/truffle/api/instrumentation/EventContext;
flags: (0x0010) ACC_FINAL
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputContexts:[Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 2
start local 2 1: aload 2
ifnonnull 8
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.findProbe:()Lcom/oracle/truffle/api/instrumentation/ProbeNode;
astore 3
start local 3 4: aload 3
getfield com.oracle.truffle.api.instrumentation.ProbeNode.context:Lcom/oracle/truffle/api/instrumentation/EventContext;
astore 4
start local 4 5: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 5
start local 5 6: aload 3
getfield com.oracle.truffle.api.instrumentation.ProbeNode.handler:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 5
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
astore 6
start local 6 7: aload 0
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getBinding:()Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
aload 5
aload 6
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
aload 4
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
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;
dup
astore 2
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputContexts:[Lcom/oracle/truffle/api/instrumentation/EventContext;
end local 6 end local 5 end local 4 end local 3 8: StackMap locals: com.oracle.truffle.api.instrumentation.EventContext[]
StackMap stack:
aload 2
ifnonnull 11
9: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
10: new java.lang.IllegalStateException
dup
ldc "Input event context not yet available. They are only available during event notifications."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
iload 1
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 12 1 index I
1 12 2 contexts [Lcom/oracle/truffle/api/instrumentation/EventContext;
4 8 3 probe Lcom/oracle/truffle/api/instrumentation/ProbeNode;
5 8 4 thisContext Lcom/oracle/truffle/api/instrumentation/EventContext;
6 8 5 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
7 8 6 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
index
final void saveInputValue(com.oracle.truffle.api.frame.VirtualFrame, int, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;ILjava/lang/Object;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.verifyIndex:(I)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
ifnonnull 4
2: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
3: aload 0
aload 1
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.initializeSlots:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
4: StackMap locals:
StackMap stack:
getstatic com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.$assertionsDisabled:Z
ifne 5
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.sourceFrameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
if_acmpeq 5
new java.lang.AssertionError
dup
ldc "Unstable frame descriptor used by the language."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
iload 2
aaload
aload 3
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 7 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 7 2 inputIndex I
0 7 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
frame
inputIndex
value
private void initializeSlots(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getLock:()Ljava/util/concurrent/locks/Lock;
astore 2
start local 2 1: aload 2
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
ifnonnull 19
3: getstatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.TRACE:Z
ifeq 5
4: ldc "SLOTS: Adding %s save slots for binding %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getBinding:()Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.getElement:()Ljava/lang/Object;
aastore
invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: java.util.concurrent.locks.Lock
StackMap stack:
aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
astore 3
start local 3 6: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
anewarray com.oracle.truffle.api.frame.FrameSlot
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 12
9: StackMap locals: com.oracle.truffle.api.frame.FrameDescriptor com.oracle.truffle.api.frame.FrameSlot[] int
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputBaseIndex:I
iload 5
iadd
istore 6
start local 6 10: aload 4
iload 5
aload 3
new com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID
dup
aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getBinding:()Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
iload 6
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID.<init>:(Lcom/oracle/truffle/api/instrumentation/EventBinding;I)V
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findOrAddFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
aastore
end local 6 11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
if_icmplt 9
end local 5 13: aload 0
aload 3
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.sourceFrameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
14: aload 0
aload 4
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
end local 4 end local 3 15: goto 19
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.frame.VirtualFrame java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
16: astore 7
17: aload 2
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
18: aload 7
athrow
19: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
20: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 21 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 21 2 lock Ljava/util/concurrent/locks/Lock;
6 15 3 frameDescriptor Lcom/oracle/truffle/api/frame/FrameDescriptor;
7 15 4 slots [Lcom/oracle/truffle/api/frame/FrameSlot;
8 13 5 i I
10 11 6 slotIndex I
Exception table:
from to target type
2 16 16 any
MethodParameters:
Name Flags
frame
private void verifyIndex(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputCount:I
if_icmpge 1
iload 1
ifge 3
1: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
2: new java.lang.IllegalArgumentException
dup
ldc "Invalid input index."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
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$EventProviderWithInputChainNode;
0 4 1 inputIndex I
MethodParameters:
Name Flags
inputIndex
protected void innerOnDispose(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.getLock:()Ljava/util/concurrent/locks/Lock;
astore 3
start local 3 1: aload 3
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
ifnull 22
3: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
astore 4
start local 4 4: aload 0
aconst_null
putfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
5: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
astore 5
start local 5 6: aload 5
ifnonnull 9
7: aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: return
9: StackMap locals: java.util.concurrent.locks.Lock com.oracle.truffle.api.frame.FrameSlot[] com.oracle.truffle.api.nodes.RootNode
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.api.nodes.RootNode.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
astore 6
start local 6 10: getstatic com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.$assertionsDisabled:Z
ifne 11
aload 6
ifnonnull 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals: com.oracle.truffle.api.frame.FrameDescriptor
StackMap stack:
aload 4
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 17
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.frame.VirtualFrame java.util.concurrent.locks.Lock com.oracle.truffle.api.frame.FrameSlot[] com.oracle.truffle.api.nodes.RootNode com.oracle.truffle.api.frame.FrameDescriptor top int int com.oracle.truffle.api.frame.FrameSlot[]
StackMap stack:
12: aload 10
iload 8
aaload
astore 7
start local 7 13: aload 6
aload 7
invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.findFrameSlot:(Ljava/lang/Object;)Lcom/oracle/truffle/api/frame/FrameSlot;
astore 11
start local 11 14: aload 11
ifnull 16
15: aload 6
aload 7
invokevirtual com.oracle.truffle.api.frame.FrameSlot.getIdentifier:()Ljava/lang/Object;
invokevirtual com.oracle.truffle.api.frame.FrameDescriptor.removeFrameSlot:(Ljava/lang/Object;)V
end local 11 end local 7 16: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 9
if_icmplt 12
end local 6 end local 5 end local 4 18: goto 22
StackMap locals: com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode com.oracle.truffle.api.instrumentation.EventContext com.oracle.truffle.api.frame.VirtualFrame java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
19: astore 12
20: aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
21: aload 12
athrow
22: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
23: aload 0
aload 1
aload 2
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.innerOnDispose:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;)V
24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 25 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 25 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 25 3 lock Ljava/util/concurrent/locks/Lock;
4 18 4 slots [Lcom/oracle/truffle/api/frame/FrameSlot;
6 18 5 rootNode Lcom/oracle/truffle/api/nodes/RootNode;
10 18 6 descriptor Lcom/oracle/truffle/api/frame/FrameDescriptor;
13 16 7 slot Lcom/oracle/truffle/api/frame/FrameSlot;
14 16 11 resolvedSlot Lcom/oracle/truffle/api/frame/FrameSlot;
Exception table:
from to target type
2 7 19 any
9 19 19 any
MethodParameters:
Name Flags
context
frame
protected void innerOnReturnExceptional(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Throwable);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.innerOnReturnExceptional:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Throwable;)V
1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.clearSlots:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 3 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 3 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 3 3 exception Ljava/lang/Throwable;
MethodParameters:
Name Flags
context
frame
exception
protected void innerOnReturnValue(com.oracle.truffle.api.instrumentation.EventContext, com.oracle.truffle.api.frame.VirtualFrame, java.lang.Object);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderChainNode.innerOnReturnValue:(Lcom/oracle/truffle/api/instrumentation/EventContext;Lcom/oracle/truffle/api/frame/VirtualFrame;Ljava/lang/Object;)V
1: aload 0
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.clearSlots:(Lcom/oracle/truffle/api/frame/VirtualFrame;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 3 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
0 3 2 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 3 3 result Ljava/lang/Object;
MethodParameters:
Name Flags
context
frame
result
private void clearSlots(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
astore 2
start local 2 1: aload 2
ifnull 8
2: aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.sourceFrameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
if_acmpne 8
3: iconst_0
istore 3
start local 3 4: goto 7
5: StackMap locals: com.oracle.truffle.api.frame.FrameSlot[] int
StackMap stack:
aload 1
aload 2
iload 3
aaload
aconst_null
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.setObject:(Lcom/oracle/truffle/api/frame/FrameSlot;Ljava/lang/Object;)V
6: iinc 3 1
StackMap locals:
StackMap stack:
7: iload 3
aload 2
arraylength
if_icmplt 5
end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 9 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 9 2 slots [Lcom/oracle/truffle/api/frame/FrameSlot;
4 8 3 i I
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
protected final java.lang.Object getSavedInputValue(com.oracle.truffle.api.frame.VirtualFrame, int);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;I)Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 2
invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.verifyIndex:(I)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
iload 2
aaload
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getObject:(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/lang/Object;
4: areturn
5: StackMap locals:
StackMap stack: com.oracle.truffle.api.frame.FrameSlotTypeException
astore 3
start local 3 6: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
7: new java.lang.AssertionError
dup
aload 3
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 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$EventProviderWithInputChainNode;
0 8 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
0 8 2 inputIndex I
6 8 3 e Lcom/oracle/truffle/api/frame/FrameSlotTypeException;
Exception table:
from to target type
0 2 5 Class com.oracle.truffle.api.frame.FrameSlotTypeException
3 4 5 Class com.oracle.truffle.api.frame.FrameSlotTypeException
MethodParameters:
Name Flags
frame
inputIndex
protected final java.lang.Object[] getSavedInputValues(com.oracle.truffle.api.frame.VirtualFrame);
descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)[Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: getstatic com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.EMPTY_ARRAY:[Ljava/lang/Object;
areturn
3: StackMap locals: com.oracle.truffle.api.frame.FrameSlot[]
StackMap stack:
aload 1
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getFrameDescriptor:()Lcom/oracle/truffle/api/frame/FrameDescriptor;
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.sourceFrameDescriptor:Lcom/oracle/truffle/api/frame/FrameDescriptor;
if_acmpne 15
4: aload 2
arraylength
anewarray java.lang.Object
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: goto 13
7: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 3
iload 4
aload 1
aload 2
iload 4
aaload
invokeinterface com.oracle.truffle.api.frame.VirtualFrame.getObject:(Lcom/oracle/truffle/api/frame/FrameSlot;)Ljava/lang/Object;
aastore
8: goto 12
StackMap locals:
StackMap stack: com.oracle.truffle.api.frame.FrameSlotTypeException
9: astore 5
start local 5 10: invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
11: new java.lang.AssertionError
dup
aload 5
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 5 12: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
13: iload 4
aload 2
arraylength
if_icmplt 7
end local 4 14: goto 16
end local 3 15: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode.inputSlots:[Lcom/oracle/truffle/api/frame/FrameSlot;
arraylength
anewarray java.lang.Object
astore 3
start local 3 16: StackMap locals: java.lang.Object[]
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/truffle/api/instrumentation/ProbeNode$EventProviderWithInputChainNode;
0 17 1 frame Lcom/oracle/truffle/api/frame/VirtualFrame;
1 17 2 slots [Lcom/oracle/truffle/api/frame/FrameSlot;
5 15 3 inputValues [Ljava/lang/Object;
16 17 3 inputValues [Ljava/lang/Object;
6 14 4 i I
10 12 5 e Lcom/oracle/truffle/api/frame/FrameSlotTypeException;
Exception table:
from to target type
7 8 9 Class com.oracle.truffle.api.frame.FrameSlotTypeException
RuntimeVisibleAnnotations:
com.oracle.truffle.api.nodes.ExplodeLoop()
MethodParameters:
Name Flags
frame
}
SourceFile: "ProbeNode.java"
NestHost: com.oracle.truffle.api.instrumentation.ProbeNode
InnerClasses:
public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
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
final SavedInputValueID = com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode$SavedInputValueID of com.oracle.truffle.api.instrumentation.ProbeNode$EventProviderWithInputChainNode