class com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation extends com.oracle.svm.core.thread.NativeVMOperation
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation
super_class: com.oracle.svm.core.thread.NativeVMOperation
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "Garbage collection"
getstatic com.oracle.svm.core.thread.VMOperation$SystemEffect.SAFEPOINT:Lcom/oracle/svm/core/thread/VMOperation$SystemEffect;
invokespecial com.oracle.svm.core.thread.NativeVMOperation.<init>:(Ljava/lang/String;Lcom/oracle/svm/core/thread/VMOperation$SystemEffect;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
protected boolean isGC();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
protected void operate(com.oracle.svm.core.thread.NativeVMOperationData);
descriptor: (Lcom/oracle/svm/core/thread/NativeVMOperationData;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.core.snippets.ImplicitExceptions.activateImplicitExceptionsAreFatal:()V
1: aload 1
checkcast com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
aload 2
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getCauseId:()I
invokestatic com.oracle.svm.core.heap.GCCause.fromId:(I)Lcom/oracle/svm/core/heap/GCCause;
aload 2
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getRequestingEpoch:()Lorg/graalvm/word/UnsignedWord;
aload 2
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getForceFullGC:()Z
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.collectOperation:(Lcom/oracle/svm/core/heap/GCCause;Lorg/graalvm/word/UnsignedWord;Z)Z
istore 3
start local 3 3: aload 2
iload 3
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.setOutOfMemory:(Z)V
end local 3 end local 2 4: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
start local 2 6: aload 2
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
8: invokestatic com.oracle.svm.core.snippets.ImplicitExceptions.deactivateImplicitExceptionsAreFatal:()V
9: aload 4
athrow
10: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.snippets.ImplicitExceptions.deactivateImplicitExceptionsAreFatal:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
0 12 1 data Lcom/oracle/svm/core/thread/NativeVMOperationData;
2 4 2 d Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
3 4 3 outOfMemory Z
6 7 2 t Ljava/lang/Throwable;
Exception table:
from to target type
1 4 5 Class java.lang.Throwable
1 7 7 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Must not allocate while collecting")
MethodParameters:
Name Flags
data
protected boolean hasWork(com.oracle.svm.core.thread.NativeVMOperationData);
descriptor: (Lcom/oracle/svm/core/thread/NativeVMOperationData;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData
astore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getGCImpl:()Lcom/oracle/svm/core/genscavenge/GCImpl;
invokevirtual com.oracle.svm.core.genscavenge.GCImpl.getCollectionEpoch:()Lorg/graalvm/word/UnsignedWord;
aload 2
invokeinterface com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData.getRequestingEpoch:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperation;
0 2 1 data Lcom/oracle/svm/core/thread/NativeVMOperationData;
1 2 2 d Lcom/oracle/svm/core/genscavenge/GCImpl$CollectionVMOperationData;
MethodParameters:
Name Flags
data
}
SourceFile: "GCImpl.java"
NestHost: com.oracle.svm.core.genscavenge.GCImpl
InnerClasses:
public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
private CollectionVMOperation = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperation of com.oracle.svm.core.genscavenge.GCImpl
private abstract CollectionVMOperationData = com.oracle.svm.core.genscavenge.GCImpl$CollectionVMOperationData of com.oracle.svm.core.genscavenge.GCImpl
public final SystemEffect = com.oracle.svm.core.thread.VMOperation$SystemEffect of com.oracle.svm.core.thread.VMOperation