public final class com.oracle.svm.core.genscavenge.FirstObjectTable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.FirstObjectTable
super_class: java.lang.Object
{
private static final int BYTES_COVERED_BY_ENTRY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ENTRY_SIZE_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ENTRY_MIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -128
private static final int ENTRY_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 127
private static final int MEMORY_OFFSET_MIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -128
private static final int MEMORY_OFFSET_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int LINEAR_OFFSET_MIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int LINEAR_OFFSET_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 63
private static final int EXPONENT_MIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int EXPONENT_MAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 55
private static final int EXPONENT_BIAS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 58
private static final int UNINITIALIZED_ENTRY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 127
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/core/genscavenge/FirstObjectTable;
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.FirstObjectTable.$assertionsDisabled:Z
3: invokestatic com.oracle.svm.core.genscavenge.CardTable.getBytesCoveredByEntry:()I
putstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
4: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/core/genscavenge/FirstObjectTable;
static org.graalvm.word.Pointer initializeTableToLimit(org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.tableOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: aload 0
aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.initializeTableToIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 tableLimit Lorg/graalvm/word/Pointer;
1 2 2 indexLimit Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
tableLimit
static boolean isUninitializedIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 2
start local 2 1: iload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isUninitializedEntry:(I)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
1 2 2 entry I
MethodParameters:
Name Flags
table
index
static void setTableForObject(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isGCInProgress:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "Should only be called from the collector."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 table Lorg/graalvm/word/Pointer;
0 3 1 memory Lorg/graalvm/word/Pointer;
0 3 2 start Lorg/graalvm/word/Pointer;
0 3 3 end Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
table
memory
start
end
private static void setTableForObjectUnchecked(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
aload 1
aload 2
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 1
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
aload 3
aload 1
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectAtOffsetUnchecked:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 table Lorg/graalvm/word/Pointer;
0 3 1 memory Lorg/graalvm/word/Pointer;
0 3 2 start Lorg/graalvm/word/Pointer;
0 3 3 end Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
table
memory
start
end
static void setTableForObjectAtOffsetUnchecked(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
aload 1
aload 2
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 2
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.subtract:(I)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 2: aload 0
aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectAtLocation:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 table Lorg/graalvm/word/Pointer;
0 4 1 startOffset Lorg/graalvm/word/UnsignedWord;
0 4 2 endOffset Lorg/graalvm/word/UnsignedWord;
2 4 3 actualEndOffset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
startOffset
endOffset
private static void setTableForObjectAtLocation(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 1: aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 2: aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToMemoryOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 3: aload 3
aload 4
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 5
aload 1
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.unsignedRemainder:(I)Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface org.graalvm.word.UnsignedWord.notEqual:(I)Z
ifeq 5
4: return
5: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 1
aload 5
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 9
6: aload 3
astore 6
start local 6 7: aload 0
aload 6
iconst_0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)V
8: goto 13
end local 6 9: StackMap locals:
StackMap stack:
aload 3
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 6
start local 6 10: aload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToMemoryOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 7
start local 7 11: aload 7
aload 1
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToEntry:(Lorg/graalvm/word/UnsignedWord;)I
istore 8
start local 8 12: aload 0
aload 6
iload 8
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)V
end local 8 end local 7 13: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
aload 4
aload 6
bipush 63
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.util.UnsignedUtils.min:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 7
start local 7 14: aload 6
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 8
start local 8 15: iconst_1
istore 9
start local 9 16: goto 20
17: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord int
StackMap stack:
aload 0
aload 8
iload 9
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)V
18: aload 8
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 8
19: iinc 9 1
20: StackMap locals:
StackMap stack:
aload 8
aload 7
invokeinterface org.graalvm.word.UnsignedWord.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 17
21: bipush 6
istore 10
start local 10 22: goto 33
23: StackMap locals: int
StackMap stack:
iconst_0
istore 11
start local 11 24: goto 31
25: StackMap locals: int
StackMap stack:
iload 10
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.biasExponent:(I)I
istore 12
start local 12 26: aload 0
aload 8
iload 12
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)V
27: aload 8
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 8
28: aload 8
aload 4
invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 30
29: goto 32
end local 12 30: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
31: iload 11
iconst_1
iload 10
ishl
if_icmplt 25
end local 11 32: StackMap locals:
StackMap stack:
iinc 10 1
33: StackMap locals:
StackMap stack:
aload 8
aload 4
invokeinterface org.graalvm.word.UnsignedWord.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 23
34: return
end local 10 end local 9 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 35 0 table Lorg/graalvm/word/Pointer;
0 35 1 startOffset Lorg/graalvm/word/UnsignedWord;
0 35 2 endOffset Lorg/graalvm/word/UnsignedWord;
1 35 3 startIndex Lorg/graalvm/word/UnsignedWord;
2 35 4 endIndex Lorg/graalvm/word/UnsignedWord;
3 35 5 startMemoryOffset Lorg/graalvm/word/UnsignedWord;
7 9 6 memoryOffsetIndex Lorg/graalvm/word/UnsignedWord;
10 35 6 memoryOffsetIndex Lorg/graalvm/word/UnsignedWord;
11 13 7 memoryIndexOffset Lorg/graalvm/word/UnsignedWord;
12 13 8 entry I
14 35 7 linearIndexMax Lorg/graalvm/word/UnsignedWord;
15 35 8 entryIndex Lorg/graalvm/word/UnsignedWord;
16 35 9 entry I
22 35 10 unbiasedExponent I
24 32 11 count I
26 30 12 biasedEntry I
MethodParameters:
Name Flags
table
startOffset
endOffset
static void setTableInBufferForObject(java.nio.ByteBuffer, int, org.graalvm.word.UnsignedWord, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/nio/ByteBuffer;ILorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.subtract:(I)Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 1: new com.oracle.svm.core.util.HostedByteBufferPointer
dup
aload 0
iload 1
invokespecial com.oracle.svm.core.util.HostedByteBufferPointer.<init>:(Ljava/nio/ByteBuffer;I)V
aload 2
aload 4
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.setTableForObjectAtLocation:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 buffer Ljava/nio/ByteBuffer;
0 3 1 bufferTableOffset I
0 3 2 startOffset Lorg/graalvm/word/UnsignedWord;
0 3 3 endOffset Lorg/graalvm/word/UnsignedWord;
1 3 4 actualEndOffset Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
buffer
bufferTableOffset
startOffset
endOffset
static void initializeTableInBuffer(java.nio.ByteBuffer, int, org.graalvm.word.UnsignedWord);
descriptor: (Ljava/nio/ByteBuffer;ILorg/graalvm/word/UnsignedWord;)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new com.oracle.svm.core.util.HostedByteBufferPointer
dup
aload 0
iload 1
invokespecial com.oracle.svm.core.util.HostedByteBufferPointer.<init>:(Ljava/nio/ByteBuffer;I)V
aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.doInitializeTableToLimit:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 buffer Ljava/nio/ByteBuffer;
0 2 1 bufferTableOffset I
0 2 2 tableSize Lorg/graalvm/word/UnsignedWord;
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
buffer
bufferTableOffset
tableSize
static org.graalvm.word.Pointer getPreciseFirstObjectPointer(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.getPreciseFirstObjectPointer:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
ldc " index: "
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.unsigned:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 1: aload 3
astore 5
start local 5 2: aload 0
aload 5
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 6
start local 6 3: aload 4
invokevirtual com.oracle.svm.core.log.Log.isEnabled:()Z
ifeq 6
4: aload 4
ldc " entry: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
5: aload 4
iload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.entryToLog:(Lcom/oracle/svm/core/log/Log;I)V
6: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord int
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 7
iload 6
bipush 127
if_icmpne 7
new java.lang.AssertionError
dup
ldc "uninitialized first object table entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
iload 6
ifle 18
8: goto 14
9: StackMap locals:
StackMap stack:
iload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.unbiasExponent:(I)I
istore 7
start local 7 10: iload 7
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.exponentToOffset:(I)Lorg/graalvm/word/UnsignedWord;
astore 8
start local 8 11: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 12
aload 8
aload 5
invokeinterface org.graalvm.word.UnsignedWord.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 12
new java.lang.AssertionError
dup
ldc "Delta out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals: int org.graalvm.word.UnsignedWord
StackMap stack:
aload 5
aload 8
invokeinterface org.graalvm.word.UnsignedWord.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 5
13: aload 0
aload 5
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 6
end local 8 end local 7 14: StackMap locals:
StackMap stack:
bipush 63
iload 6
if_icmplt 9
15: iload 6
ifle 18
16: aload 5
iload 6
invokeinterface org.graalvm.word.UnsignedWord.subtract:(I)Lorg/graalvm/word/UnsignedWord;
astore 5
17: aload 0
aload 5
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
istore 6
18: StackMap locals:
StackMap stack:
aload 1
aload 5
iload 6
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getPointerAtOffset:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)Lorg/graalvm/word/Pointer;
astore 7
start local 7 19: aload 4
ldc " returns: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
20: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 21
aload 1
aload 7
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 21
new java.lang.AssertionError
dup
ldc "memoryStart.belowOrEqual(result)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
21: StackMap locals: org.graalvm.word.Pointer
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 22
aload 7
aload 2
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 22
new java.lang.AssertionError
dup
ldc "result.belowThan(memoryLimit)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
22: StackMap locals:
StackMap stack:
aload 4
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
23: aload 7
areturn
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 24 0 tableStart Lorg/graalvm/word/Pointer;
0 24 1 memoryStart Lorg/graalvm/word/Pointer;
0 24 2 memoryLimit Lorg/graalvm/word/Pointer;
0 24 3 index Lorg/graalvm/word/UnsignedWord;
1 24 4 trace Lcom/oracle/svm/core/log/Log;
2 24 5 currentIndex Lorg/graalvm/word/UnsignedWord;
3 24 6 currentEntry I
10 14 7 exponent I
11 14 8 deltaIndex Lorg/graalvm/word/UnsignedWord;
19 24 7 result Lorg/graalvm/word/Pointer;
MethodParameters:
Name Flags
tableStart
memoryStart
memoryLimit
index
static org.graalvm.word.Pointer getImpreciseFirstObjectPointer(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.core.log.Log.noopLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.getImpreciseFirstObjectPointer:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 4
start local 4 1: aload 4
ldc " tableStart: "
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 " memoryStart: "
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;
ldc " memoryLimit: "
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 " index: "
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.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
aload 1
aload 2
aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getPreciseFirstObjectPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 5
start local 5 3: aload 1
aload 3
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToMemoryOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 6
start local 6 4: aload 5
aload 6
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 8
5: aload 5
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 8
start local 8 6: aload 8
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
astore 7
end local 8 start local 7 7: goto 10
end local 7 8: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.Pointer org.graalvm.word.Pointer
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 9
aload 5
aload 6
invokeinterface org.graalvm.word.Pointer.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 9
new java.lang.AssertionError
dup
ldc "preciseFirstPointer.equal(indexedMemoryStart)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals:
StackMap stack:
aload 6
astore 7
start local 7 10: StackMap locals: org.graalvm.word.Pointer
StackMap stack:
aload 4
ldc " returns: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
11: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 12
aload 1
aload 7
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 12
new java.lang.AssertionError
dup
ldc "memoryStart.belowOrEqual(result)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 13
aload 7
aload 2
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 13
new java.lang.AssertionError
dup
ldc "result.belowOrEqual(memoryLimit)"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
aload 4
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
14: aload 7
areturn
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 15 0 tableStart Lorg/graalvm/word/Pointer;
0 15 1 memoryStart Lorg/graalvm/word/Pointer;
0 15 2 memoryLimit Lorg/graalvm/word/Pointer;
0 15 3 index Lorg/graalvm/word/UnsignedWord;
1 15 4 trace Lcom/oracle/svm/core/log/Log;
3 15 5 preciseFirstPointer Lorg/graalvm/word/Pointer;
4 15 6 indexedMemoryStart Lorg/graalvm/word/Pointer;
7 8 7 result Lorg/graalvm/word/Pointer;
10 15 7 result Lorg/graalvm/word/Pointer;
6 7 8 crossingObject Ljava/lang/Object;
MethodParameters:
Name Flags
tableStart
memoryStart
memoryLimit
index
static boolean verify(org.graalvm.word.Pointer, org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=11, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.genscavenge.HeapVerifier.getTraceLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 3
start local 3 1: aload 3
ldc " tableStart: "
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 " memoryStart: "
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;
ldc " memoryLimit: "
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;
pop
2: aload 1
aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getTableSizeForMemoryRange:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 3: iconst_0
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 5
start local 5 4: goto 37
5: StackMap locals: com.oracle.svm.core.log.Log org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 3
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
ldc " FirstObjectTable.verify: index: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 5
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
6: aload 0
aload 1
aload 2
aload 5
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getPreciseFirstObjectPointer:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 6
start local 6 7: aload 3
ldc " objStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
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
8: aload 6
aload 1
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 11
9: aload 3
ldc " FirstObjectTable.verify: objStart.belowThan(memoryStart) => false]"
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
10: iconst_0
ireturn
11: StackMap locals: org.graalvm.word.Pointer
StackMap stack:
aload 2
aload 6
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifeq 14
12: aload 3
ldc " FirstObjectTable.verify: memoryLimit.belowOrEqual(objStart) => false]"
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: iconst_0
ireturn
14: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
aload 6
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.verifyObjectAt:(Lorg/graalvm/word/Pointer;)Z
ifne 19
15: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 7
start local 7 16: aload 7
ldc " tableStart: "
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 " memoryStart: "
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;
ldc " memoryLimit: "
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;
pop
17: aload 7
ldc " objStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " fails to verify"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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: iconst_0
ireturn
end local 7 19: StackMap locals:
StackMap stack:
aload 1
aload 5
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToMemoryOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 7
start local 7 20: aload 3
ldc " entryStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
21: aload 6
aload 7
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 26
22: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 8
start local 8 23: aload 8
ldc " tableStart: "
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 " memoryStart: "
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;
ldc " memoryLimit: "
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;
pop
24: aload 8
ldc " objStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 6
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " entryStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " !(objStart.belowOrEqual(entryStart))"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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
25: iconst_0
ireturn
end local 8 26: StackMap locals: org.graalvm.word.Pointer
StackMap stack:
aload 6
invokeinterface org.graalvm.word.Pointer.toObject:()Ljava/lang/Object;
astore 8
start local 8 27: aload 8
invokestatic com.oracle.svm.core.hub.LayoutEncoding.getObjectEnd:(Ljava/lang/Object;)Lorg/graalvm/word/Pointer;
astore 9
start local 9 28: aload 3
ldc " "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
29: aload 3
aload 8
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
30: aload 3
ldc " objEnd: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 9
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
31: aload 7
aload 9
invokeinterface org.graalvm.word.Pointer.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 36
32: invokestatic com.oracle.svm.core.genscavenge.HeapImpl.getHeapImpl:()Lcom/oracle/svm/core/genscavenge/HeapImpl;
invokevirtual com.oracle.svm.core.genscavenge.HeapImpl.getHeapVerifier:()Lcom/oracle/svm/core/genscavenge/HeapVerifier;
invokevirtual com.oracle.svm.core.genscavenge.HeapVerifier.getWitnessLog:()Lcom/oracle/svm/core/log/Log;
ldc "[FirstObjectTable.verify:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
astore 10
start local 10 33: aload 10
ldc " tableStart: "
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 " memoryStart: "
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;
ldc " memoryLimit: "
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;
pop
34: aload 10
ldc " objEnd: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 9
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " entryStart: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 7
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
ldc " !(entryStart.belowThan(objEnd))"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)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
35: iconst_0
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 36: StackMap locals:
StackMap stack:
aload 5
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 5
StackMap locals:
StackMap stack:
37: aload 5
aload 4
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 5
end local 5 38: aload 3
ldc " => true]"
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
39: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 tableStart Lorg/graalvm/word/Pointer;
0 40 1 memoryStart Lorg/graalvm/word/Pointer;
0 40 2 memoryLimit Lorg/graalvm/word/Pointer;
1 40 3 trace Lcom/oracle/svm/core/log/Log;
3 40 4 indexLimit Lorg/graalvm/word/UnsignedWord;
4 38 5 index Lorg/graalvm/word/UnsignedWord;
7 36 6 objStart Lorg/graalvm/word/Pointer;
16 19 7 witness Lcom/oracle/svm/core/log/Log;
20 36 7 entryStart Lorg/graalvm/word/Pointer;
23 26 8 witness Lcom/oracle/svm/core/log/Log;
27 36 8 obj Ljava/lang/Object;
28 36 9 objEnd Lorg/graalvm/word/Pointer;
33 36 10 witness Lcom/oracle/svm/core/log/Log;
MethodParameters:
Name Flags
tableStart
memoryStart
memoryLimit
static org.graalvm.word.UnsignedWord getTableSizeForMemoryRange(org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)Lorg/graalvm/word/UnsignedWord;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokeinterface org.graalvm.word.Pointer.belowOrEqual:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Pointers out of order"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
astore 2
start local 2 2: aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getTableSizeForMemorySize:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 memoryStart Lorg/graalvm/word/Pointer;
0 3 1 memoryLimit Lorg/graalvm/word/Pointer;
2 3 2 memorySize Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memoryStart
memoryLimit
private static org.graalvm.word.UnsignedWord getTableSizeForMemorySize(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.util.UnsignedUtils.roundUp:(Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 2: aload 2
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 memorySize Lorg/graalvm/word/UnsignedWord;
1 3 1 roundedMemory Lorg/graalvm/word/UnsignedWord;
2 3 2 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memorySize
private static int memoryOffsetScale();
descriptor: ()I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getAlignment:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static org.graalvm.word.Pointer initializeTableToIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.doInitializeTableToLimit:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 indexLimit Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
indexLimit
private static void doInitializeTableToLimit(org.graalvm.word.Pointer, org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/Pointer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.tableOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: aload 0
aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.doInitializeTableToLimit:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 table Lorg/graalvm/word/Pointer;
0 3 1 tableLimit Lorg/graalvm/word/Pointer;
1 3 2 indexLimit Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
tableLimit
private static boolean doInitializeTableToLimit(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: goto 4
2: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
aload 0
aload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.initializeEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
3: aload 2
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.add:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
StackMap locals:
StackMap stack:
4: aload 2
aload 1
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 2
end local 2 5: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 table Lorg/graalvm/word/Pointer;
0 6 1 indexLimit Lorg/graalvm/word/UnsignedWord;
1 5 2 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
indexLimit
private static void initializeEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
bipush 127
invokeinterface org.graalvm.word.Pointer.writeByte:(Lorg/graalvm/word/WordBase;B)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 table Lorg/graalvm/word/Pointer;
0 2 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
private static int getEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
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.FirstObjectTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.Pointer.readByte:(Lorg/graalvm/word/WordBase;)B
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 table Lorg/graalvm/word/Pointer;
0 1 1 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
table
index
private static void setEntryAtIndex(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord, int);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isValidEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Invalid entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 2
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isUninitializedIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)Z
ifne 2
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.getEntryAtIndex:(Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;)I
iload 2
if_icmpeq 2
new java.lang.AssertionError
dup
ldc "Overwriting!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToTableOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
iload 2
i2b
invokeinterface org.graalvm.word.Pointer.writeByte:(Lorg/graalvm/word/WordBase;B)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 table Lorg/graalvm/word/Pointer;
0 4 1 index Lorg/graalvm/word/UnsignedWord;
0 4 2 value I
MethodParameters:
Name Flags
table
index
value
private static boolean isValidEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: bipush -128
iload 0
if_icmpgt 1
iload 0
bipush 127
if_icmpgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isUninitializedEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isValidEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Invalid entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iload 0
bipush 127
if_icmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isMemoryOffsetEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isValidEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Invalid entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
bipush -128
iload 0
if_icmpgt 2
iload 0
ifgt 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isLinearOffsetEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isValidEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Invalid entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iconst_1
iload 0
if_icmpgt 2
iload 0
bipush 63
if_icmpgt 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 entry I
MethodParameters:
Name Flags
entry
private static boolean isExponentialOffsetEntry(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isValidEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Invalid entry"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.unbiasExponent:(I)I
istore 1
start local 1 2: bipush 6
iload 1
if_icmpgt 3
iload 1
bipush 55
if_icmpgt 3
iconst_1
ireturn
StackMap locals: int
StackMap stack:
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 entry I
2 4 1 unbiasedEntry I
MethodParameters:
Name Flags
entry
private static int biasExponent(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 2
bipush 6
iload 0
if_icmpgt 1
iload 0
bipush 55
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
ldc "Exponent out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
bipush 58
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 exponent I
MethodParameters:
Name Flags
exponent
private static int unbiasExponent(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iload 0
bipush 58
isub
istore 1
start local 1 1: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 3
bipush 6
iload 1
if_icmpgt 2
iload 1
bipush 55
if_icmple 3
StackMap locals: int
StackMap stack:
2: new java.lang.AssertionError
dup
ldc "Exponent out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 entry I
1 4 1 exponent I
MethodParameters:
Name Flags
entry
private static org.graalvm.word.UnsignedWord exponentToOffset(int);
descriptor: (I)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 2
iload 0
iflt 1
iload 0
bipush 63
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
ldc "Exponent out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
lconst_1
iload 0
lshl
invokestatic org.graalvm.word.WordFactory.unsigned:(J)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 n I
MethodParameters:
Name Flags
n
private static boolean memoryOffsetStartsCard(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.unsignedRemainder:(I)Lorg/graalvm/word/UnsignedWord;
iconst_0
invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
private static boolean memoryOffsetAndLengthCrossesCard(org.graalvm.word.UnsignedWord, org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;Lorg/graalvm/word/UnsignedWord;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 1: aload 0
aload 1
invokeinterface org.graalvm.word.UnsignedWord.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.subtract:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetToIndex:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 2: aload 2
aload 3
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(Lorg/graalvm/word/UnsignedWord;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 offset Lorg/graalvm/word/UnsignedWord;
0 3 1 length Lorg/graalvm/word/UnsignedWord;
1 3 2 startCard Lorg/graalvm/word/UnsignedWord;
2 3 3 endCard Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
length
private static org.graalvm.word.Pointer getPointerAtOffset(org.graalvm.word.Pointer, org.graalvm.word.UnsignedWord, int);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/word/UnsignedWord;I)Lorg/graalvm/word/Pointer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isMemoryOffsetEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Entry out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.indexToMemoryOffset:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
astore 3
start local 3 2: iload 2
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.entryToMemoryOffset:(I)Lorg/graalvm/word/UnsignedWord;
astore 4
start local 4 3: aload 0
aload 3
invokeinterface org.graalvm.word.Pointer.add:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
aload 4
invokeinterface org.graalvm.word.Pointer.subtract:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/Pointer;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 memory Lorg/graalvm/word/Pointer;
0 4 1 currentIndex Lorg/graalvm/word/UnsignedWord;
0 4 2 currentEntry I
2 4 3 indexOffset Lorg/graalvm/word/UnsignedWord;
3 4 4 entryOffset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
memory
currentIndex
currentEntry
private static org.graalvm.word.UnsignedWord indexToTableOffset(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
index
private static org.graalvm.word.UnsignedWord tableOffsetToIndex(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
private static org.graalvm.word.UnsignedWord indexToMemoryOffset(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 index Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
index
private static org.graalvm.word.UnsignedWord memoryOffsetToIndex(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 offset Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
offset
private static int memoryOffsetToEntry(org.graalvm.word.UnsignedWord);
descriptor: (Lorg/graalvm/word/UnsignedWord;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
aload 0
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Offset out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetScale:()I
invokeinterface org.graalvm.word.UnsignedWord.unsignedDivide:(I)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 3
aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetScale:()I
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
aload 0
invokeinterface org.graalvm.word.UnsignedWord.equal:(Lorg/graalvm/word/UnsignedWord;)Z
ifne 3
new java.lang.AssertionError
dup
ldc "Not a multiple."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: org.graalvm.word.UnsignedWord
StackMap stack:
aload 1
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
lneg
lstore 2
start local 2 4: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 6
ldc -128
lload 2
lcmp
ifgt 5
lload 2
lconst_0
lcmp
ifle 6
StackMap locals: long
StackMap stack:
5: new java.lang.AssertionError
dup
ldc "Scaled offset out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 memoryOffset Lorg/graalvm/word/UnsignedWord;
2 7 1 scaledOffset Lorg/graalvm/word/UnsignedWord;
4 7 2 result J
MethodParameters:
Name Flags
memoryOffset
private static org.graalvm.word.UnsignedWord entryToMemoryOffset(int);
descriptor: (I)Lorg/graalvm/word/UnsignedWord;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 1
iload 0
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isMemoryOffsetEntry:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "Entry out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
iload 0
ineg
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
astore 1
start local 1 2: aload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.memoryOffsetScale:()I
invokeinterface org.graalvm.word.UnsignedWord.multiply:(I)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 3: getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.$assertionsDisabled:Z
ifne 4
aload 2
getstatic com.oracle.svm.core.genscavenge.FirstObjectTable.BYTES_COVERED_BY_ENTRY:I
invokeinterface org.graalvm.word.UnsignedWord.belowThan:(I)Z
ifne 4
new java.lang.AssertionError
dup
ldc "Entry out of bounds."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: org.graalvm.word.UnsignedWord org.graalvm.word.UnsignedWord
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 entry I
2 5 1 entryUnsigned Lorg/graalvm/word/UnsignedWord;
3 5 2 result Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
entry
private static void entryToLog(com.oracle.svm.core.log.Log, int);
descriptor: (Lcom/oracle/svm/core/log/Log;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.oracle.svm.core.log.Log.signed:(I)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
1: iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isUninitializedEntry:(I)Z
ifeq 4
2: aload 0
ldc "UninitializedEntry"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
3: goto 14
StackMap locals:
StackMap stack:
4: iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isMemoryOffsetEntry:(I)Z
ifeq 7
5: aload 0
ldc "Memory:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.entryToMemoryOffset:(I)Lorg/graalvm/word/UnsignedWord;
invokevirtual com.oracle.svm.core.log.Log.signed:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
6: goto 14
StackMap locals:
StackMap stack:
7: iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isLinearOffsetEntry:(I)Z
ifeq 10
8: aload 0
ldc "Linear:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 1
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
pop
9: goto 14
StackMap locals:
StackMap stack:
10: iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.isExponentialOffsetEntry:(I)Z
ifeq 13
11: aload 0
ldc "Exponent:"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
iload 1
invokestatic com.oracle.svm.core.genscavenge.FirstObjectTable.unbiasExponent:(I)I
invokevirtual com.oracle.svm.core.log.Log.signed:(I)Lcom/oracle/svm/core/log/Log;
pop
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
ldc "Unknown"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 log Lcom/oracle/svm/core/log/Log;
0 15 1 entry I
MethodParameters:
Name Flags
log
entry
}
SourceFile: "FirstObjectTable.java"
NestMembers:
com.oracle.svm.core.genscavenge.FirstObjectTable$TestingBackDoor
InnerClasses:
public final TestingBackDoor = com.oracle.svm.core.genscavenge.FirstObjectTable$TestingBackDoor of com.oracle.svm.core.genscavenge.FirstObjectTable