final class com.oracle.svm.core.windows.WindowsVMLockFeature implements org.graalvm.nativeimage.hosted.Feature
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.windows.WindowsVMLockFeature
super_class: java.lang.Object
{
private final com.oracle.svm.core.locks.ClassInstanceReplacer<com.oracle.svm.core.locks.VMMutex, com.oracle.svm.core.windows.WindowsVMMutex> mutexReplacer;
descriptor: Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/svm/core/locks/ClassInstanceReplacer<Lcom/oracle/svm/core/locks/VMMutex;Lcom/oracle/svm/core/windows/WindowsVMMutex;>;
private final com.oracle.svm.core.locks.ClassInstanceReplacer<com.oracle.svm.core.locks.VMCondition, com.oracle.svm.core.windows.WindowsVMCondition> conditionReplacer;
descriptor: Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/svm/core/locks/ClassInstanceReplacer<Lcom/oracle/svm/core/locks/VMCondition;Lcom/oracle/svm/core/windows/WindowsVMCondition;>;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new com.oracle.svm.core.windows.WindowsVMLockFeature$1
dup
aload 0
ldc Lcom/oracle/svm/core/locks/VMMutex;
invokespecial com.oracle.svm.core.windows.WindowsVMLockFeature$1.<init>:(Lcom/oracle/svm/core/windows/WindowsVMLockFeature;Ljava/lang/Class;)V
putfield com.oracle.svm.core.windows.WindowsVMLockFeature.mutexReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
2: aload 0
new com.oracle.svm.core.windows.WindowsVMLockFeature$2
dup
aload 0
ldc Lcom/oracle/svm/core/locks/VMCondition;
invokespecial com.oracle.svm.core.windows.WindowsVMLockFeature$2.<init>:(Lcom/oracle/svm/core/windows/WindowsVMLockFeature;Ljava/lang/Class;)V
putfield com.oracle.svm.core.windows.WindowsVMLockFeature.conditionReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/windows/WindowsVMLockFeature;
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
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/windows/WindowsVMLockFeature;
0 1 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/windows/WindowsVMLockSupport;
new com.oracle.svm.core.windows.WindowsVMLockSupport
dup
invokespecial com.oracle.svm.core.windows.WindowsVMLockSupport.<init>:()V
invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
1: aload 1
aload 0
getfield com.oracle.svm.core.windows.WindowsVMLockFeature.mutexReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess.registerObjectReplacer:(Ljava/util/function/Function;)V
2: aload 1
aload 0
getfield com.oracle.svm.core.windows.WindowsVMLockFeature.conditionReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
invokeinterface org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess.registerObjectReplacer:(Ljava/util/function/Function;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/windows/WindowsVMLockFeature;
0 4 1 access Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
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=4, locals=12, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield com.oracle.svm.core.windows.WindowsVMLockFeature.mutexReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
invokevirtual com.oracle.svm.core.locks.ClassInstanceReplacer.getReplacements:()Ljava/util/Collection;
iconst_0
anewarray com.oracle.svm.core.windows.WindowsVMMutex
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.svm.core.windows.WindowsVMMutex[]
astore 4
start local 4 3: ldc Lcom/oracle/svm/core/windows/headers/Process$CRITICAL_SECTION;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
bipush 8
invokestatic org.graalvm.compiler.core.common.NumUtil.roundUp:(II)I
istore 5
start local 5 4: aload 4
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 9
StackMap locals: com.oracle.svm.core.windows.WindowsVMLockFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.core.config.ObjectLayout int com.oracle.svm.core.windows.WindowsVMMutex[] int top int int com.oracle.svm.core.windows.WindowsVMMutex[]
StackMap stack:
5: aload 9
iload 7
aaload
astore 6
start local 6 6: aload 6
aload 2
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
iload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
putfield com.oracle.svm.core.windows.WindowsVMMutex.structOffset:Lorg/graalvm/word/UnsignedWord;
7: iload 3
iload 5
iadd
istore 3
end local 6 8: iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
iload 8
if_icmplt 5
10: aload 0
getfield com.oracle.svm.core.windows.WindowsVMLockFeature.conditionReplacer:Lcom/oracle/svm/core/locks/ClassInstanceReplacer;
invokevirtual com.oracle.svm.core.locks.ClassInstanceReplacer.getReplacements:()Ljava/util/Collection;
iconst_0
anewarray com.oracle.svm.core.windows.WindowsVMCondition
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.oracle.svm.core.windows.WindowsVMCondition[]
astore 6
start local 6 11: ldc Lcom/oracle/svm/core/windows/headers/Process$CONDITION_VARIABLE;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
bipush 8
invokestatic org.graalvm.compiler.core.common.NumUtil.roundUp:(II)I
istore 7
start local 7 12: aload 6
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 17
StackMap locals: com.oracle.svm.core.windows.WindowsVMLockFeature org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess com.oracle.svm.core.config.ObjectLayout int com.oracle.svm.core.windows.WindowsVMMutex[] int com.oracle.svm.core.windows.WindowsVMCondition[] int top int int com.oracle.svm.core.windows.WindowsVMCondition[]
StackMap stack:
13: aload 11
iload 9
aaload
astore 8
start local 8 14: aload 8
aload 2
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
iload 3
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayElementOffset:(Ljdk/vm/ci/meta/JavaKind;I)J
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
putfield com.oracle.svm.core.windows.WindowsVMCondition.structOffset:Lorg/graalvm/word/UnsignedWord;
15: iload 3
iload 7
iadd
istore 3
end local 8 16: iinc 9 1
StackMap locals:
StackMap stack:
17: iload 9
iload 10
if_icmplt 13
18: ldc Lcom/oracle/svm/core/windows/WindowsVMLockSupport;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.core.windows.WindowsVMLockSupport
astore 8
start local 8 19: aload 8
aload 4
putfield com.oracle.svm.core.windows.WindowsVMLockSupport.mutexes:[Lcom/oracle/svm/core/windows/WindowsVMMutex;
20: aload 8
aload 6
putfield com.oracle.svm.core.windows.WindowsVMLockSupport.conditions:[Lcom/oracle/svm/core/windows/WindowsVMCondition;
21: aload 8
iload 3
newarray 8
putfield com.oracle.svm.core.windows.WindowsVMLockSupport.syncStructs:[B
22: return
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 23 0 this Lcom/oracle/svm/core/windows/WindowsVMLockFeature;
0 23 1 access Lorg/graalvm/nativeimage/hosted/Feature$BeforeCompilationAccess;
1 23 2 layout Lcom/oracle/svm/core/config/ObjectLayout;
2 23 3 nextIndex I
3 23 4 mutexes [Lcom/oracle/svm/core/windows/WindowsVMMutex;
4 23 5 mutexSize I
6 8 6 mutex Lcom/oracle/svm/core/windows/WindowsVMMutex;
11 23 6 conditions [Lcom/oracle/svm/core/windows/WindowsVMCondition;
12 23 7 conditionSize I
14 16 8 condition Lcom/oracle/svm/core/windows/WindowsVMCondition;
19 23 8 lockSupport Lcom/oracle/svm/core/windows/WindowsVMLockSupport;
MethodParameters:
Name Flags
access
}
SourceFile: "WindowsVMLockSupport.java"
NestMembers:
com.oracle.svm.core.windows.WindowsVMLockFeature$1 com.oracle.svm.core.windows.WindowsVMLockFeature$2
InnerClasses:
com.oracle.svm.core.windows.WindowsVMLockFeature$1
com.oracle.svm.core.windows.WindowsVMLockFeature$2
public abstract CONDITION_VARIABLE = com.oracle.svm.core.windows.headers.Process$CONDITION_VARIABLE of com.oracle.svm.core.windows.headers.Process
public abstract CRITICAL_SECTION = com.oracle.svm.core.windows.headers.Process$CRITICAL_SECTION of com.oracle.svm.core.windows.headers.Process
public abstract BeforeCompilationAccess = org.graalvm.nativeimage.hosted.Feature$BeforeCompilationAccess 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()
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$WINDOWS;})