public class com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter implements com.oracle.svm.core.genscavenge.ImageHeapChunkWriter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter
super_class: java.lang.Object
{
private final org.graalvm.word.Pointer heapBegin;
descriptor: Lorg/graalvm/word/Pointer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.word.Word layoutToBufferOffsetAddend;
descriptor: Lorg/graalvm/compiler/word/Word;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(java.nio.ByteBuffer, long);
descriptor: (Ljava/nio/ByteBuffer;J)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
checkcast sun.nio.ch.DirectBuffer
astore 4
start local 4 2: aload 0
aload 4
invokeinterface sun.nio.ch.DirectBuffer.address:()J
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.word.Pointer
putfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.heapBegin:Lorg/graalvm/word/Pointer;
3: aload 0
lload 2
invokestatic org.graalvm.word.WordFactory.signed:(J)Lorg/graalvm/word/SignedWord;
checkcast org.graalvm.compiler.word.Word
putfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.layoutToBufferOffsetAddend:Lorg/graalvm/compiler/word/Word;
4: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
0 5 1 buffer Ljava/nio/ByteBuffer;
0 5 2 layoutToBufferOffsetAddend J
2 5 4 direct Lsun/nio/ch/DirectBuffer;
MethodParameters:
Name Flags
buffer
layoutToBufferOffsetAddend
private org.graalvm.word.Pointer getChunkPointerInBuffer(int);
descriptor: (I)Lorg/graalvm/word/Pointer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.heapBegin:Lorg/graalvm/word/Pointer;
iload 1
invokeinterface org.graalvm.word.Pointer.add:(I)Lorg/graalvm/word/Pointer;
aload 0
getfield com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.layoutToBufferOffsetAddend:Lorg/graalvm/compiler/word/Word;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
0 1 1 chunkPosition I
MethodParameters:
Name Flags
chunkPosition
public void initializeAlignedChunk(int, long, long, long, long);
descriptor: (IJJJJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 8 0: aload 0
iload 1
invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 10
start local 10 1: aload 10
lload 2
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setTopOffset:(Lorg/graalvm/word/UnsignedWord;)V
2: aload 10
lload 4
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setEndOffset:(Lorg/graalvm/word/UnsignedWord;)V
3: aload 10
aconst_null
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setSpace:(Lcom/oracle/svm/core/genscavenge/Space;)V
4: aload 10
lload 6
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.word.SignedWord
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setOffsetToPreviousChunk:(Lorg/graalvm/word/SignedWord;)V
5: aload 10
lload 8
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.word.SignedWord
invokeinterface com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader.setOffsetToNextChunk:(Lorg/graalvm/word/SignedWord;)V
6: aload 10
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
aload 10
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
7: aload 10
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
aload 10
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
8: return
end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
0 9 1 chunkPosition I
0 9 2 topOffset J
0 9 4 endOffset J
0 9 6 offsetToPreviousChunk J
0 9 8 offsetToNextChunk J
1 9 10 header Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
chunkPosition
topOffset
endOffset
offsetToPreviousChunk
offsetToNextChunk
public void insertIntoAlignedChunkFirstObjectTable(int, long, long);
descriptor: (IJJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
iload 1
invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader
astore 6
start local 6 1: aload 6
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getFirstObjectTableStart:(Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;)Lorg/graalvm/word/Pointer;
2: lload 2
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
3: lload 4
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.AlignedHeapChunk.getObjectsStartOffset:()Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
4: invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectAtOffsetUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
5: return
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
0 6 1 chunkPosition I
0 6 2 objectOffsetInChunk J
0 6 4 objectEndOffsetInChunk J
1 6 6 header Lcom/oracle/svm/core/genscavenge/AlignedHeapChunk$AlignedHeader;
MethodParameters:
Name Flags
chunkPosition
objectOffsetInChunk
objectEndOffsetInChunk
public void initializeUnalignedChunk(int, long, long, long, long);
descriptor: (IJJJJ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 6 start local 8 0: aload 0
iload 1
invokevirtual com.oracle.svm.core.genscavenge.RuntimeImageHeapChunkWriter.getChunkPointerInBuffer:(I)Lorg/graalvm/word/Pointer;
checkcast com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader
astore 10
start local 10 1: aload 10
lload 2
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setTopOffset:(Lorg/graalvm/word/UnsignedWord;)V
2: aload 10
lload 4
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setEndOffset:(Lorg/graalvm/word/UnsignedWord;)V
3: aload 10
aconst_null
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setSpace:(Lcom/oracle/svm/core/genscavenge/Space;)V
4: aload 10
lload 6
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.word.SignedWord
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setOffsetToPreviousChunk:(Lorg/graalvm/word/SignedWord;)V
5: aload 10
lload 8
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
checkcast org.graalvm.word.SignedWord
invokeinterface com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader.setOffsetToNextChunk:(Lorg/graalvm/word/SignedWord;)V
6: aload 10
invokestatic com.oracle.svm.core.genscavenge.UnalignedHeapChunk.getCardTableStart:(Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;)Lorg/graalvm/word/Pointer;
aload 10
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
7: return
end local 10 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/genscavenge/RuntimeImageHeapChunkWriter;
0 8 1 chunkPosition I
0 8 2 topOffset J
0 8 4 endOffset J
0 8 6 offsetToPreviousChunk J
0 8 8 offsetToNextChunk J
1 8 10 header Lcom/oracle/svm/core/genscavenge/UnalignedHeapChunk$UnalignedHeader;
MethodParameters:
Name Flags
chunkPosition
topOffset
endOffset
offsetToPreviousChunk
offsetToNextChunk
}
SourceFile: "RuntimeImageHeapChunkWriter.java"
InnerClasses:
public abstract AlignedHeader = com.oracle.svm.core.genscavenge.AlignedHeapChunk$AlignedHeader of com.oracle.svm.core.genscavenge.AlignedHeapChunk
public abstract UnalignedHeader = com.oracle.svm.core.genscavenge.UnalignedHeapChunk$UnalignedHeader of com.oracle.svm.core.genscavenge.UnalignedHeapChunk