public class org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets this
0: .line 42
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/replacements/UnsafeLoadSnippets;
public static java.lang.Object lowerUnsafeLoad(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // java.lang.Object object
start local 1 // long offset
0: .line 46
aload 0 /* object */
invokestatic org.graalvm.compiler.nodes.extended.FixedValueAnchorNode.getObject:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3 /* fixedObject */
start local 3 // java.lang.Object fixedObject
1: .line 47
aload 0 /* object */
instanceof java.lang.ref.Reference
ifeq 3
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.referentOffset:()J
lload 1 /* offset */
lcmp
ifne 3
2: .line 48
aload 3 /* fixedObject */
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Pointer;
lload 1 /* offset */
l2i
getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.PRECISE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
invokeinterface org.graalvm.compiler.word.Pointer.readObject:(ILorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)Ljava/lang/Object;
areturn
3: .line 50
StackMap locals: java.lang.Object
StackMap stack:
aload 3 /* fixedObject */
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Pointer;
lload 1 /* offset */
l2i
getstatic org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType.NONE:Lorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;
invokeinterface org.graalvm.compiler.word.Pointer.readObject:(ILorg/graalvm/compiler/nodes/memory/HeapAccess$BarrierType;)Ljava/lang/Object;
areturn
end local 3 // java.lang.Object fixedObject
end local 1 // long offset
end local 0 // java.lang.Object object
LocalVariableTable:
Start End Slot Name Signature
0 4 0 object Ljava/lang/Object;
0 4 1 offset J
1 4 3 fixedObject Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
object
offset
}
SourceFile: "UnsafeLoadSnippets.java"
NestMembers:
org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets$Templates
InnerClasses:
public Templates = org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets$Templates of org.graalvm.compiler.hotspot.replacements.UnsafeLoadSnippets
public final BarrierType = org.graalvm.compiler.nodes.memory.HeapAccess$BarrierType of org.graalvm.compiler.nodes.memory.HeapAccess