public class com.oracle.svm.core.monitor.MonitorSnippets extends com.oracle.svm.core.graal.snippets.SubstrateTemplates implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.core.monitor.MonitorSnippets
super_class: com.oracle.svm.core.graal.snippets.SubstrateTemplates
{
protected static final com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor SLOW_PATH_MONITOR_ENTER;
descriptor: Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected static final com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor SLOW_PATH_MONITOR_EXIT;
descriptor: Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
protected static final com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor[] FOREIGN_CALLS;
descriptor: [Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/monitor/MultiThreadedMonitorSupport;
ldc "slowPathMonitorEnter"
iconst_0
iconst_1
anewarray org.graalvm.word.LocationIdentity
dup
iconst_0
1: invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
aastore
2: invokestatic com.oracle.svm.core.snippets.SnippetRuntime.findForeignCall:(Ljava/lang/Class;Ljava/lang/String;Z[Lorg/graalvm/word/LocationIdentity;)Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
putstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_ENTER:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
3: ldc Lcom/oracle/svm/core/monitor/MultiThreadedMonitorSupport;
ldc "slowPathMonitorExit"
iconst_0
iconst_1
anewarray org.graalvm.word.LocationIdentity
dup
iconst_0
4: invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
aastore
5: invokestatic com.oracle.svm.core.snippets.SnippetRuntime.findForeignCall:(Ljava/lang/Class;Ljava/lang/String;Z[Lorg/graalvm/word/LocationIdentity;)Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
putstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_EXIT:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
6: iconst_2
anewarray com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor
dup
iconst_0
getstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_ENTER:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
aastore
dup
iconst_1
getstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_EXIT:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
aastore
putstatic com.oracle.svm.core.monitor.MonitorSnippets.FOREIGN_CALLS:[Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
return
LocalVariableTable:
Start End Slot Name Signature
protected static void monitorEnterSnippet(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
invokestatic com.oracle.svm.core.graal.nodes.KillMemoryNode.killMemory:(Lorg/graalvm/word/LocationIdentity;)V
1: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 3
2: getstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_ENTER:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
aload 0
invokestatic com.oracle.svm.core.monitor.MonitorSnippets.callSlowPath:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
obj
protected static void monitorExitSnippet(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.graalvm.word.LocationIdentity.any:()Lorg/graalvm/word/LocationIdentity;
invokestatic com.oracle.svm.core.graal.nodes.KillMemoryNode.killMemory:(Lorg/graalvm/word/LocationIdentity;)V
1: getstatic com.oracle.svm.core.SubstrateOptions.MultiThreaded:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 3
2: getstatic com.oracle.svm.core.monitor.MonitorSnippets.SLOW_PATH_MONITOR_EXIT:Lcom/oracle/svm/core/snippets/SnippetRuntime$SubstrateForeignCallDescriptor;
aload 0
invokestatic com.oracle.svm.core.monitor.MonitorSnippets.callSlowPath:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 obj Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
obj
protected static native void callSlowPath(org.graalvm.compiler.core.common.spi.ForeignCallDescriptor, java.lang.Object);
descriptor: (Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)V
flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;)
RuntimeVisibleParameterAnnotations:
0:
org.graalvm.compiler.graph.Node$ConstantNodeParameter()
1:
MethodParameters:
Name Flags
descriptor
obj
protected void <init>(org.graalvm.compiler.options.OptionValues, java.lang.Iterable<org.graalvm.compiler.debug.DebugHandlersFactory>, org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, 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
aload 3
aload 4
invokespecial com.oracle.svm.core.graal.snippets.SubstrateTemplates.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/monitor/MonitorSnippets;
0 2 1 options Lorg/graalvm/compiler/options/OptionValues;
0 2 2 factories Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;
0 2 3 providers Lorg/graalvm/compiler/phases/util/Providers;
0 2 4 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
Signature: (Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable<Lorg/graalvm/compiler/debug/DebugHandlersFactory;>;Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;)V
MethodParameters:
Name Flags
options
factories
providers
snippetReflection
protected void registerLowerings(java.util.Map<java.lang.Class<? extends org.graalvm.compiler.graph.Node>, com.oracle.svm.core.graal.snippets.NodeLoweringProvider<?>>);
descriptor: (Ljava/util/Map;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new com.oracle.svm.core.monitor.MonitorSnippets$MonitorLowering
dup
aload 0
invokespecial com.oracle.svm.core.monitor.MonitorSnippets$MonitorLowering.<init>:(Lcom/oracle/svm/core/monitor/MonitorSnippets;)V
astore 2
start local 2 1: aload 1
ldc Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
ldc Lorg/graalvm/compiler/nodes/java/MonitorExitNode;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/monitor/MonitorSnippets;
0 4 1 lowerings Ljava/util/Map<Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lcom/oracle/svm/core/graal/snippets/NodeLoweringProvider<*>;>;
1 4 2 lowering Lcom/oracle/svm/core/monitor/MonitorSnippets$MonitorLowering;
Signature: (Ljava/util/Map<Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;Lcom/oracle/svm/core/graal/snippets/NodeLoweringProvider<*>;>;)V
MethodParameters:
Name Flags
lowerings
static org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo access$0(com.oracle.svm.core.monitor.MonitorSnippets, java.lang.Class, java.lang.String, org.graalvm.word.LocationIdentity[]);
descriptor: (Lcom/oracle/svm/core/monitor/MonitorSnippets;Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
aload 3
invokevirtual com.oracle.svm.core.monitor.MonitorSnippets.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/word/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
areturn
LocalVariableTable:
Start End Slot Name Signature
static org.graalvm.compiler.phases.util.Providers access$1(com.oracle.svm.core.monitor.MonitorSnippets);
descriptor: (Lcom/oracle/svm/core/monitor/MonitorSnippets;)Lorg/graalvm/compiler/phases/util/Providers;
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
getfield com.oracle.svm.core.monitor.MonitorSnippets.providers:Lorg/graalvm/compiler/phases/util/Providers;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MonitorSnippets.java"
NestMembers:
com.oracle.svm.core.monitor.MonitorSnippets$MonitorLowering
InnerClasses:
protected MonitorLowering = com.oracle.svm.core.monitor.MonitorSnippets$MonitorLowering of com.oracle.svm.core.monitor.MonitorSnippets
public SubstrateForeignCallDescriptor = com.oracle.svm.core.snippets.SnippetRuntime$SubstrateForeignCallDescriptor of com.oracle.svm.core.snippets.SnippetRuntime
public abstract ConstantNodeParameter = org.graalvm.compiler.graph.Node$ConstantNodeParameter of org.graalvm.compiler.graph.Node
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate