class com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor extends com.oracle.svm.core.stack.StackFrameVisitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor
super_class: com.oracle.svm.core.stack.StackFrameVisitor
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor this
0: .line 96
aload 0 /* this */
invokespecial com.oracle.svm.core.stack.StackFrameVisitor.<init>:()V
return
end local 0 // com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/genscavenge/StackVerifier$StackFrameVerifierVisitor;
public boolean visitFrame(org.graalvm.word.Pointer, org.graalvm.nativeimage.c.function.CodePointer, com.oracle.svm.core.code.CodeInfo, com.oracle.svm.core.deopt.DeoptimizedFrame);
descriptor: (Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=5
start local 0 // com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor this
start local 1 // org.graalvm.word.Pointer currentSP
start local 2 // org.graalvm.nativeimage.c.function.CodePointer currentIP
start local 3 // com.oracle.svm.core.code.CodeInfo codeInfo
start local 4 // com.oracle.svm.core.deopt.DeoptimizedFrame deoptimizedFrame
0: .line 100
invokestatic com.oracle.svm.core.genscavenge.StackVerifier.getTraceLog:()Lcom/oracle/svm/core/log/Log;
astore 5 /* trace */
start local 5 // com.oracle.svm.core.log.Log trace
1: .line 101
aload 3 /* codeInfo */
aload 3 /* codeInfo */
aload 2 /* currentIP */
invokestatic com.oracle.svm.core.code.CodeInfoAccess.relativeIP:(Lcom/oracle/svm/core/code/CodeInfo;Lorg/graalvm/nativeimage/c/function/CodePointer;)J
invokestatic com.oracle.svm.core.code.CodeInfoAccess.lookupTotalFrameSize:(Lcom/oracle/svm/core/code/CodeInfo;J)J
lstore 6 /* totalFrameSize */
start local 6 // long totalFrameSize
2: .line 102
aload 5 /* trace */
ldc " currentIP: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 2 /* currentIP */
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
3: .line 103
aload 5 /* trace */
ldc " currentSP: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
aload 1 /* currentSP */
invokevirtual com.oracle.svm.core.log.Log.hex:(Lorg/graalvm/word/WordBase;)Lcom/oracle/svm/core/log/Log;
pop
4: .line 104
aload 5 /* trace */
ldc " frameSize: "
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
lload 6 /* totalFrameSize */
invokevirtual com.oracle.svm.core.log.Log.signed:(J)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
5: .line 106
aload 1 /* currentSP */
aload 2 /* currentIP */
aload 3 /* codeInfo */
aload 4 /* deoptimizedFrame */
invokestatic com.oracle.svm.core.genscavenge.StackVerifier.verifyFrame:(Lorg/graalvm/word/Pointer;Lorg/graalvm/nativeimage/c/function/CodePointer;Lcom/oracle/svm/core/code/CodeInfo;Lcom/oracle/svm/core/deopt/DeoptimizedFrame;)Z
ifne 10
6: .line 107
invokestatic com.oracle.svm.core.log.Log.log:()Lcom/oracle/svm/core/log/Log;
astore 8 /* witness */
start local 8 // com.oracle.svm.core.log.Log witness
7: .line 108
aload 8 /* witness */
ldc " frame fails to verify"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
pop
8: .line 109
aload 8 /* witness */
ldc " returns false]"
invokevirtual com.oracle.svm.core.log.Log.string:(Ljava/lang/String;)Lcom/oracle/svm/core/log/Log;
invokevirtual com.oracle.svm.core.log.Log.newline:()Lcom/oracle/svm/core/log/Log;
pop
9: .line 110
iconst_0
ireturn
end local 8 // com.oracle.svm.core.log.Log witness
10: .line 112
StackMap locals: com.oracle.svm.core.log.Log long
StackMap stack:
iconst_1
ireturn
end local 6 // long totalFrameSize
end local 5 // com.oracle.svm.core.log.Log trace
end local 4 // com.oracle.svm.core.deopt.DeoptimizedFrame deoptimizedFrame
end local 3 // com.oracle.svm.core.code.CodeInfo codeInfo
end local 2 // org.graalvm.nativeimage.c.function.CodePointer currentIP
end local 1 // org.graalvm.word.Pointer currentSP
end local 0 // com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/core/genscavenge/StackVerifier$StackFrameVerifierVisitor;
0 11 1 currentSP Lorg/graalvm/word/Pointer;
0 11 2 currentIP Lorg/graalvm/nativeimage/c/function/CodePointer;
0 11 3 codeInfo Lcom/oracle/svm/core/code/CodeInfo;
0 11 4 deoptimizedFrame Lcom/oracle/svm/core/deopt/DeoptimizedFrame;
1 11 5 trace Lcom/oracle/svm/core/log/Log;
2 11 6 totalFrameSize J
7 10 8 witness Lcom/oracle/svm/core/log/Log;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.RestrictHeapAccess(access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access.NO_ALLOCATION:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;, reason = "Must not allocate while verifying the stack.")
MethodParameters:
Name Flags
currentSP
currentIP
codeInfo
deoptimizedFrame
}
SourceFile: "StackVerifier.java"
NestHost: com.oracle.svm.core.genscavenge.StackVerifier
InnerClasses:
public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
private StackFrameVerifierVisitor = com.oracle.svm.core.genscavenge.StackVerifier$StackFrameVerifierVisitor of com.oracle.svm.core.genscavenge.StackVerifier