class jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl implements jdk.vm.ci.hotspot.HotSpotMemoryAccessProvider
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl
super_class: java.lang.Object
{
protected final jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider runtime;
descriptor: Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private long oopSizeOffset;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
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 jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider);
descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 3 1 runtime Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
MethodParameters:
Name Flags
runtime
private java.lang.Object asObject(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.JavaKind, long);
descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
ifeq 6
1: aload 1
checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
astore 5
start local 5 2: aload 5
invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.getType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
astore 6
start local 6 3: aload 5
invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
astore 7
start local 7 4: aload 0
aload 2
lload 3
aload 6
aload 7
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
pop
5: aload 7
areturn
end local 7 end local 6 end local 5 6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 7 1 base Ljdk/vm/ci/meta/Constant;
0 7 2 kind Ljdk/vm/ci/meta/JavaKind;
0 7 3 displacement J
2 6 5 constant Ljdk/vm/ci/hotspot/HotSpotObjectConstantImpl;
3 6 6 type Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
4 6 7 object Ljava/lang/Object;
MethodParameters:
Name Flags
base
kind
displacement
private static int computeOopSizeOffset(jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider);
descriptor: (Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
astore 1
start local 1 1: aload 1
ldc Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 2: aload 2
iconst_0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
3: aload 6
iload 4
aaload
astore 3
start local 3 4: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
ldc "oop_size"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
5: aload 3
checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.offset:()I
istore 7
start local 7 6: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 7
iload 7
ifne 7
new java.lang.AssertionError
dup
ldc "not expecting offset of java.lang.Class::oop_size to be 0"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField int int jdk.vm.ci.meta.ResolvedJavaField[] int
StackMap stack:
iload 7
ireturn
end local 7 end local 3 8: StackMap locals: jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider jdk.vm.ci.meta.MetaAccessProvider jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 3
10: new jdk.vm.ci.common.JVMCIError
dup
ldc "Could not find injected java.lang.Class::oop_size field"
invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 runtime Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
1 11 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
2 11 2 staticType Ljdk/vm/ci/meta/ResolvedJavaType;
4 8 3 f Ljdk/vm/ci/meta/ResolvedJavaField;
6 8 7 offset I
MethodParameters:
Name Flags
runtime
private boolean checkRead(jdk.vm.ci.meta.JavaKind, long, jdk.vm.ci.hotspot.HotSpotResolvedObjectType, java.lang.Object);
descriptor: (Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=15, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.isArray:()Z
ifeq 16
1: aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.getComponentType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 6
start local 6 2: aload 6
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
astore 7
start local 7 3: aload 7
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
istore 8
start local 8 4: aload 7
invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
istore 9
start local 9 5: aload 5
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
istore 10
start local 10 6: iload 8
iload 9
iload 10
imul
iadd
i2l
lstore 11
start local 11 7: lload 2
iload 8
i2l
lsub
iload 9
i2l
lrem
lconst_0
lcmp
ifne 8
iconst_1
goto 9
StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.JavaKind int int int long
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 13
start local 13 10: lload 2
lconst_0
lcmp
iflt 11
lload 2
lload 11
iload 9
i2l
lsub
lcmp
ifgt 11
aload 1
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 42
iload 13
ifne 42
11: StackMap locals: int
StackMap stack:
lload 2
iload 8
i2l
lsub
iload 9
i2l
ldiv
l2i
istore 14
start local 14 12: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsafe array access: reading element of kind "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
13: ldc " at offset "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " (index ~ "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " object of length "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 14 end local 13 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 16: StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind long jdk.vm.ci.hotspot.HotSpotResolvedObjectType java.lang.Object
StackMap stack:
aload 1
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 29
17: aload 5
instanceof java.lang.Class
ifeq 23
18: aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
lconst_0
lcmp
ifne 20
19: aload 0
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.computeOopSizeOffset:(Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;)I
i2l
putfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
20: StackMap locals:
StackMap stack:
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
invokeinterface jdk.vm.ci.code.CodeCacheProvider.getTarget:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
istore 8
start local 8 21: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 5
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.oopSizeOffset:J
invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
iload 8
imul
i2l
lstore 6
end local 8 start local 6 22: goto 24
end local 6 23: StackMap locals:
StackMap stack:
aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.instanceSize:()I
invokestatic java.lang.Math.abs:(I)I
i2l
lstore 6
start local 6 24: StackMap locals: long
StackMap stack:
aload 1
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
istore 8
start local 8 25: lload 2
iload 8
i2l
ladd
lload 6
lcmp
ifgt 26
lload 2
lconst_0
lcmp
ifge 42
26: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsafe access: reading "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes at offset "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " object of size "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 6 29: StackMap locals:
StackMap stack:
aload 4
lload 2
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.findInstanceFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 6
start local 6 30: aload 6
ifnonnull 34
aload 5
instanceof java.lang.Class
ifeq 34
31: aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
astore 7
start local 7 32: aload 7
aload 5
checkcast java.lang.Class
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
astore 8
start local 8 33: aload 8
lload 2
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.findStaticFieldWithOffset:(JLjdk/vm/ci/meta/JavaKind;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 6
end local 8 end local 7 34: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 6
ifnonnull 38
35: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsafe object access: field not found for read of kind Object at offset "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
36: lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " object"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
aload 6
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 42
39: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsafe object access: field "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
ldc "%H.%n:%T"
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not of expected kind Object"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
40: ldc " at offset "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedObjectType.toJavaName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " object"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
41: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 42: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 43 1 kind Ljdk/vm/ci/meta/JavaKind;
0 43 2 displacement J
0 43 4 type Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
0 43 5 object Ljava/lang/Object;
2 16 6 componentType Ljdk/vm/ci/meta/ResolvedJavaType;
3 16 7 componentKind Ljdk/vm/ci/meta/JavaKind;
4 16 8 headerSize I
5 16 9 sizeOfElement I
6 16 10 length I
7 16 11 arrayEnd J
10 16 13 aligned Z
12 16 14 index I
22 23 6 size J
24 29 6 size J
21 22 8 wordSize I
25 29 8 bytesToRead I
30 42 6 field Ljdk/vm/ci/meta/ResolvedJavaField;
32 34 7 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
33 34 8 staticFieldsHolder Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
MethodParameters:
Name Flags
kind
displacement
type
object
private boolean isValidObjectFieldDisplacement(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
ifeq 6
1: aload 1
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
astore 4
start local 4 2: aload 4
instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
ifeq 5
3: lload 2
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorOffset:I
i2l
lcmp
ifne 6
4: iconst_1
ireturn
5: StackMap locals: jdk.vm.ci.hotspot.MetaspaceWrapperObject
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 4 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 7 1 base Ljdk/vm/ci/meta/Constant;
0 7 2 displacement J
2 6 4 metaspaceObject Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
MethodParameters:
Name Flags
base
displacement
private static long asRawPointer(jdk.vm.ci.meta.Constant);
descriptor: (Ljdk/vm/ci/meta/Constant;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
ifeq 3
1: aload 0
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
astore 1
start local 1 2: aload 1
invokeinterface jdk.vm.ci.hotspot.MetaspaceWrapperObject.getMetaspacePointer:()J
lreturn
end local 1 3: StackMap locals:
StackMap stack:
aload 0
instanceof jdk.vm.ci.meta.PrimitiveConstant
ifeq 7
4: aload 0
checkcast jdk.vm.ci.meta.PrimitiveConstant
astore 1
start local 1 5: aload 1
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 7
6: aload 1
invokevirtual jdk.vm.ci.meta.PrimitiveConstant.asLong:()J
lreturn
end local 1 7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 base Ljdk/vm/ci/meta/Constant;
2 3 1 meta Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
5 7 1 prim Ljdk/vm/ci/meta/PrimitiveConstant;
MethodParameters:
Name Flags
base
private long readRawValue(jdk.vm.ci.meta.Constant, long, jdk.vm.ci.meta.JavaKind, int);
descriptor: (Ljdk/vm/ci/meta/Constant;JLjdk/vm/ci/meta/JavaKind;I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
aload 1
aload 4
lload 2
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
astore 6
start local 6 1: aload 6
ifnull 8
2: iload 5
lookupswitch { // 4
8: 3
16: 4
32: 5
64: 6
default: 7
}
3: StackMap locals: java.lang.Object
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 6
lload 2
invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
i2l
lreturn
4: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 6
lload 2
invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
i2l
lreturn
5: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 6
lload 2
invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
i2l
lreturn
6: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 6
lload 2
invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
lreturn
7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
iload 5
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asRawPointer:(Ljdk/vm/ci/meta/Constant;)J
lstore 7
start local 7 9: iload 5
lookupswitch { // 4
8: 10
16: 11
32: 12
64: 13
default: 14
}
10: StackMap locals: long
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 7
lload 2
ladd
invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
i2l
lreturn
11: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 7
lload 2
ladd
invokevirtual jdk.internal.misc.Unsafe.getShort:(J)S
i2l
lreturn
12: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 7
lload 2
ladd
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
i2l
lreturn
13: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 7
lload 2
ladd
invokevirtual jdk.internal.misc.Unsafe.getLong:(J)J
lreturn
14: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
iload 5
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 15 1 baseConstant Ljdk/vm/ci/meta/Constant;
0 15 2 displacement J
0 15 4 kind Ljdk/vm/ci/meta/JavaKind;
0 15 5 bits I
1 15 6 base Ljava/lang/Object;
9 15 7 pointer J
MethodParameters:
Name Flags
baseConstant
displacement
kind
bits
private boolean verifyReadRawObject(java.lang.Object, jdk.vm.ci.meta.Constant, long);
descriptor: (Ljava/lang/Object;Ljdk/vm/ci/meta/Constant;J)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstant
ifeq 5
1: aload 2
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.getMetaspaceObject:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
astore 5
start local 5 2: aload 5
instanceof jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
ifeq 5
3: lload 3
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.classMirrorOffset:I
i2l
lcmp
ifne 5
4: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 5
aload 1
aload 5
checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl.mirror:()Ljava/lang/Class;
if_acmpeq 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 5 5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 6 1 expected Ljava/lang/Object;
0 6 2 base Ljdk/vm/ci/meta/Constant;
0 6 3 displacement J
2 5 5 metaspaceObject Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;
MethodParameters:
Name Flags
expected
base
displacement
private java.lang.Object readRawObject(jdk.vm.ci.meta.Constant, long, boolean);
descriptor: (Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: lload 2
lstore 5
start local 5 1: aload 0
aload 1
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
lload 5
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asObject:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/JavaKind;J)Ljava/lang/Object;
astore 8
start local 8 2: aload 8
ifnonnull 7
3: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 4
iload 4
ifeq 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long top java.lang.Object
StackMap stack:
lload 5
aload 1
invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.asRawPointer:(Ljdk/vm/ci/meta/Constant;)J
ladd
lstore 5
5: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 5
invokevirtual jdk.internal.misc.Unsafe.getUncompressedObject:(J)Ljava/lang/Object;
astore 7
start local 7 6: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 9
aload 0
aload 7
aload 1
lload 2
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.verifyReadRawObject:(Ljava/lang/Object;Ljdk/vm/ci/meta/Constant;J)Z
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 7 7: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 8
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.useCompressedOops:Z
iload 4
if_icmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 8
lload 5
invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 7
start local 7 9: StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.Constant long int long java.lang.Object java.lang.Object
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 10 1 baseConstant Ljdk/vm/ci/meta/Constant;
0 10 2 initialDisplacement J
0 10 4 compressed Z
1 10 5 displacement J
6 7 7 ret Ljava/lang/Object;
9 10 7 ret Ljava/lang/Object;
2 10 8 base Ljava/lang/Object;
MethodParameters:
Name Flags
baseConstant
initialDisplacement
compressed
jdk.vm.ci.meta.JavaConstant readFieldValue(jdk.vm.ci.hotspot.HotSpotResolvedJavaField, java.lang.Object);
descriptor: (Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 2
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.isStatic:()Z
ifeq 2
aload 2
instanceof java.lang.Class
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.offset:()I
i2l
lstore 3
start local 3 3: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 4
aload 0
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
lload 3
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
checkcast jdk.vm.ci.hotspot.HotSpotResolvedObjectType
aload 2
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.checkRead:(Ljdk/vm/ci/meta/JavaKind;JLjdk/vm/ci/hotspot/HotSpotResolvedObjectType;Ljava/lang/Object;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: long
StackMap stack:
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 7
5: getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
astore 5
start local 5 6: aload 5
invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 5 7: StackMap locals:
StackMap stack:
aload 1
invokeinterface jdk.vm.ci.hotspot.HotSpotResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
astore 5
start local 5 8: invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 5
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 9
2: 10
3: 12
4: 11
5: 13
6: 15
7: 14
8: 16
default: 17
}
9: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getBoolean:(Ljava/lang/Object;J)Z
invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
10: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
11: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getChar:(Ljava/lang/Object;J)C
invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
12: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getShort:(Ljava/lang/Object;J)S
invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
13: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getInt:(Ljava/lang/Object;J)I
invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
14: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
15: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getFloat:(Ljava/lang/Object;J)F
invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
16: StackMap locals:
StackMap stack:
getstatic jdk.vm.ci.hotspot.UnsafeAccess.UNSAFE:Ljdk/internal/misc/Unsafe;
aload 2
lload 3
invokevirtual jdk.internal.misc.Unsafe.getDouble:(Ljava/lang/Object;J)D
invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
areturn
17: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported kind: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 18 1 field Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
0 18 2 obj Ljava/lang/Object;
3 18 3 displacement J
6 7 5 o Ljava/lang/Object;
8 18 5 kind Ljdk/vm/ci/meta/JavaKind;
MethodParameters:
Name Flags
field
obj
public jdk.vm.ci.meta.JavaConstant readPrimitiveConstant(jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.Constant, long, int);
descriptor: (Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/Constant;JI)Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: aload 0
aload 2
lload 3
aload 1
iload 5
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawValue:(Ljdk/vm/ci/meta/Constant;JLjdk/vm/ci/meta/JavaKind;I)J
lstore 6
start local 6 1: invokestatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:()[I
aload 1
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 2
2: 6
3: 10
4: 8
5: 12
6: 16
7: 14
8: 18
default: 20
}
2: StackMap locals: long
StackMap stack:
lload 6
lconst_0
lcmp
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: invokestatic jdk.vm.ci.meta.JavaConstant.forBoolean:(Z)Ljdk/vm/ci/meta/PrimitiveConstant;
5: areturn
6: StackMap locals:
StackMap stack:
lload 6
l2i
i2b
invokestatic jdk.vm.ci.meta.JavaConstant.forByte:(B)Ljdk/vm/ci/meta/PrimitiveConstant;
7: areturn
8: StackMap locals:
StackMap stack:
lload 6
l2i
i2c
invokestatic jdk.vm.ci.meta.JavaConstant.forChar:(C)Ljdk/vm/ci/meta/PrimitiveConstant;
9: areturn
10: StackMap locals:
StackMap stack:
lload 6
l2i
i2s
invokestatic jdk.vm.ci.meta.JavaConstant.forShort:(S)Ljdk/vm/ci/meta/PrimitiveConstant;
11: areturn
12: StackMap locals:
StackMap stack:
lload 6
l2i
invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
13: areturn
14: StackMap locals:
StackMap stack:
lload 6
invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
15: areturn
16: StackMap locals:
StackMap stack:
lload 6
l2i
invokestatic java.lang.Float.intBitsToFloat:(I)F
invokestatic jdk.vm.ci.meta.JavaConstant.forFloat:(F)Ljdk/vm/ci/meta/PrimitiveConstant;
17: areturn
18: StackMap locals:
StackMap stack:
lload 6
invokestatic java.lang.Double.longBitsToDouble:(J)D
invokestatic jdk.vm.ci.meta.JavaConstant.forDouble:(D)Ljdk/vm/ci/meta/PrimitiveConstant;
19: areturn
20: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported kind: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 21: StackMap locals: jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Constant long int
StackMap stack: java.lang.NullPointerException
pop
22: aconst_null
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 23 1 kind Ljdk/vm/ci/meta/JavaKind;
0 23 2 baseConstant Ljdk/vm/ci/meta/Constant;
0 23 3 initialDisplacement J
0 23 5 bits I
1 21 6 rawValue J
Exception table:
from to target type
0 5 21 Class java.lang.NullPointerException
6 7 21 Class java.lang.NullPointerException
8 9 21 Class java.lang.NullPointerException
10 11 21 Class java.lang.NullPointerException
12 13 21 Class java.lang.NullPointerException
14 15 21 Class java.lang.NullPointerException
16 17 21 Class java.lang.NullPointerException
18 19 21 Class java.lang.NullPointerException
20 21 21 Class java.lang.NullPointerException
MethodParameters:
Name Flags
kind
baseConstant
initialDisplacement
bits
public jdk.vm.ci.meta.JavaConstant readObjectConstant(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
ifeq 3
1: aload 0
aload 1
lload 2
aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getConfig:()Ljdk/vm/ci/hotspot/HotSpotVMConfig;
getfield jdk.vm.ci.hotspot.HotSpotVMConfig.useCompressedOops:Z
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 4 3: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.isValidObjectFieldDisplacement:(Ljdk/vm/ci/meta/Constant;J)Z
ifne 5
4: aconst_null
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
lload 2
iconst_0
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 6 1 base Ljdk/vm/ci/meta/Constant;
0 6 2 displacement J
2 3 4 o Ljava/lang/Object;
MethodParameters:
Name Flags
base
displacement
public jdk.vm.ci.meta.JavaConstant readNarrowOopConstant(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/JavaConstant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
lload 2
iconst_1
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readRawObject:(Ljdk/vm/ci/meta/Constant;JZ)Ljava/lang/Object;
iconst_1
invokestatic jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.forObject:(Ljava/lang/Object;Z)Ljdk/vm/ci/meta/JavaConstant;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 1 1 base Ljdk/vm/ci/meta/Constant;
0 1 2 displacement J
MethodParameters:
Name Flags
base
displacement
private jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl readKlass(jdk.vm.ci.meta.Constant, long, boolean);
descriptor: (Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 1
aload 1
instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
ifne 1
aload 1
instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
ifne 1
new java.lang.AssertionError
dup
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
ifeq 2
aload 1
checkcast jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.asResolvedJavaType:()Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;
goto 3
StackMap locals:
StackMap stack:
2: aload 1
checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
3: astore 5
start local 5 4: aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
aload 5
lload 2
iload 4
invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaType:(Ljava/lang/Object;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
areturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 5 1 base Ljdk/vm/ci/meta/Constant;
0 5 2 displacement J
0 5 4 compressed Z
4 5 5 baseObject Ljava/lang/Object;
MethodParameters:
Name Flags
base
displacement
compressed
public jdk.vm.ci.meta.Constant readKlassPointerConstant(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
lload 2
iconst_0
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readKlass:(Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: getstatic jdk.vm.ci.meta.JavaConstant.NULL_POINTER:Ljdk/vm/ci/meta/JavaConstant;
areturn
3: StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
StackMap stack:
aload 4
iconst_0
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 4 1 base Ljdk/vm/ci/meta/Constant;
0 4 2 displacement J
1 4 4 klass Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
MethodParameters:
Name Flags
base
displacement
public jdk.vm.ci.meta.Constant readNarrowKlassPointerConstant(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
lload 2
iconst_1
invokevirtual jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.readKlass:(Ljdk/vm/ci/meta/Constant;JZ)Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: getstatic jdk.vm.ci.hotspot.HotSpotCompressedNullConstant.COMPRESSED_NULL:Ljdk/vm/ci/meta/JavaConstant;
areturn
3: StackMap locals: jdk.vm.ci.hotspot.HotSpotResolvedObjectTypeImpl
StackMap stack:
aload 4
iconst_1
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 4 1 base Ljdk/vm/ci/meta/Constant;
0 4 2 displacement J
1 4 4 klass Ljdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl;
MethodParameters:
Name Flags
base
displacement
public jdk.vm.ci.meta.Constant readMethodPointerConstant(jdk.vm.ci.meta.Constant, long);
descriptor: (Ljdk/vm/ci/meta/Constant;J)Ljdk/vm/ci/meta/Constant;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$assertionsDisabled:Z
ifne 1
aload 1
instanceof jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
checkcast jdk.vm.ci.hotspot.HotSpotObjectConstantImpl
invokevirtual jdk.vm.ci.hotspot.HotSpotObjectConstantImpl.object:()Ljava/lang/Object;
astore 4
start local 4 2: aload 0
getfield jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.runtime:Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntimeProvider;
invokeinterface jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider.getCompilerToVM:()Ljdk/vm/ci/hotspot/CompilerToVM;
aload 4
lload 2
invokevirtual jdk.vm.ci.hotspot.CompilerToVM.getResolvedJavaMethod:(Ljava/lang/Object;J)Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
astore 5
start local 5 3: aload 5
iconst_0
invokestatic jdk.vm.ci.hotspot.HotSpotMetaspaceConstantImpl.forMetaspaceObject:(Ljdk/vm/ci/hotspot/MetaspaceWrapperObject;Z)Ljdk/vm/ci/hotspot/HotSpotMetaspaceConstantImpl;
areturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/vm/ci/hotspot/HotSpotMemoryAccessProviderImpl;
0 4 1 base Ljdk/vm/ci/meta/Constant;
0 4 2 displacement J
2 4 4 baseObject Ljava/lang/Object;
3 4 5 method Ljdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl;
MethodParameters:
Name Flags
base
displacement
static int[] $SWITCH_TABLE$jdk$vm$ci$meta$JavaKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.vm.ci.meta.JavaKind.values:()[Ljdk/vm/ci/meta/JavaKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Boolean:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Byte:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 6
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Illegal:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 11
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_5
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 7
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 9
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Short:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
iconst_3
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic jdk.vm.ci.meta.JavaKind.Void:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.ordinal:()I
bipush 10
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
dup
putstatic jdk.vm.ci.hotspot.HotSpotMemoryAccessProviderImpl.$SWITCH_TABLE$jdk$vm$ci$meta$JavaKind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
}
SourceFile: "HotSpotMemoryAccessProviderImpl.java"