class com.oracle.truffle.tools.profiler.ShadowStack$1 implements com.oracle.truffle.api.instrumentation.ExecutionEventNodeFactory
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.truffle.tools.profiler.ShadowStack$1
super_class: java.lang.Object
{
final com.oracle.truffle.tools.profiler.ShadowStack this$0;
descriptor: Lcom/oracle/truffle/tools/profiler/ShadowStack;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final com.oracle.truffle.api.instrumentation.Instrumenter val$instrumenter;
descriptor: Lcom/oracle/truffle/api/instrumentation/Instrumenter;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final boolean val$compiledOnly;
descriptor: Z
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.tools.profiler.ShadowStack, com.oracle.truffle.api.instrumentation.Instrumenter, boolean);
descriptor: (Lcom/oracle/truffle/tools/profiler/ShadowStack;Lcom/oracle/truffle/api/instrumentation/Instrumenter;Z)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield com.oracle.truffle.tools.profiler.ShadowStack$1.this$0:Lcom/oracle/truffle/tools/profiler/ShadowStack;
aload 0
aload 2
putfield com.oracle.truffle.tools.profiler.ShadowStack$1.val$instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 0
iload 3
putfield com.oracle.truffle.tools.profiler.ShadowStack$1.val$compiledOnly:Z
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/tools/profiler/ShadowStack$1;
MethodParameters:
Name Flags
this$0 final
val$instrumenter final
val$compiledOnly final
public com.oracle.truffle.api.instrumentation.ExecutionEventNode create(com.oracle.truffle.api.instrumentation.EventContext);
descriptor: (Lcom/oracle/truffle/api/instrumentation/EventContext;)Lcom/oracle/truffle/api/instrumentation/ExecutionEventNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.EventContext.getInstrumentedNode:()Lcom/oracle/truffle/api/nodes/Node;
astore 2
start local 2 1: aload 2
invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
ifnonnull 4
2: aload 0
getfield com.oracle.truffle.tools.profiler.ShadowStack$1.this$0:Lcom/oracle/truffle/tools/profiler/ShadowStack;
getfield com.oracle.truffle.tools.profiler.ShadowStack.logger:Lcom/oracle/truffle/api/TruffleLogger;
new java.lang.StringBuilder
dup
ldc "Instrumented node "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " has null SourceSection."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.oracle.truffle.api.TruffleLogger.warning:(Ljava/lang/String;)V
3: aconst_null
areturn
4: StackMap locals: com.oracle.truffle.api.nodes.Node
StackMap stack:
new com.oracle.truffle.tools.profiler.ShadowStack$StackPushPopNode
dup
aload 0
getfield com.oracle.truffle.tools.profiler.ShadowStack$1.this$0:Lcom/oracle/truffle/tools/profiler/ShadowStack;
aload 0
getfield com.oracle.truffle.tools.profiler.ShadowStack$1.val$instrumenter:Lcom/oracle/truffle/api/instrumentation/Instrumenter;
aload 1
aload 0
getfield com.oracle.truffle.tools.profiler.ShadowStack$1.val$compiledOnly:Z
invokespecial com.oracle.truffle.tools.profiler.ShadowStack$StackPushPopNode.<init>:(Lcom/oracle/truffle/tools/profiler/ShadowStack;Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/EventContext;Z)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/truffle/tools/profiler/ShadowStack$1;
0 5 1 context Lcom/oracle/truffle/api/instrumentation/EventContext;
1 5 2 instrumentedNode Lcom/oracle/truffle/api/nodes/Node;
MethodParameters:
Name Flags
context
}
SourceFile: "ShadowStack.java"
EnclosingMethod: com.oracle.truffle.tools.profiler.ShadowStack.install:(Lcom/oracle/truffle/api/instrumentation/Instrumenter;Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
NestHost: com.oracle.truffle.tools.profiler.ShadowStack
InnerClasses:
com.oracle.truffle.tools.profiler.ShadowStack$1
private StackPushPopNode = com.oracle.truffle.tools.profiler.ShadowStack$StackPushPopNode of com.oracle.truffle.tools.profiler.ShadowStack