public class com.oracle.svm.hosted.thread.VMThreadSTFeature implements com.oracle.svm.core.graal.GraalFeature
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.thread.VMThreadSTFeature
super_class: java.lang.Object
{
private final com.oracle.svm.hosted.thread.VMThreadLocalCollector threadLocalCollector;
descriptor: Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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/svm/hosted/thread/VMThreadSTFeature;
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.svm.hosted.thread.VMThreadSTFeature.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.oracle.svm.hosted.thread.VMThreadLocalCollector
dup
invokespecial com.oracle.svm.hosted.thread.VMThreadLocalCollector.<init>:()V
putfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
public boolean isInConfiguration(org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: 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 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 3 1 access Lorg/graalvm/nativeimage/hosted/Feature$IsInConfigurationAccess;
MethodParameters:
Name Flags
access
public void duringSetup(org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc Lcom/oracle/svm/core/threadlocal/VMThreadLocalSTSupport;
new com.oracle.svm.core.threadlocal.VMThreadLocalSTSupport
dup
invokespecial com.oracle.svm.core.threadlocal.VMThreadLocalSTSupport.<init>:()V
invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
1: aload 1
aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess.registerObjectReplacer:(Ljava/util/function/Function;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 3 1 config Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
MethodParameters:
Name Flags
config
public void registerInvocationPlugins(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, boolean, boolean);
descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=12, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: getstatic com.oracle.svm.core.threadlocal.VMThreadLocalInfo.THREAD_LOCAL_CLASSES:[Ljava/lang/Class;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 9
StackMap locals: com.oracle.svm.hosted.thread.VMThreadSTFeature org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins int int top int int java.lang.Class[]
StackMap stack:
1: aload 9
iload 7
aaload
astore 6
start local 6 2: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 3
aload 6
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
astore 10
start local 10 3: aload 6
invokestatic com.oracle.svm.core.threadlocal.VMThreadLocalInfo.getValueClass:(Ljava/lang/Class;)Ljava/lang/Class;
astore 11
start local 11 4: aload 0
aload 10
aload 11
iconst_0
invokevirtual com.oracle.svm.hosted.thread.VMThreadSTFeature.registerAccessors:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/Class;Z)V
5: aload 0
aload 10
aload 11
iconst_1
invokevirtual com.oracle.svm.hosted.thread.VMThreadSTFeature.registerAccessors:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/Class;Z)V
6: aload 10
ldc "compareAndSet"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
aload 11
aload 11
new com.oracle.svm.hosted.thread.VMThreadSTFeature$1
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$1.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
7: aload 10
ldc "compareAndSet"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Lorg/graalvm/nativeimage/IsolateThread;
aload 11
aload 11
new com.oracle.svm.hosted.thread.VMThreadSTFeature$2
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$2.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register4:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
end local 11 end local 10 end local 6 8: iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
iload 8
if_icmplt 1
10: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/svm/core/threadlocal/FastThreadLocalBytes;
aastore
dup
iconst_1
ldc Lcom/oracle/svm/core/threadlocal/FastThreadLocalWord;
aastore
astore 6
start local 6 11: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 17
StackMap locals: com.oracle.svm.hosted.thread.VMThreadSTFeature org.graalvm.compiler.phases.util.Providers org.graalvm.compiler.api.replacements.SnippetReflectionProvider org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins int int java.lang.Class[] top int int java.lang.Class[]
StackMap stack:
12: aload 10
iload 8
aaload
astore 7
start local 7 13: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 3
aload 7
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
astore 11
start local 11 14: aload 11
ldc "getAddress"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
new com.oracle.svm.hosted.thread.VMThreadSTFeature$3
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$3.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
15: aload 11
ldc "getAddress"
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Lorg/graalvm/nativeimage/IsolateThread;
new com.oracle.svm.hosted.thread.VMThreadSTFeature$4
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$4.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
end local 11 end local 7 16: iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 9
if_icmplt 12
18: 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 19 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 19 1 providers Lorg/graalvm/compiler/phases/util/Providers;
0 19 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 19 3 invocationPlugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
0 19 4 analysis Z
0 19 5 hosted Z
2 8 6 threadLocalClass Ljava/lang/Class<+Lcom/oracle/svm/core/threadlocal/FastThreadLocal;>;
3 8 10 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
4 8 11 valueClass Ljava/lang/Class<*>;
11 19 6 typesWithGetAddress [Ljava/lang/Class;
13 16 7 type Ljava/lang/Class<*>;
14 16 11 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
MethodParameters:
Name Flags
providers
snippetReflection
invocationPlugins
analysis
hosted
private void registerAccessors(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration, java.lang.Class<?>, );
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/Class;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 1
ldc "Volatile"
goto 2
StackMap locals:
StackMap stack:
1: ldc ""
StackMap locals:
StackMap stack: java.lang.String
2: astore 4
start local 4 3: aload 1
new java.lang.StringBuilder
dup
ldc "get"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
new com.oracle.svm.hosted.thread.VMThreadSTFeature$5
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$5.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
4: aload 1
new java.lang.StringBuilder
dup
ldc "get"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Lorg/graalvm/nativeimage/IsolateThread;
new com.oracle.svm.hosted.thread.VMThreadSTFeature$6
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$6.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
5: aload 1
new java.lang.StringBuilder
dup
ldc "set"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
aload 2
new com.oracle.svm.hosted.thread.VMThreadSTFeature$7
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$7.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
6: aload 1
new java.lang.StringBuilder
dup
ldc "set"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
ldc Lorg/graalvm/nativeimage/IsolateThread;
aload 2
new com.oracle.svm.hosted.thread.VMThreadSTFeature$8
dup
aload 0
invokespecial com.oracle.svm.hosted.thread.VMThreadSTFeature$8.<init>:(Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 8 1 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
0 8 2 valueClass Ljava/lang/Class<*>;
0 8 3 isVolatile Z
3 8 4 suffix Ljava/lang/String;
Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;Ljava/lang/Class<*>;Z)V
MethodParameters:
Name Flags
r
valueClass
isVolatile
private boolean handleGet(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
aload 1
aload 3
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.hosted.thread.VMThreadLocalCollector.findInfo:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/ValueNode;)Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
astore 4
start local 4 1: aload 1
new com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
dup
aload 4
invokespecial com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
astore 5
start local 5 2: aload 1
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
new com.oracle.svm.core.graal.thread.LoadVMThreadLocalNode
dup
aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 4
aload 5
getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
invokespecial com.oracle.svm.core.graal.thread.LoadVMThreadLocalNode.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
3: iconst_1
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 4 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 4 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 4 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 4 3 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
1 4 4 info Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
2 4 5 holder Lcom/oracle/svm/core/graal/thread/VMThreadLocalSTHolderNode;
MethodParameters:
Name Flags
b
targetMethod
receiver
private boolean handleSet(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
aload 1
aload 2
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.hosted.thread.VMThreadLocalCollector.findInfo:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/ValueNode;)Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
astore 4
start local 4 1: aload 1
new com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
dup
aload 4
invokespecial com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
astore 5
start local 5 2: new com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode
dup
aload 4
aload 5
aload 3
getstatic org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType.ARRAY:Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;
invokespecial com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/memory/OnHeapMemoryAccess$BarrierType;)V
astore 6
start local 6 3: aload 1
aload 6
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
4: getstatic com.oracle.svm.hosted.thread.VMThreadSTFeature.$assertionsDisabled:Z
ifne 5
aload 6
invokevirtual com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " has no state after with graph builder context "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.svm.core.threadlocal.VMThreadLocalInfo com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode
StackMap stack:
iconst_1
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 6 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 6 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 6 2 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 6 3 valueNode Lorg/graalvm/compiler/nodes/ValueNode;
1 6 4 info Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
2 6 5 holder Lcom/oracle/svm/core/graal/thread/VMThreadLocalSTHolderNode;
3 6 6 store Lcom/oracle/svm/core/graal/thread/StoreVMThreadLocalNode;
MethodParameters:
Name Flags
b
receiver
valueNode
private boolean handleCompareAndSet(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
aload 1
aload 3
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.hosted.thread.VMThreadLocalCollector.findInfo:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/ValueNode;)Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
astore 6
start local 6 1: aload 1
new com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
dup
aload 6
invokespecial com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
astore 7
start local 7 2: new com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode
dup
aload 6
aload 7
aload 4
aload 5
invokespecial com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 8
start local 8 3: aload 1
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
aload 8
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
4: getstatic com.oracle.svm.hosted.thread.VMThreadSTFeature.$assertionsDisabled:Z
ifne 5
aload 8
invokevirtual com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
ifnonnull 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " has no state after with graph builder context "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: com.oracle.svm.core.threadlocal.VMThreadLocalInfo com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode
StackMap stack:
iconst_1
ireturn
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 6 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 6 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 6 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 3 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
0 6 4 expect Lorg/graalvm/compiler/nodes/ValueNode;
0 6 5 update Lorg/graalvm/compiler/nodes/ValueNode;
1 6 6 threadLocalInfo Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
2 6 7 holder Lcom/oracle/svm/core/graal/thread/VMThreadLocalSTHolderNode;
3 6 8 cas Lcom/oracle/svm/core/graal/thread/CompareAndSetVMThreadLocalNode;
MethodParameters:
Name Flags
b
targetMethod
receiver
expect
update
private boolean handleGetAddress(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
aload 1
aload 3
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual com.oracle.svm.hosted.thread.VMThreadLocalCollector.findInfo:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/ValueNode;)Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
astore 4
start local 4 1: aload 1
new com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
dup
aload 4
invokespecial com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.add:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
checkcast com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode
astore 5
start local 5 2: aload 1
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
invokeinterface jdk.vm.ci.meta.Signature.getReturnKind:()Ljdk/vm/ci/meta/JavaKind;
new com.oracle.svm.core.graal.thread.AddressOfVMThreadLocalNode
dup
aload 4
aload 5
invokespecial com.oracle.svm.core.graal.thread.AddressOfVMThreadLocalNode.<init>:(Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;Lorg/graalvm/compiler/nodes/ValueNode;)V
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
pop
3: iconst_1
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 4 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 4 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 4 2 targetMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 4 3 receiver Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
1 4 4 threadLocalInfo Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
2 4 5 holder Lcom/oracle/svm/core/graal/thread/VMThreadLocalSTHolderNode;
MethodParameters:
Name Flags
b
targetMethod
receiver
public void duringAnalysis(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
getfield com.oracle.svm.hosted.thread.VMThreadLocalCollector.threadLocals:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokestatic com.oracle.svm.core.threadlocal.VMThreadLocalInfos.setInfos:(Ljava/util/Collection;)Z
ifeq 2
1: aload 1
invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess.requireAnalysisIteration:()V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 3 1 access Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
MethodParameters:
Name Flags
access
public void beforeCompilation(org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.thread.VMThreadSTFeature.threadLocalCollector:Lcom/oracle/svm/hosted/thread/VMThreadLocalCollector;
aload 1
invokevirtual com.oracle.svm.hosted.thread.VMThreadLocalCollector.sortThreadLocals:(Lorg/graalvm/nativeimage/hosted/Feature$CompilationAccess;)Ljava/util/List;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: com.oracle.svm.hosted.thread.VMThreadSTFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess java.util.List com.oracle.svm.core.config.ObjectLayout int int top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.core.threadlocal.VMThreadLocalInfo
astore 6
start local 6 6: aload 6
getfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.isObject:Z
ifeq 10
7: aload 6
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
iload 4
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokestatic org.graalvm.compiler.core.common.NumUtil.safeToInt:(J)I
putfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.offset:I
8: iinc 4 1
9: goto 13
10: StackMap locals: com.oracle.svm.hosted.thread.VMThreadSTFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess java.util.List com.oracle.svm.core.config.ObjectLayout int int com.oracle.svm.core.threadlocal.VMThreadLocalInfo java.util.Iterator
StackMap stack:
getstatic com.oracle.svm.hosted.thread.VMThreadSTFeature.$assertionsDisabled:Z
ifne 11
iload 5
bipush 8
aload 6
getfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.sizeInBytes:I
invokestatic java.lang.Math.min:(II)I
irem
ifeq 11
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "alignment mismatch: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
getfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.sizeInBytes:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 6
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
iload 5
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokestatic org.graalvm.compiler.core.common.NumUtil.safeToInt:(J)I
putfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.offset:I
12: iload 5
aload 6
getfield com.oracle.svm.core.threadlocal.VMThreadLocalInfo.sizeInBytes:I
iadd
istore 5
end local 6 13: StackMap locals: com.oracle.svm.hosted.thread.VMThreadSTFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess java.util.List com.oracle.svm.core.config.ObjectLayout int int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
14: ldc Lcom/oracle/svm/core/threadlocal/VMThreadLocalSTSupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.core.threadlocal.VMThreadLocalSTSupport
astore 6
start local 6 15: aload 6
iload 4
anewarray java.lang.Object
putfield com.oracle.svm.core.threadlocal.VMThreadLocalSTSupport.objectThreadLocals:[Ljava/lang/Object;
16: aload 6
iload 5
newarray 8
putfield com.oracle.svm.core.threadlocal.VMThreadLocalSTSupport.primitiveThreadLocals:[B
17: aload 2
invokestatic com.oracle.svm.core.threadlocal.VMThreadLocalInfos.setInfos:(Ljava/util/Collection;)Z
pop
18: 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 19 0 this Lcom/oracle/svm/hosted/thread/VMThreadSTFeature;
0 19 1 config Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;
1 19 2 sortedThreadLocalInfos Ljava/util/List<Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;>;
2 19 3 layout Lcom/oracle/svm/core/config/ObjectLayout;
3 19 4 nextObject I
4 19 5 nextPrimitive I
6 13 6 info Lcom/oracle/svm/core/threadlocal/VMThreadLocalInfo;
15 19 6 support Lcom/oracle/svm/core/threadlocal/VMThreadLocalSTSupport;
MethodParameters:
Name Flags
config
}
SourceFile: "VMThreadSTFeature.java"
NestMembers:
com.oracle.svm.hosted.thread.VMThreadSTFeature$1 com.oracle.svm.hosted.thread.VMThreadSTFeature$2 com.oracle.svm.hosted.thread.VMThreadSTFeature$3 com.oracle.svm.hosted.thread.VMThreadSTFeature$4 com.oracle.svm.hosted.thread.VMThreadSTFeature$5 com.oracle.svm.hosted.thread.VMThreadSTFeature$6 com.oracle.svm.hosted.thread.VMThreadSTFeature$7 com.oracle.svm.hosted.thread.VMThreadSTFeature$8
InnerClasses:
com.oracle.svm.hosted.thread.VMThreadSTFeature$1
com.oracle.svm.hosted.thread.VMThreadSTFeature$2
com.oracle.svm.hosted.thread.VMThreadSTFeature$3
com.oracle.svm.hosted.thread.VMThreadSTFeature$4
com.oracle.svm.hosted.thread.VMThreadSTFeature$5
com.oracle.svm.hosted.thread.VMThreadSTFeature$6
com.oracle.svm.hosted.thread.VMThreadSTFeature$7
com.oracle.svm.hosted.thread.VMThreadSTFeature$8
public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
public final BarrierType = org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess$BarrierType of org.graalvm.compiler.nodes.memory.OnHeapMemoryAccess
public abstract BeforeCompilationAccess = org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess of org.graalvm.nativeimage.hosted.Feature
public abstract CompilationAccess = org.graalvm.nativeimage.hosted.Feature$CompilationAccess of org.graalvm.nativeimage.hosted.Feature
public abstract DuringAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
public abstract DuringSetupAccess = org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess of org.graalvm.nativeimage.hosted.Feature
public abstract IsInConfigurationAccess = org.graalvm.nativeimage.hosted.Feature$IsInConfigurationAccess of org.graalvm.nativeimage.hosted.Feature
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AutomaticFeature()