public class org.graalvm.compiler.replacements.test.DerivedOopTest extends org.graalvm.compiler.replacements.test.ReplacementsTest implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.test.DerivedOopTest
super_class: org.graalvm.compiler.replacements.test.ReplacementsTest
{
public final org.junit.rules.ExpectedException thrown;
descriptor: Lorg/junit/rules/ExpectedException;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
RuntimeVisibleAnnotations:
org.junit.Rule()
private static final java.lang.String UNKNOWN_REFERENCE_AT_SAFEPOINT_MSG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "should not reach here: unknown reference alive across safepoint"
public static boolean SideEffectB;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static long SideEffect1;
descriptor: J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static long SideEffect2;
descriptor: J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static java.lang.Object o1;
descriptor: Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static java.lang.Object o2;
descriptor: Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
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=2, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
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 org.graalvm.compiler.replacements.test.DerivedOopTest.$assertionsDisabled:Z
3: ldc 16
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect1:J
4: ldc 16
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect2:J
5: new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o1:Ljava/lang/Object;
6: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o1:Ljava/lang/Object;
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o2:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.replacements.test.ReplacementsTest.<init>:()V
1: aload 0
invokestatic org.junit.rules.ExpectedException.none:()Lorg/junit/rules/ExpectedException;
putfield org.graalvm.compiler.replacements.test.DerivedOopTest.thrown:Lorg/junit/rules/ExpectedException;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
public void testFieldOffset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 6
2: StackMap locals: int
StackMap stack:
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
astore 2
start local 2 3: aload 0
ldc "fieldOffsetSnippet"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
ldc 16
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
4: aload 2
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
aload 2
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 2 5: iinc 1 1
StackMap locals:
StackMap stack:
6: iload 1
iconst_4
if_icmplt 2
end local 1 7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
1 7 1 i I
3 5 2 r Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
RuntimeVisibleAnnotations:
org.junit.Test()
static long getRawPointer(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.hashCode:()I
i2l
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
static long getRawPointerIntrinsic(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.word.Word.objectToTrackedPointer:(Ljava/lang/Object;)Lorg/graalvm/compiler/word/Word;
invokevirtual org.graalvm.compiler.word.Word.rawValue:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public static org.graalvm.compiler.replacements.test.DerivedOopTest$Result fieldOffsetSnippet(org.graalvm.compiler.replacements.test.DerivedOopTest$Result, long);
descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;J)Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 1
ladd
lstore 3
start local 3 1: lload 3
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(J)V
2: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
3: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 3
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
4: invokestatic java.lang.System.gc:()V
5: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
6: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 3
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
7: aload 0
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 obj Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 8 1 offset J
1 8 3 internalPointer J
MethodParameters:
Name Flags
obj
offset
public void testFieldOffsetMergeNonLiveBasePointer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest.thrown:Lorg/junit/rules/ExpectedException;
ldc Lorg/graalvm/compiler/debug/GraalError;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest.thrown:Lorg/junit/rules/ExpectedException;
ldc "should not reach here: unknown reference alive across safepoint"
invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
2: aload 0
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
astore 1
start local 1 3: aconst_null
astore 2
aconst_null
astore 3
4: aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.disable:()Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 11
7: StackMap locals: org.graalvm.compiler.replacements.test.DerivedOopTest org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope int
StackMap stack:
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
astore 6
start local 6 8: aload 0
ldc "fieldOffsetMergeSnippet01"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
ldc 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc 16
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
9: aload 6
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
aload 6
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 6 10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
iconst_4
if_icmplt 7
end local 5 12: aload 4
ifnull 18
aload 4
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 18
StackMap locals: org.graalvm.compiler.replacements.test.DerivedOopTest org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
13: astore 2
aload 4
ifnull 14
aload 4
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 4 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 3
aload 2
ifnonnull 16
aload 3
astore 2
goto 17
StackMap locals:
StackMap stack:
16: aload 2
aload 3
if_acmpeq 17
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 2
athrow
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
3 19 1 debug Lorg/graalvm/compiler/debug/DebugContext;
5 14 4 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
6 12 5 i I
8 10 6 r Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
Exception table:
from to target type
5 12 13 any
4 15 15 any
RuntimeVisibleAnnotations:
org.junit.Test()
public void testFieldOffsetMergeNonLiveBasePointerNotAccrossSafepoint();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
astore 2
start local 2 3: aload 0
ldc "fieldOffsetMergeSnippet02"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
ldc 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
ldc 16
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
end local 2 4: iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
iconst_4
if_icmplt 2
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
1 6 1 i I
3 4 2 r Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testFieldOffsetMergeLiveBasePointer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest.thrown:Lorg/junit/rules/ExpectedException;
ldc Lorg/graalvm/compiler/debug/GraalError;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest.thrown:Lorg/junit/rules/ExpectedException;
ldc "should not reach here: unknown reference alive across safepoint"
invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
2: aload 0
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
astore 1
start local 1 3: aconst_null
astore 2
aconst_null
astore 3
4: aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.disable:()Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 11
7: StackMap locals: org.graalvm.compiler.replacements.test.DerivedOopTest org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope int
StackMap stack:
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
astore 6
start local 6 8: aload 0
ldc "fieldOffsetMergeSnippet03"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
aastore
dup
iconst_2
new org.graalvm.compiler.replacements.test.DerivedOopTest$Result
dup
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$Result.<init>:()V
aastore
dup
iconst_3
ldc 8
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
ldc 16
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
9: aload 6
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
aload 6
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.delta:()J
invokestatic org.junit.Assert.assertEquals:(JJ)V
end local 6 10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
iconst_4
if_icmplt 7
end local 5 12: aload 4
ifnull 18
aload 4
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 18
StackMap locals: org.graalvm.compiler.replacements.test.DerivedOopTest org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
13: astore 2
aload 4
ifnull 14
aload 4
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 4 StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
15: astore 3
aload 2
ifnonnull 16
aload 3
astore 2
goto 17
StackMap locals:
StackMap stack:
16: aload 2
aload 3
if_acmpeq 17
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
17: aload 2
athrow
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
3 19 1 debug Lorg/graalvm/compiler/debug/DebugContext;
5 14 4 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
6 12 5 i I
8 10 6 r Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
Exception table:
from to target type
5 12 13 any
4 15 15 any
RuntimeVisibleAnnotations:
org.junit.Test()
public static org.graalvm.compiler.replacements.test.DerivedOopTest$Result fieldOffsetMergeSnippet01(org.graalvm.compiler.replacements.test.DerivedOopTest$Result, long, long);
descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;JJ)Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 3 0: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffectB:Z
ifeq 4
1: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o1:Ljava/lang/Object;
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 1
ladd
lstore 5
start local 5 2: lload 5
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect1:J
3: goto 6
end local 5 4: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o2:Ljava/lang/Object;
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 3
ladd
lstore 5
start local 5 5: lload 5
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect2:J
6: StackMap locals: long
StackMap stack:
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.controlFlowAnchor:()V
7: lload 5
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(J)V
8: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
9: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 5
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
10: invokestatic java.lang.System.gc:()V
11: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
12: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 5
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
13: aload 0
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 objResult Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 14 1 offsetA J
0 14 3 offsetB J
2 4 5 internalPointer J
5 14 5 internalPointer J
MethodParameters:
Name Flags
objResult
offsetA
offsetB
public static org.graalvm.compiler.replacements.test.DerivedOopTest$Result fieldOffsetMergeSnippet02(org.graalvm.compiler.replacements.test.DerivedOopTest$Result, long, long);
descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;JJ)Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 3 0: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffectB:Z
ifeq 4
1: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o1:Ljava/lang/Object;
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 1
ladd
lstore 5
start local 5 2: lload 5
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect1:J
3: goto 6
end local 5 4: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.o2:Ljava/lang/Object;
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 3
ladd
lstore 5
start local 5 5: lload 5
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect2:J
6: StackMap locals: long
StackMap stack:
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.controlFlowAnchor:()V
7: lload 5
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(J)V
8: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
9: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 5
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
10: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
11: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 5
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
12: aload 0
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 objResult Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 13 1 offsetA J
0 13 3 offsetB J
2 4 5 internalPointer J
5 13 5 internalPointer J
MethodParameters:
Name Flags
objResult
offsetA
offsetB
public static org.graalvm.compiler.replacements.test.DerivedOopTest$Result fieldOffsetMergeSnippet03(org.graalvm.compiler.replacements.test.DerivedOopTest$Result, org.graalvm.compiler.replacements.test.DerivedOopTest$Result, org.graalvm.compiler.replacements.test.DerivedOopTest$Result, long, long);
descriptor: (Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;JJ)Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 5 0: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffectB:Z
ifeq 4
1: aload 1
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 3
ladd
lstore 7
start local 7 2: lload 7
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect1:J
3: goto 6
end local 7 4: StackMap locals:
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
lload 5
ladd
lstore 7
start local 7 5: lload 7
putstatic org.graalvm.compiler.replacements.test.DerivedOopTest.SideEffect2:J
6: StackMap locals: long
StackMap stack:
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.controlFlowAnchor:()V
7: lload 7
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(J)V
8: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
9: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.beforeGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 7
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
10: invokestatic java.lang.System.gc:()V
11: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
aload 0
invokestatic org.graalvm.compiler.replacements.test.DerivedOopTest.getRawPointer:(Ljava/lang/Object;)J
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.basePointer:J
12: aload 0
getfield org.graalvm.compiler.replacements.test.DerivedOopTest$Result.afterGC:Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Pointers;
lload 7
putfield org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers.internalPointer:J
13: aload 0
areturn
end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 objResult Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 14 1 a Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 14 2 b Lorg/graalvm/compiler/replacements/test/DerivedOopTest$Result;
0 14 3 offsetA J
0 14 5 offsetB J
2 4 7 internalPointer J
5 14 7 internalPointer J
MethodParameters:
Name Flags
objResult
a
b
offsetA
offsetB
protected void registerInvocationPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
dup
aload 1
ldc Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
astore 2
start local 2 1: aload 0
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getSystemClassLoaderBytecodeProvider:()Lorg/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider;
astore 3
start local 3 2: aload 0
ldc "getRawPointerIntrinsic"
invokevirtual org.graalvm.compiler.replacements.test.DerivedOopTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 3: aload 2
ldc "getRawPointer"
ldc Ljava/lang/Object;
new org.graalvm.compiler.replacements.test.DerivedOopTest$1
dup
aload 0
aload 3
aload 4
invokespecial org.graalvm.compiler.replacements.test.DerivedOopTest$1.<init>:(Lorg/graalvm/compiler/replacements/test/DerivedOopTest;Lorg/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
4: aload 0
aload 1
invokespecial org.graalvm.compiler.replacements.test.ReplacementsTest.registerInvocationPlugins:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
0 6 1 invocationPlugins Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
1 6 2 r Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
2 6 3 bytecodeProvider Lorg/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider;
3 6 4 intrinsic Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
invocationPlugins
protected void checkHighTierGraph(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.replacements.test.DerivedOopTest.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/word/WordCastNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
ifgt 1
new java.lang.AssertionError
dup
ldc "DerivedOopTest.toLong should be intrinsified"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial org.graalvm.compiler.replacements.test.ReplacementsTest.checkHighTierGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/test/DerivedOopTest;
0 3 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
MethodParameters:
Name Flags
graph
}
SourceFile: "DerivedOopTest.java"
NestMembers:
org.graalvm.compiler.replacements.test.DerivedOopTest$1 org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers org.graalvm.compiler.replacements.test.DerivedOopTest$Result
InnerClasses:
public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
org.graalvm.compiler.replacements.test.DerivedOopTest$1
private Pointers = org.graalvm.compiler.replacements.test.DerivedOopTest$Pointers of org.graalvm.compiler.replacements.test.DerivedOopTest
private Result = org.graalvm.compiler.replacements.test.DerivedOopTest$Result of org.graalvm.compiler.replacements.test.DerivedOopTest