public class org.graalvm.compiler.hotspot.replacements.HashCodeSnippets 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.HashCodeSnippets
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.HashCodeSnippets this
0: .line 51
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.graalvm.compiler.hotspot.replacements.HashCodeSnippets this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/replacements/HashCodeSnippets;
public static int identityHashCodeSnippet(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.lang.Object thisObj
0: .line 55
ldc 0.09999999999999998
aload 0 /* thisObj */
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: double
1: iconst_0
StackMap locals: java.lang.Object
StackMap stack: double int
2: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 4
3: .line 56
iconst_0
ireturn
4: .line 58
StackMap locals:
StackMap stack:
aload 0 /* thisObj */
invokestatic org.graalvm.compiler.hotspot.replacements.HashCodeSnippets.computeHashCode:(Ljava/lang/Object;)I
ireturn
end local 0 // java.lang.Object thisObj
LocalVariableTable:
Start End Slot Name Signature
0 5 0 thisObj Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
thisObj final
static int computeHashCode(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 // java.lang.Object x
0: .line 62
aload 0 /* x */
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.markOffset:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.loadWordFromObject:(Ljava/lang/Object;I)Lorg/graalvm/compiler/word/Word;
astore 1 /* mark */
start local 1 // org.graalvm.compiler.word.Word mark
1: .line 65
aload 1 /* mark */
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.biasedLockMaskInPlace:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
invokevirtual org.graalvm.compiler.word.Word.and:(I)Lorg/graalvm/compiler/word/Word;
astore 2 /* biasedLock */
start local 2 // org.graalvm.compiler.word.Word biasedLock
2: .line 66
ldc 0.99
aload 2 /* biasedLock */
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.unlockedMask:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
invokestatic org.graalvm.compiler.word.Word.unsigned:(I)Lorg/graalvm/compiler/word/Word;
invokevirtual org.graalvm.compiler.word.Word.equal:(Lorg/graalvm/compiler/word/Word;)Z
invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 8
3: .line 67
aload 1 /* mark */
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.identityHashCodeShift:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
invokevirtual org.graalvm.compiler.word.Word.unsignedShiftRight:(I)Lorg/graalvm/compiler/word/Word;
invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
l2i
istore 3 /* hash */
start local 3 // int hash
4: .line 68
ldc 0.99
iload 3 /* hash */
getstatic org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG:Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.uninitializedIdentityHashCodeValue:(Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;)I
if_icmpeq 5
iconst_1
goto 6
StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int
StackMap stack: double
5: iconst_0
StackMap locals: java.lang.Object org.graalvm.compiler.word.Word org.graalvm.compiler.word.Word int
StackMap stack: double int
6: invokestatic org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability:(DZ)Z
ifeq 8
7: .line 69
iload 3 /* hash */
ireturn
end local 3 // int hash
8: .line 72
StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.hotspot.meta.HotSpotForeignCallsProviderImpl.IDENTITY_HASHCODE:Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;
aload 0 /* x */
invokestatic org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.identityHashCode:(Lorg/graalvm/compiler/core/common/spi/ForeignCallDescriptor;Ljava/lang/Object;)I
ireturn
end local 2 // org.graalvm.compiler.word.Word biasedLock
end local 1 // org.graalvm.compiler.word.Word mark
end local 0 // java.lang.Object x
LocalVariableTable:
Start End Slot Name Signature
0 9 0 x Ljava/lang/Object;
1 9 1 mark Lorg/graalvm/compiler/word/Word;
2 9 2 biasedLock Lorg/graalvm/compiler/word/Word;
4 8 3 hash I
MethodParameters:
Name Flags
x final
}
SourceFile: "HashCodeSnippets.java"
NestMembers:
org.graalvm.compiler.hotspot.replacements.HashCodeSnippets$Templates
InnerClasses:
public Templates = org.graalvm.compiler.hotspot.replacements.HashCodeSnippets$Templates of org.graalvm.compiler.hotspot.replacements.HashCodeSnippets