class com.oracle.svm.core.deopt.Deoptimizer$TargetContent
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.deopt.Deoptimizer$TargetContent
super_class: java.lang.Object
{
private final byte[] frameBuffer;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int sizeofInt;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int sizeofLong;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int sizeofCompressedReference;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int sizeofUncompressedReference;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int arrayBaseOffset;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException;
descriptor: Ljava/lang/ArrayIndexOutOfBoundsException;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
putstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofInt:I
1: getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
putstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofLong:I
2: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
putstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.arrayBaseOffset:I
3: new java.lang.ArrayIndexOutOfBoundsException
dup
ldc "TargetContent.offsetCheck"
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
putstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.arrayIndexOutOfBoundsException:Ljava/lang/ArrayIndexOutOfBoundsException;
return
LocalVariableTable:
Start End Slot Name Signature
private void offsetCheck(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iflt 1
iload 1
aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
arraylength
iload 2
isub
if_icmple 2
1: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.arrayIndexOutOfBoundsException:Ljava/lang/ArrayIndexOutOfBoundsException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 3 1 offset I
0 3 2 size I
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
offset
size
protected void <init>(int, java.nio.ByteOrder);
descriptor: (ILjava/nio/ByteOrder;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getReferenceSize:()I
putfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofCompressedReference:I
2: aload 0
invokestatic com.oracle.svm.core.FrameAccess.uncompressedReferenceSize:()I
putfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofUncompressedReference:I
3: aload 2
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
if_acmpeq 5
4: ldc "TargetContent with non-native byte order."
invokestatic com.oracle.svm.core.util.VMError.unsupportedFeature:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
5: StackMap locals: com.oracle.svm.core.deopt.Deoptimizer$TargetContent int java.nio.ByteOrder
StackMap stack:
invokestatic com.oracle.svm.core.FrameAccess.returnAddressSize:()I
getstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofLong:I
if_icmpeq 7
6: ldc "TargetContent with returnAddressSize() != sizeof(long)."
invokestatic com.oracle.svm.core.util.VMError.unsupportedFeature:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
7: StackMap locals:
StackMap stack:
aload 0
iload 1
newarray 8
putfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 9 1 targetContentSize I
0 9 2 byteOrder Ljava/nio/ByteOrder;
MethodParameters:
Name Flags
targetContentSize
byteOrder
protected int getSize();
descriptor: ()I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
protected void copyToPointer(org.graalvm.word.Pointer);
descriptor: (Lorg/graalvm/word/Pointer;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
iload 2
baload
invokeinterface org.graalvm.word.Pointer.writeByte:(IB)V
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
arraylength
if_icmplt 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 6 1 p Lorg/graalvm/word/Pointer;
1 5 2 idx I
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
p
protected void writeInt(int, int);
descriptor: (II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
getstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofInt:I
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.offsetCheck:(II)V
1: aload 0
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.addressOfFrameArray0:()Lorg/graalvm/word/Pointer;
iload 1
iload 2
invokeinterface org.graalvm.word.Pointer.writeInt:(II)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 3 1 offset I
0 3 2 value I
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
offset
value
protected void writeLong(int, long);
descriptor: (IJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
getstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofLong:I
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.offsetCheck:(II)V
1: aload 0
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.addressOfFrameArray0:()Lorg/graalvm/word/Pointer;
iload 1
lload 2
invokeinterface org.graalvm.word.Pointer.writeLong:(IJ)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 3 1 offset I
0 3 2 value J
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
offset
value
protected void writeWord(int, org.graalvm.word.WordBase);
descriptor: (ILorg/graalvm/word/WordBase;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.svm.core.FrameAccess.wordSize:()I
bipush 8
if_icmpne 3
1: aload 0
iload 1
aload 2
invokeinterface org.graalvm.word.WordBase.rawValue:()J
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.writeLong:(IJ)V
2: goto 7
StackMap locals:
StackMap stack:
3: invokestatic com.oracle.svm.core.FrameAccess.wordSize:()I
iconst_4
if_icmpne 6
4: aload 0
iload 1
aload 2
invokeinterface org.graalvm.word.WordBase.rawValue:()J
l2i
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.writeInt:(II)V
5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected word size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic com.oracle.svm.core.FrameAccess.wordSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 8 1 offset I
0 8 2 value Lorg/graalvm/word/WordBase;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
offset
value
protected void writeObject(int, java.lang.Object, boolean);
descriptor: (ILjava/lang/Object;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 3
ifeq 1
aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofCompressedReference:I
goto 2
StackMap locals: com.oracle.svm.core.deopt.Deoptimizer$TargetContent int java.lang.Object int
StackMap stack: com.oracle.svm.core.deopt.Deoptimizer$TargetContent int
1: aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.sizeofUncompressedReference:I
StackMap locals: com.oracle.svm.core.deopt.Deoptimizer$TargetContent int java.lang.Object int
StackMap stack: com.oracle.svm.core.deopt.Deoptimizer$TargetContent int int
2: invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.offsetCheck:(II)V
3: aload 0
invokevirtual com.oracle.svm.core.deopt.Deoptimizer$TargetContent.addressOfFrameArray0:()Lorg/graalvm/word/Pointer;
checkcast org.graalvm.compiler.word.Word
astore 4
start local 4 4: aload 4
iload 1
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
astore 4
5: invokestatic com.oracle.svm.core.heap.ReferenceAccess.singleton:()Lcom/oracle/svm/core/heap/ReferenceAccess;
aload 4
aload 2
iload 3
invokeinterface com.oracle.svm.core.heap.ReferenceAccess.writeObjectAt:(Lorg/graalvm/word/Pointer;Ljava/lang/Object;Z)V
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
0 7 1 offset I
0 7 2 value Ljava/lang/Object;
0 7 3 compressed Z
4 7 4 address Lorg/graalvm/compiler/word/Word;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
MethodParameters:
Name Flags
offset
value
compressed
private org.graalvm.word.Pointer addressOfFrameArray0();
descriptor: ()Lorg/graalvm/word/Pointer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.deopt.Deoptimizer$TargetContent.frameBuffer:[B
invokestatic org.graalvm.compiler.word.Word.objectToUntrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
getstatic com.oracle.svm.core.deopt.Deoptimizer$TargetContent.arrayBaseOffset:I
invokevirtual org.graalvm.compiler.word.Word.add:(I)Lorg/graalvm/compiler/word/Word;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/deopt/Deoptimizer$TargetContent;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Called from uninterruptible code.")
}
SourceFile: "Deoptimizer.java"
NestHost: com.oracle.svm.core.deopt.Deoptimizer
InnerClasses:
TargetContent = com.oracle.svm.core.deopt.Deoptimizer$TargetContent of com.oracle.svm.core.deopt.Deoptimizer