final class com.oracle.svm.core.genscavenge.HeapChunkProvider
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.HeapChunkProvider
super_class: java.lang.Object
{
private final com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer<com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader> unusedAlignedChunks;
descriptor: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer<Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;>;
private final com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned bytesInUnusedAlignedChunks;
descriptor: Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long firstAllocationTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private static final java.lang.OutOfMemoryError ALIGNED_OUT_OF_MEMORY_ERROR;
descriptor: Ljava/lang/OutOfMemoryError;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.OutOfMemoryError UNALIGNED_OUT_OF_MEMORY_ERROR;
descriptor: Ljava/lang/OutOfMemoryError;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, 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=3, locals=0, args_size=0
0: ldc Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
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.core.genscavenge.HeapChunkProvider.$assertionsDisabled:Z
3: new java.lang.OutOfMemoryError
dup
ldc "Could not allocate an aligned heap chunk"
invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
putstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.ALIGNED_OUT_OF_MEMORY_ERROR:Ljava/lang/OutOfMemoryError;
4: new java.lang.OutOfMemoryError
dup
ldc "Could not allocate an unaligned heap chunk"
invokespecial java.lang.OutOfMemoryError.<init>:(Ljava/lang/String;)V
putstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.UNALIGNED_OUT_OF_MEMORY_ERROR:Ljava/lang/OutOfMemoryError;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
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.core.jdk.UninterruptibleUtils$AtomicPointer
dup
invokespecial com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
2: aload 0
new com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned
dup
invokespecial com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.<init>:()V
putfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
public org.graalvm.word.UnsignedWord getBytesInUnusedChunks();
descriptor: ()Lorg/graalvm/word/UnsignedWord;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
private static com.oracle.svm.core.log.Log log();
descriptor: ()Lcom/oracle/svm/core/log/Log;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.AlwaysInline(value = "Remove all logging when noopLog is returned by this method")
com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 1: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapChunkProvider.produceAlignedChunk chunk size: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.popUnusedAlignedChunk:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 2
start local 2 3: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " unused chunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
4: aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 12
5: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.noteFirstAllocationTime:()V
6: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkAlignment:()Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.allocate:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;Z)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
7: aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 9
8: getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.ALIGNED_OUT_OF_MEMORY_ERROR:Ljava/lang/OutOfMemoryError;
athrow
9: StackMap locals: org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " new chunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
10: aload 2
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.initializeChunk:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/UnsignedWord;)V
11: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.resetAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
12: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.$assertionsDisabled:Z
ifne 13
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.$assertionsDisabled:Z
ifne 14
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
aload 1
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
ifeq 16
15: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.zap:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/WordBase;)V
16: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.increaseEdenUsedBytes:(Lorg/graalvm/word/UnsignedWord;)V
17: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " result chunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " ]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
18: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
1 19 1 chunkSize Lorg/graalvm/word/UnsignedWord;
3 19 2 result Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "prev must be null"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 2: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getMinimumHeapSize:()Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 3: invokestatic com.oracle.svm.core.genscavenge.GCImpl.getChunkBytes:()Lorg/graalvm/word/UnsignedWord;
aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.getBytesInUnusedChunks:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 4: aload 3
aload 4
invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 13
5: aload 3
aload 4
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 6: goto 12
7: StackMap locals: com.oracle.svm.core.genscavenge.HeapChunkProvider com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 6
start local 6 8: aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.cleanAlignedChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
9: aload 0
aload 2
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.pushUnusedAlignedChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
10: aload 5
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.subtract:(I)Lorg/graalvm/word/UnsignedWord;
astore 5
11: aload 6
astore 2
end local 6 12: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 13
aload 5
iconst_0
invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(I)Z
ifne 7
end local 5 13: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeAlignedChunkList:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
0 15 1 firstChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
2 15 2 cur Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3 15 3 minimumHeapSize Lorg/graalvm/word/UnsignedWord;
4 15 4 committedBytesAfterGC Lorg/graalvm/word/UnsignedWord;
6 13 5 chunksToKeep Lorg/graalvm/word/UnsignedWord;
8 12 6 next Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
firstChunk
private static void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.resetAlignedHeapChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
1: invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapConsumedHeapChunks:()Z
ifeq 3
2: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getConsumedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.zap:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/WordBase;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 alignedChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
alignedChunk
private void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, 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 2
1: ldc "Should hold the lock when pushing to the global list."
invokestatic com.oracle.svm.core.thread.VMThreads.guaranteeOwnsThreadMutex:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " old list top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " list bytes "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
3: aload 1
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
aload 1
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.set:(Lorg/graalvm/word/PointerBase;)V
5: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.addAndGet:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
pop
6: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " new list top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " list bytes "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
0 8 1 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
chunk
private com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " old list top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " list bytes "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
1: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.popUnusedAlignedChunkUninterruptibly:()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
astore 1
start local 1 2: aload 1
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 4
3: invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
areturn
4: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.subtractAndGet:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
pop
5: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " new list top: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " list bytes "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
2 7 1 result Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
private com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader ();
descriptor: ()Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 1
start local 1 1: aload 1
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNull:()Z
ifeq 3
2: invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
areturn
3: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
start local 2 4: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
aload 1
aload 2
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.compareAndSet:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;)Z
ifeq 0
5: aload 1
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
6: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
1 7 1 result Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
4 7 2 next Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must not be interrupted by competing pushes.")
com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader (org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getChunkSizeForObject:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc "[HeapChunkProvider.produceUnalignedChunk objectSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " chunkSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
2: aload 0
invokevirtual com.oracle.svm.core.genscavenge.HeapChunkProvider.noteFirstAllocationTime:()V
3: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
aload 2
getstatic com.oracle.svm.core.os.CommittedMemoryProvider.UNALIGNED:Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.allocate:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;Z)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 3
start local 3 4: aload 3
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNull:()Z
ifeq 6
5: getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.UNALIGNED_OUT_OF_MEMORY_ERROR:Ljava/lang/OutOfMemoryError;
athrow
6: StackMap locals: org.graalvm.word.UnsignedWord com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 3
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.initializeChunk:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/UnsignedWord;)V
7: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.resetUnalignedChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
8: getstatic com.oracle.svm.core.genscavenge.HeapChunkProvider.$assertionsDisabled:Z
ifne 9
aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.availableObjectMemory:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 9
new java.lang.AssertionError
dup
ldc "UnalignedHeapChunk insufficient for requested object"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getZapProducedHeapChunks:()Z
ifeq 11
10: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getProducedHeapChunkZapWord:()Lorg/graalvm/compiler/word/Word;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.zap:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/WordBase;)V
11: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.increaseEdenUsedBytes:(Lorg/graalvm/word/UnsignedWord;)V
12: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " returns "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " ]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
13: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
0 14 1 objectSize Lorg/graalvm/word/UnsignedWord;
1 14 2 chunkSize Lorg/graalvm/word/UnsignedWord;
4 14 3 result Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
objectSize
static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeUnalignedChunkList:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 firstChunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
firstChunk
private static void initializeChunk(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.UnsignedWord);
descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setEndOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/UnsignedWord;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 that Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
0 2 1 chunkSize Lorg/graalvm/word/UnsignedWord;
Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/UnsignedWord;)V
MethodParameters:
Name Flags
that
chunkSize
private static void resetChunkHeader(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.Pointer);
descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
1: aload 0
aconst_null
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setSpace:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/Space;)V
2: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
3: aload 0
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.setPrevious:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 chunk Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
0 5 1 objectsStart Lorg/graalvm/word/Pointer;
Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/Pointer;)V
MethodParameters:
Name Flags
chunk
objectsStart
private static void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.resetChunkHeader:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
1: aload 0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
aload 0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableLimit:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
pop
2: aload 0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
aload 0
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableLimit:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.initializeTableToLimit:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
pop
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
chunk
private static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getObjectStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.resetChunkHeader:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/Pointer;)V
1: aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
aload 0
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableLimit:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.CardTable.cleanTableToPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 result Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
result
private static void zap(com.oracle.svm.core.genscavenge.HeapChunk$Header<?>, org.graalvm.word.WordBase);
descriptor: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;Lorg/graalvm/word/WordBase;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
astore 2
start local 2 1: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 2: invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.log:()Lcom/oracle/svm/core/log/Log;
ldc " zap chunk: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " start: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " limit: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " value: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
3: aload 2
astore 4
start local 4 4: goto 7
5: StackMap locals: org.graalvm.word.Pointer org.graalvm.word.Pointer org.graalvm.word.Pointer
StackMap stack:
aload 4
iconst_0
aload 1
invokeinterface org.graalvm.word.Pointer.writeWord:(ILorg/graalvm/word/WordBase;)V
6: aload 4
invokestatic com.oracle.svm.core.FrameAccess.wordSize:()I
invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
astore 4
StackMap locals:
StackMap stack:
7: aload 4
aload 3
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 5
end local 4 8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 chunk Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;
0 9 1 value Lorg/graalvm/word/WordBase;
1 9 2 start Lorg/graalvm/word/Pointer;
2 9 3 limit Lorg/graalvm/word/Pointer;
4 8 4 p Lorg/graalvm/word/Pointer;
Signature: (Lcom/oracle/svm/core/genscavenge/HeapChunk$Header<*>;Lorg/graalvm/word/WordBase;)V
MethodParameters:
Name Flags
chunk
value
com.oracle.svm.core.log.Log report(com.oracle.svm.core.log.Log, boolean);
descriptor: (Lcom/oracle/svm/core/log/Log;Z)Lcom/oracle/svm/core/log/Log;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "[Unused:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.indent:(Z)Lcom/oracle/svm/core/log/Log;
pop
1: aload 1
ldc "aligned: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
2: ldc "/"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
3: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.bytesInUnusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicUnsigned;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned.get:()Lorg/graalvm/word/WordBase;
checkcast org.graalvm.word.UnsignedWord
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
4: iload 2
ifeq 13
5: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifeq 13
6: aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc "aligned chunks:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iconst_1
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
7: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
start local 3 8: goto 11
9: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
aload 3
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " ("
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc "-"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getTopPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc ")"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
10: aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 3
StackMap locals:
StackMap stack:
11: aload 3
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 9
end local 3 12: aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
pop
13: StackMap locals:
StackMap stack:
aload 1
iconst_0
invokevirtual com.oracle.svm.core.log.Log.redent:(Z)Lcom/oracle/svm/core/log/Log;
ldc "]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
14: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
0 15 1 log Lcom/oracle/svm/core/log/Log;
0 15 2 traceHeapChunks Z
8 12 3 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
log
traceHeapChunks
boolean walkHeapChunks(com.oracle.svm.core.MemoryWalker$Visitor);
descriptor: (Lcom/oracle/svm/core/MemoryWalker$Visitor;)Z
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getMemoryWalkerAccess:()Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 4
start local 4 3: goto 6
4: StackMap locals: int com.oracle.svm.core.MemoryWalker$HeapChunkAccess com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
aload 4
aload 3
invokeinterface com.oracle.svm.core.MemoryWalker$Visitor.visitHeapChunk:(Lorg/graalvm/word/PointerBase;Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess;)Z
istore 2
5: aload 4
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 4
StackMap locals:
StackMap stack:
6: iload 2
ifeq 7
aload 4
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 4
end local 4 7: StackMap locals:
StackMap stack:
iload 2
ireturn
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/core/genscavenge/HeapChunkProvider;
0 8 1 visitor Lcom/oracle/svm/core/MemoryWalker$Visitor;
1 8 2 continueVisiting Z
2 8 3 access Lcom/oracle/svm/core/MemoryWalker$HeapChunkAccess<Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;>;
3 7 4 aChunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
visitor
private void noteFirstAllocationTime();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.firstAllocationTime:J
lconst_0
lcmp
ifne 2
1: aload 0
invokestatic java.lang.System.nanoTime:()J
putfield com.oracle.svm.core.genscavenge.HeapChunkProvider.firstAllocationTime:J
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
long getFirstAllocationTime();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.firstAllocationTime:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
boolean slowlyFindPointer(org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;)Z
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
start local 2 1: goto 6
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.asPointer:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/Pointer;
astore 3
start local 3 3: aload 1
aload 3
invokeinterface org.graalvm.word.Pointer.aboveOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 5
aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 5
4: iconst_1
ireturn
end local 3 5: StackMap locals:
StackMap stack:
aload 2
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
StackMap locals:
StackMap stack:
6: aload 2
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
end local 2 7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
0 8 1 p Lorg/graalvm/word/Pointer;
1 7 2 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3 5 3 chunkPtr Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
p
void tearDown();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.genscavenge.HeapChunkProvider.unusedAlignedChunks:Lcom/oracle/svm/core/jdk/UninterruptibleUtils$AtomicPointer;
invokevirtual com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer.get:()Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeAlignedChunkList:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/HeapChunkProvider;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
static void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 5
2: StackMap locals: com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 2
start local 2 3: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeAlignedChunk:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
4: aload 2
astore 1
end local 2 5: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.isNonNull:()Z
ifne 2
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 first Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
1 6 1 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
3 5 2 next Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
first
static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
astore 1
start local 1 1: goto 5
2: StackMap locals: com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getNext:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 2
start local 2 3: aload 1
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.freeUnalignedChunk:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
4: aload 2
astore 1
end local 2 5: StackMap locals:
StackMap stack:
aload 1
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.isNonNull:()Z
ifne 2
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 first Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
1 6 1 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
3 5 2 next Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
first
private static void (com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkSize:()Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.HeapPolicy.getAlignedHeapChunkAlignment:()Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.free:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;Z)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 chunk Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
private static void (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: invokestatic com.oracle.svm.core.os.CommittedMemoryProvider.get:()Lcom/oracle/svm/core/os/CommittedMemoryProvider;
aload 0
aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunkProvider.unalignedChunkSize:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/UnsignedWord;
getstatic com.oracle.svm.core.os.CommittedMemoryProvider.UNALIGNED:Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface com.oracle.svm.core.os.CommittedMemoryProvider.free:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;Z)Z
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
private static org.graalvm.word.UnsignedWord (com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader);
descriptor: (Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.HeapChunk.getEndOffset:(Lcom/oracle/svm/core/genscavenge/HeapChunk$Header;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 chunk Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
MethodParameters:
Name Flags
chunk
}
SourceFile: "HeapChunkProvider.java"
InnerClasses:
public abstract HeapChunkAccess = com.oracle.svm.core.MemoryWalker$HeapChunkAccess of com.oracle.svm.core.MemoryWalker
public abstract Visitor = com.oracle.svm.core.MemoryWalker$Visitor of com.oracle.svm.core.MemoryWalker
public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
public abstract Header = com.oracle.svm.core.genscavenge.HeapChunk$Header of com.oracle.svm.core.genscavenge.HeapChunk
public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk
public AtomicPointer = com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicPointer of com.oracle.svm.core.jdk.UninterruptibleUtils
public AtomicUnsigned = com.oracle.svm.core.jdk.UninterruptibleUtils$AtomicUnsigned of com.oracle.svm.core.jdk.UninterruptibleUtils