public class com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode extends jdk.vm.ci.code.InstalledCode implements com.oracle.svm.core.deopt.SubstrateInstalledCode, org.graalvm.compiler.truffle.common.OptimizedAssumptionDependency
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode
super_class: jdk.vm.ci.code.InstalledCode
{
protected final com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget callTarget;
descriptor: Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final java.lang.String NOT_CALLED_IN_SUBSTRATE_VM;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "No implementation in Substrate VM"
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=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
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 com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget);
descriptor: (Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
invokespecial jdk.vm.ci.code.InstalledCode.<init>:(Ljava/lang/String;)V
1: aload 0
aload 1
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
0 3 1 callTarget Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
MethodParameters:
Name Flags
callTarget
public void invalidate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic com.oracle.svm.core.code.CodeInfoTable.invalidateInstalledCode:(Lcom/oracle/svm/core/deopt/SubstrateInstalledCode;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public void onAssumptionInvalidated(java.lang.Object, java.lang.CharSequence);
descriptor: (Ljava/lang/Object;Ljava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.isAlive:()Z
ifeq 5
1: aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.invalidate:()V
2: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
checkcast org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.getListener:()Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntimeListener;
aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
aload 1
aload 2
invokeinterface org.graalvm.compiler.truffle.runtime.GraalTruffleRuntimeListener.onCompilationInvalidated:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;Ljava/lang/Object;Ljava/lang/CharSequence;)V
end local 3 4: goto 6
5: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
ifne 6
aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.isValid:()Z
ifeq 6
new java.lang.AssertionError
dup
ldc "Cannot be valid but not alive"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
0 7 1 source Ljava/lang/Object;
0 7 2 reason Ljava/lang/CharSequence;
3 4 3 runtime Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
MethodParameters:
Name Flags
source
reason
public boolean isValid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial jdk.vm.ci.code.InstalledCode.isValid:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public org.graalvm.compiler.truffle.common.CompilableTruffleAST getCompilable();
descriptor: ()Lorg/graalvm/compiler/truffle/common/CompilableTruffleAST;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public com.oracle.svm.core.deopt.SubstrateSpeculationLog getSpeculationLog();
descriptor: ()Lcom/oracle/svm/core/deopt/SubstrateSpeculationLog;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.getSpeculationLog:()Lcom/oracle/svm/core/deopt/SubstrateSpeculationLog;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.getName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public jdk.vm.ci.meta.ResolvedJavaMethod getMethod();
descriptor: ()Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public void setAddress(long, jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (JLjdk/vm/ci/meta/ResolvedJavaMethod;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isInProgressAtSafepoint:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
2: aload 0
lload 1
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.address:J
3: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.onCodeInstalled:(Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;)V
4: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
0 5 1 address J
0 5 3 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
address
method
public void clearAddress();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isInProgressAtSafepoint:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
2: aload 0
lconst_0
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.address:J
3: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.callTarget:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.onCodeCleared:(Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public void invalidateWithoutDeoptimization();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
ifne 1
invokestatic com.oracle.svm.core.thread.VMOperation.isInProgressAtSafepoint:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.isValid:()Z
ifeq 3
2: aload 0
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.invalidateWithoutDeoptimization0:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
private void invalidateWithoutDeoptimization0();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
lconst_0
putfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
1: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.address:J
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.function.CodePointer
invokestatic com.oracle.svm.core.code.CodeInfoTable.lookupCodeInfo:(Lorg/graalvm/nativeimage/c/function/CodePointer;)Lcom/oracle/svm/core/code/UntetheredCodeInfo;
astore 1
start local 1 2: getstatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.$assertionsDisabled:Z
ifne 4
aload 1
invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.isNonNull:()Z
ifeq 3
aload 1
invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeInfo:()Lcom/oracle/svm/core/code/CodeInfo;
invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
ifne 4
StackMap locals: com.oracle.svm.core.code.UntetheredCodeInfo
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokestatic com.oracle.svm.core.code.CodeInfoAccess.acquireTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;)Ljava/lang/Object;
astore 2
start local 2 5: aload 1
aload 2
invokestatic com.oracle.svm.core.code.CodeInfoAccess.convert:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)Lcom/oracle/svm/core/code/CodeInfo;
astore 3
start local 3 6: aload 3
iconst_2
invokestatic com.oracle.svm.core.code.CodeInfoAccess.setState:(Lcom/oracle/svm/core/code/CodeInfo;I)V
end local 3 7: goto 11
StackMap locals: com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode com.oracle.svm.core.code.UntetheredCodeInfo java.lang.Object
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 1
aload 2
invokestatic com.oracle.svm.core.code.CodeInfoAccess.releaseTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)V
10: aload 4
athrow
11: StackMap locals:
StackMap stack:
aload 1
aload 2
invokestatic com.oracle.svm.core.code.CodeInfoAccess.releaseTether:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;Ljava/lang/Object;)V
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
2 13 1 untetheredInfo Lcom/oracle/svm/core/code/UntetheredCodeInfo;
5 13 2 tether Ljava/lang/Object;
6 7 3 codeInfo Lcom/oracle/svm/core/code/CodeInfo;
Exception table:
from to target type
5 8 8 any
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Must tether the CodeInfo.")
static java.lang.Object doInvoke(com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget, java.lang.Object[]);
descriptor: (Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.safepointBarrier:()V
1: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.installedCode:Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
lstore 2
start local 2 2: lload 2
lconst_0
lcmp
ifeq 6
3: lload 2
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget$CallBoundaryFunctionPointer
astore 4
start local 4 4: aload 4
aload 0
aload 1
invokeinterface com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget$CallBoundaryFunctionPointer.invoke:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;[Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 5: aload 5
ldc Ljava/lang/Object;
invokestatic com.oracle.svm.core.snippets.KnownIntrinsics.convertUnknownValue:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 5 end local 4 6: StackMap locals: long
StackMap stack:
aload 0
aload 1
invokevirtual com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget.invokeCallBoundary:([Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 callTarget Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget;
0 7 1 args [Ljava/lang/Object;
2 7 2 start J
4 6 4 target Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTarget$CallBoundaryFunctionPointer;
5 6 5 result Ljava/lang/Object;
MethodParameters:
Name Flags
callTarget
args
boolean isValidLastTier();
descriptor: ()Z
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
lconst_0
lcmp
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.truffle.api.SubstrateOptimizedCallTargetInstalledCode.entryPoint:J
invokestatic org.graalvm.word.WordFactory.pointer:(J)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.function.CodePointer
invokestatic com.oracle.svm.core.code.CodeInfoTable.lookupCodeInfo:(Lorg/graalvm/nativeimage/c/function/CodePointer;)Lcom/oracle/svm/core/code/UntetheredCodeInfo;
astore 1
start local 1 3: aload 1
invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.isNonNull:()Z
ifeq 6
aload 1
invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeInfo:()Lcom/oracle/svm/core/code/CodeInfo;
invokeinterface com.oracle.svm.core.code.UntetheredCodeInfo.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
ifeq 6
4: aload 1
invokestatic com.oracle.svm.core.code.UntetheredCodeInfoAccess.getTier:(Lcom/oracle/svm/core/code/UntetheredCodeInfo;)I
iconst_2
if_icmpne 6
5: iconst_1
ireturn
StackMap locals: com.oracle.svm.core.code.UntetheredCodeInfo
StackMap stack:
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
3 7 1 info Lcom/oracle/svm/core/code/UntetheredCodeInfo;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Uninterruptible(reason = "Prevent the GC from freeing the CodeInfo object.")
public long getStart();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "No implementation in Substrate VM"
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public byte[] getCode();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "No implementation in Substrate VM"
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
public java.lang.Object executeVarargs(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: ldc "No implementation in Substrate VM"
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/truffle/api/SubstrateOptimizedCallTargetInstalledCode;
0 1 1 args [Ljava/lang/Object;
MethodParameters:
Name Flags
args
}
SourceFile: "SubstrateOptimizedCallTargetInstalledCode.java"
InnerClasses:
abstract CallBoundaryFunctionPointer = com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget$CallBoundaryFunctionPointer of com.oracle.svm.truffle.api.SubstrateOptimizedCallTarget