Last active
August 15, 2017 16:30
-
-
Save ragnard/5d49bc7a9bc17614f3cccbecbf466ff6 to your computer and use it in GitHub Desktop.
klambda recursion
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun count-down (N) | |
(if (= N 0) | |
done | |
(count-down (- N 1)))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CompilerOracle: print *OptimizedCallTarget.callRoot | |
CompilerOracle: exclude *OptimizedCallTarget.callRoot | |
count-down | |
### Excluding compile: org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot | |
[truffle] opt queued RootNode@4fccd51b |ASTSize 26/ 26 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
[truffle] opt start RootNode@4fccd51b |ASTSize 26/ 26 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
Compiled method (JVMCI) 1015 1423 4 org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot (53 bytes) | |
total in heap [0x000000010f86ed90,0x000000010f86f4d0] = 1856 | |
relocation [0x000000010f86eec8,0x000000010f86ef00] = 56 | |
main code [0x000000010f86ef00,0x000000010f86f19c] = 668 | |
stub code [0x000000010f86f19c,0x000000010f86f1a0] = 4 | |
oops [0x000000010f86f1a0,0x000000010f86f1c8] = 40 | |
metadata [0x000000010f86f1c8,0x000000010f86f2b0] = 232 | |
scopes data [0x000000010f86f2b0,0x000000010f86f3e8] = 312 | |
scopes pcs [0x000000010f86f3e8,0x000000010f86f4c8] = 224 | |
dependencies [0x000000010f86f4c8,0x000000010f86f4d0] = 8 | |
Loaded disassembler from /Users/ragnardahlen/projects/labsjdk1.8.0_121-jvmci-0.26/jre/lib/hsdis-amd64.dylib | |
---------------------------------------------------------------------- | |
org/graalvm/compiler/truffle/OptimizedCallTarget.callRoot (RootNode@4fccd51b) [0x000000010f86ef00, 0x000000010f86f1a0] 672 bytes | |
[Disassembling for mach='i386:x86-64'] | |
[Entry Point] | |
[Constants] | |
# {method} {0x00000001099d56e0} 'callRoot' '([Ljava/lang/Object;)Ljava/lang/Object;' in 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# this: rsi:rsi = 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# parm0: rdx:rdx = '[Ljava/lang/Object;' | |
# [sp+0x30] (sp of caller) | |
0x000000010f86ef00: mov r10d,DWORD PTR [rsi+0x8] | |
0x000000010f86ef04: shl r10,0x3 | |
0x000000010f86ef08: cmp rax,r10 | |
0x000000010f86ef0b: jne 0x000000010f1b7e20 ; {runtime_call} | |
0x000000010f86ef11: nop | |
0x000000010f86ef12: nop DWORD PTR [rax+0x0] | |
0x000000010f86ef19: nop DWORD PTR [rax+0x0] | |
[Verified Entry Point] | |
0x000000010f86ef20: mov DWORD PTR [rsp-0x14000],eax | |
0x000000010f86ef27: sub rsp,0x28 | |
0x000000010f86ef2b: mov QWORD PTR [rsp+0x20],rbp | |
0x000000010f86ef30: mov r14,rdx | |
0x000000010f86ef33: mov esi,DWORD PTR [r14+0x14] ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f86ef37: mov rsi,QWORD PTR [rsi*8+0x10] | |
;*invokevirtual longValue {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.TypesGen::expectLong@11 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.ExpressionNode::executeLong@5 (line 61) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@5 (line 46) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@47 (line 51) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@47 (line 51) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f86ef3f: cmp rsi,0x2a | |
0x000000010f86ef43: je 0x000000010f86f188 ;*invokestatic transferToInterpreterAndInvalidate {reexecute=0 rethrow=0 return_oop=0} | |
; - com.oracle.truffle.api.profiles.ConditionProfile$Counting::profile@18 (line 148) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@9 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f86ef49: mov rbx,rsi | |
0x000000010f86ef4c: sub rbx,0x1 | |
0x000000010f86ef50: jo 0x000000010f86f16a ;*invokestatic subtractExact {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.Subtract::subtract@2 (line 12) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.EvaluateArgumentsNode::executeGeneric@40 (line 25) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@19 (line 32) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@29 (line 57) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f86ef56: movabs rsi,0x76eb18338 ; {oop(a 'com/github/ragnard/shen/klambda/runtime/Function')} | |
0x000000010f86ef60: mov ebp,DWORD PTR [rsi+0x18] ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Function::packArguments@16 (line 69) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@7 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@29 (line 57) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f86ef63: cmp rbx,0xffffffffffffff80 | |
0x000000010f86ef67: jl 0x000000010f86ef7a | |
0x000000010f86ef6d: cmp rbx,0x80 | |
0x000000010f86ef74: jl 0x000000010f86f0d5 | |
0x000000010f86ef7a: mov rsi,QWORD PTR [r15+0x60] | |
0x000000010f86ef7e: mov r10,rsi | |
0x000000010f86ef81: add r10,0x18 | |
0x000000010f86ef85: movabs r11,0x7c0011570 ; {metadata('java/lang/Long')} | |
0x000000010f86ef8f: cmp r10,QWORD PTR [r15+0x70] | |
0x000000010f86ef93: ja 0x000000010f86f151 | |
0x000000010f86ef99: mov QWORD PTR [r15+0x60],r10 | |
0x000000010f86ef9d: prefetchnta BYTE PTR [rsi+0xd8] | |
0x000000010f86efa4: mov r10,QWORD PTR [r11+0xa8] | |
0x000000010f86efab: mov QWORD PTR [rsi],r10 | |
0x000000010f86efae: mov DWORD PTR [rsi+0x8],0xf80022ae | |
; {metadata('java/lang/Long')} | |
0x000000010f86efb5: mov DWORD PTR [rsi+0xc],0x0 | |
0x000000010f86efbc: mov QWORD PTR [rsi+0x10],0x0 | |
0x000000010f86efc4: mov QWORD PTR [rsi+0x10],rbx | |
0x000000010f86efc8: mov r10,QWORD PTR [r15+0x60] | |
0x000000010f86efcc: mov r11,r10 | |
0x000000010f86efcf: add r11,0x28 | |
0x000000010f86efd3: movabs r8,0x7c00eb880 ; {metadata('com/github/ragnard/shen/klambda/nodes/TailCallException')} | |
0x000000010f86efdd: cmp r11,QWORD PTR [r15+0x70] | |
0x000000010f86efe1: ja 0x000000010f86f0f7 | |
0x000000010f86efe7: mov QWORD PTR [r15+0x60],r11 | |
0x000000010f86efeb: prefetchnta BYTE PTR [r10+0xe8] | |
0x000000010f86eff3: mov r11,QWORD PTR [r8+0xa8] | |
0x000000010f86effa: mov QWORD PTR [r10],r11 | |
0x000000010f86effd: mov DWORD PTR [r10+0x8],0xf801d710 | |
; {metadata('com/github/ragnard/shen/klambda/nodes/TailCallException')} | |
0x000000010f86f005: mov DWORD PTR [r10+0xc],0x0 | |
0x000000010f86f00d: mov QWORD PTR [r10+0x10],0x0 | |
0x000000010f86f015: mov QWORD PTR [r10+0x18],0x0 | |
0x000000010f86f01d: mov QWORD PTR [r10+0x20],0x0 | |
0x000000010f86f025: mov DWORD PTR [r10+0x20],0xedd601b7 | |
; {oop(a 'org/graalvm/compiler/truffle/OptimizedCallTarget')} | |
0x000000010f86f02d: mov DWORD PTR [r10+0x1c],0xedd6c9af | |
; {oop(a 'java/util/Collections$UnmodifiableRandomAccessList')} | |
0x000000010f86f035: mov DWORD PTR [r10+0x18],0xedd6c9b5 | |
; {oop(a 'java/lang/StackTraceElement'[0] )} | |
0x000000010f86f03d: mov r11,QWORD PTR [r15+0x60] | |
0x000000010f86f041: mov r8,r11 | |
0x000000010f86f044: add r8,0x18 | |
0x000000010f86f048: cmp r8,QWORD PTR [r15+0x70] | |
0x000000010f86f04c: ja 0x000000010f86f112 ;*arraylength {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@25 (line 203) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f86f052: mov QWORD PTR [r15+0x60],r8 | |
0x000000010f86f056: prefetchnta BYTE PTR [r11+0xd8] | |
0x000000010f86f05e: prefetchnta BYTE PTR [r11+0x118] | |
0x000000010f86f066: prefetchnta BYTE PTR [r11+0x158] | |
0x000000010f86f06e: prefetchnta BYTE PTR [r11+0x198] | |
0x000000010f86f076: mov DWORD PTR [r11+0xc],0x2 | |
0x000000010f86f07e: mov QWORD PTR [r11],0x1 | |
0x000000010f86f085: mov DWORD PTR [r11+0x8],0xf80022f5 | |
; {metadata('java/lang/Object'[])} | |
0x000000010f86f08d: mov QWORD PTR [r11+0x10],0x0 | |
0x000000010f86f095: shr rsi,0x3 | |
0x000000010f86f099: mov DWORD PTR [r11+0x14],esi | |
0x000000010f86f09d: mov DWORD PTR [r11+0x10],ebp | |
0x000000010f86f0a1: shr r11,0x3 | |
0x000000010f86f0a5: mov DWORD PTR [r10+0x24],r11d | |
0x000000010f86f0a9: mov rsi,r10 | |
0x000000010f86f0ac: shr rsi,0x9 | |
0x000000010f86f0b0: movabs r11,0x10495f000 | |
0x000000010f86f0ba: mov BYTE PTR [rsi+r11*1],0x0 | |
0x000000010f86f0bf: mov rsi,r10 | |
0x000000010f86f0c2: mov rbp,QWORD PTR [rsp+0x20] | |
0x000000010f86f0c7: add rsp,0x28 | |
0x000000010f86f0cb: mov rdx,QWORD PTR [rsp] | |
0x000000010f86f0cf: jmp 0x000000010f275120 ; {runtime_call} | |
0x000000010f86f0d4: nop | |
0x000000010f86f0d5: movabs rsi,0x6c0002920 ; {oop(a 'java/lang/Long'[256] )} | |
0x000000010f86f0df: mov r10d,ebx | |
0x000000010f86f0e2: add r10d,0x80 | |
0x000000010f86f0e9: mov esi,DWORD PTR [rsi+r10*4+0x10] | |
0x000000010f86f0ee: shl rsi,0x3 | |
0x000000010f86f0f2: jmp 0x000000010f86efc8 | |
0x000000010f86f0f7: mov QWORD PTR [rsp+0x8],rsi | |
0x000000010f86f0fc: mov rsi,r8 | |
0x000000010f86f0ff: call 0x000000010f80d560 ; OopMap{rbp=NarrowOop r14=Oop [8]=Oop off=516} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f86f104: nop | |
0x000000010f86f105: mov r10,rax | |
0x000000010f86f108: mov rsi,QWORD PTR [rsp+0x8] | |
0x000000010f86f10d: jmp 0x000000010f86f025 ;*arraylength {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@25 (line 203) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f86f112: mov QWORD PTR [rsp],r10 | |
0x000000010f86f116: mov QWORD PTR [rsp+0x8],rsi | |
0x000000010f86f11b: mov DWORD PTR [rsp+0x14],ebp | |
0x000000010f86f11f: movabs rdx,0x7c00117a8 ; {metadata('java/lang/Object'[])} | |
0x000000010f86f129: mov rsi,rdx | |
0x000000010f86f12c: mov edx,0x2 | |
0x000000010f86f131: mov ecx,0x1 | |
0x000000010f86f136: call 0x000000010f860720 ; OopMap{r14=Oop [0]=Oop [8]=Oop [20]=NarrowOop off=571} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f86f13b: nop | |
0x000000010f86f13c: mov r11,rax | |
0x000000010f86f13f: mov r10,QWORD PTR [rsp] | |
0x000000010f86f143: mov rsi,QWORD PTR [rsp+0x8] | |
0x000000010f86f148: mov ebp,DWORD PTR [rsp+0x14] | |
0x000000010f86f14c: jmp 0x000000010f86f095 | |
0x000000010f86f151: mov DWORD PTR [rsp+0x14],ebp | |
0x000000010f86f155: mov rsi,r11 | |
0x000000010f86f158: call 0x000000010f80d560 ; OopMap{r14=Oop [20]=NarrowOop off=605} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f86f15d: nop | |
0x000000010f86f15e: mov rsi,rax | |
0x000000010f86f161: mov ebp,DWORD PTR [rsp+0x14] | |
0x000000010f86f165: jmp 0x000000010f86efc4 | |
0x000000010f86f16a: mov r10d,0xffffff95 | |
0x000000010f86f170: mov DWORD PTR [r15+0x29c],r10d | |
0x000000010f86f177: mov QWORD PTR [r15+0x2a8],0x0 | |
0x000000010f86f182: call 0x000000010f1b94be ; OopMap{r14=Oop off=647} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f86f187: nop ;*invokestatic transferToInterpreterAndInvalidate {reexecute=0 rethrow=0 return_oop=0} | |
; - com.oracle.truffle.api.profiles.ConditionProfile$Counting::profile@18 (line 148) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@9 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f86f188: mov r10d,0xffffff55 | |
0x000000010f86f18e: jmp 0x000000010f86f170 | |
[Exception Handler] | |
0x000000010f86f190: call 0x000000010f297560 ; {runtime_call} | |
0x000000010f86f195: nop | |
[Deopt Handler Code] | |
0x000000010f86f196: call 0x000000010f1b93c0 ; {runtime_call} | |
0x000000010f86f19b: nop | |
[Stub Code] | |
0x000000010f86f19c: hlt | |
0x000000010f86f19d: hlt | |
0x000000010f86f19e: hlt | |
0x000000010f86f19f: hlt | |
OopMapSet contains 4 OopMaps | |
#0 | |
OopMap{rbp=NarrowOop r14=Oop [8]=Oop off=516} | |
#1 | |
OopMap{r14=Oop [0]=Oop [8]=Oop [20]=NarrowOop off=571} | |
#2 | |
OopMap{r14=Oop [20]=NarrowOop off=605} | |
#3 | |
OopMap{r14=Oop off=647} | |
[truffle] opt done RootNode@4fccd51b <opt> |ASTSize 26/ 34 |Time 314( 113+201 )ms |DirectCallNodes I 2/D 0 |GraalNodes 29/ 193 |CodeSize 668 |CodeAddress 0x10f86ed90 |Source n/a | |
[truffle] opt queued RootNode@6979e8cb <split-763d9750> |ASTSize 4/ 4 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
[truffle] opt start RootNode@6979e8cb <split-763d9750> |ASTSize 4/ 4 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
Compiled method (JVMCI) 3434 2660 4 org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot (53 bytes) | |
total in heap [0x000000010f8d5e10,0x000000010f8d6128] = 792 | |
relocation [0x000000010f8d5f48,0x000000010f8d5f58] = 16 | |
main code [0x000000010f8d5f60,0x000000010f8d5fd6] = 118 | |
stub code [0x000000010f8d5fd6,0x000000010f8d5fd8] = 2 | |
oops [0x000000010f8d5fd8,0x000000010f8d5fe8] = 16 | |
metadata [0x000000010f8d5fe8,0x000000010f8d6040] = 88 | |
scopes data [0x000000010f8d6040,0x000000010f8d60b0] = 112 | |
scopes pcs [0x000000010f8d60b0,0x000000010f8d6120] = 112 | |
dependencies [0x000000010f8d6120,0x000000010f8d6128] = 8 | |
---------------------------------------------------------------------- | |
org/graalvm/compiler/truffle/OptimizedCallTarget.callRoot (RootNode@6979e8cb) [0x000000010f8d5f60, 0x000000010f8d5fd8] 120 bytes | |
[Entry Point] | |
[Constants] | |
# {method} {0x00000001099d56e0} 'callRoot' '([Ljava/lang/Object;)Ljava/lang/Object;' in 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# this: rsi:rsi = 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# parm0: rdx:rdx = '[Ljava/lang/Object;' | |
# [sp+0x10] (sp of caller) | |
0x000000010f8d5f60: mov r10d,DWORD PTR [rsi+0x8] | |
0x000000010f8d5f64: shl r10,0x3 | |
0x000000010f8d5f68: cmp rax,r10 | |
0x000000010f8d5f6b: jne 0x000000010f1b7e20 ; {runtime_call} | |
0x000000010f8d5f71: nop | |
0x000000010f8d5f72: nop DWORD PTR [rax+0x0] | |
0x000000010f8d5f79: nop DWORD PTR [rax+0x0] | |
[Verified Entry Point] | |
0x000000010f8d5f80: nop DWORD PTR [rax+rax*1+0x0] | |
0x000000010f8d5f85: mov eax,DWORD PTR [rdx+0x14] ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f8d5f88: mov rax,QWORD PTR [rax*8+0x10] | |
;*invokevirtual longValue {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.TypesGen::expectLong@11 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.ExpressionNode::executeLong@5 (line 61) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@5 (line 99) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f8d5f90: mov r10d,DWORD PTR [rdx+0x18] | |
;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f8d5f94: cmp rax,QWORD PTR [r10*8+0x10] | |
0x000000010f8d5f9c: je 0x000000010f8d5fb6 | |
0x000000010f8d5fa2: movabs rax,0x6c0048fb0 ;*getstatic FALSE {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@10 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {oop(a 'com/github/ragnard/shen/klambda/runtime/Symbol')} | |
0x000000010f8d5fac: test DWORD PTR [rip+0xfffffffff671f054],eax # 0x0000000105ff5006 | |
; {poll_return} | |
0x000000010f8d5fb2: vzeroupper | |
0x000000010f8d5fb5: ret | |
0x000000010f8d5fb6: movabs rax,0x6c0048ff8 ;*getstatic TRUE {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@4 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {oop(a 'com/github/ragnard/shen/klambda/runtime/Symbol')} | |
0x000000010f8d5fc0: test DWORD PTR [rip+0xfffffffff671f040],eax # 0x0000000105ff5006 | |
; {poll_return} | |
0x000000010f8d5fc6: vzeroupper | |
0x000000010f8d5fc9: ret | |
[Exception Handler] | |
0x000000010f8d5fca: call 0x000000010f297560 ; {runtime_call} | |
0x000000010f8d5fcf: nop | |
[Deopt Handler Code] | |
0x000000010f8d5fd0: call 0x000000010f1b93c0 ; {runtime_call} | |
0x000000010f8d5fd5: nop | |
[Stub Code] | |
0x000000010f8d5fd6: hlt | |
0x000000010f8d5fd7: hlt | |
OopMapSet contains 0 OopMaps | |
[truffle] opt done RootNode@6979e8cb <opt> <split-763d9750> |ASTSize 4/ 4 |Time 17( 13+4 )ms |DirectCallNodes I 0/D 0 |GraalNodes 25/ 18 |CodeSize 118 |CodeAddress 0x10f8d5e10 |Source n/a | |
done | |
[truffle] opt queued RootNode@4fccd51b |ASTSize 26/ 26 |Calls/Thres 1001/ 3 |CallsAndLoop/Thres 1001/ 1000 |Inval# 0 | |
[truffle] opt start RootNode@4fccd51b |ASTSize 26/ 26 |Calls/Thres 1001/ 3 |CallsAndLoop/Thres 1001/ 1000 |Inval# 0 | |
Compiled method (JVMCI) 3559 2746 4 org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot (53 bytes) | |
total in heap [0x000000010f99c110,0x000000010f99cd00] = 3056 | |
relocation [0x000000010f99c248,0x000000010f99c290] = 72 | |
main code [0x000000010f99c2a0,0x000000010f99c60c] = 876 | |
stub code [0x000000010f99c60c,0x000000010f99c610] = 4 | |
oops [0x000000010f99c610,0x000000010f99c6b8] = 168 | |
metadata [0x000000010f99c6b8,0x000000010f99c7c0] = 264 | |
scopes data [0x000000010f99c7c0,0x000000010f99cba8] = 1000 | |
scopes pcs [0x000000010f99cba8,0x000000010f99ccf8] = 336 | |
dependencies [0x000000010f99ccf8,0x000000010f99cd00] = 8 | |
---------------------------------------------------------------------- | |
org/graalvm/compiler/truffle/OptimizedCallTarget.callRoot (RootNode@4fccd51b) [0x000000010f99c2a0, 0x000000010f99c610] 880 bytes | |
[Entry Point] | |
[Constants] | |
# {method} {0x00000001099d56e0} 'callRoot' '([Ljava/lang/Object;)Ljava/lang/Object;' in 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# this: rsi:rsi = 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# parm0: rdx:rdx = '[Ljava/lang/Object;' | |
# [sp+0x50] (sp of caller) | |
0x000000010f99c2a0: mov r10d,DWORD PTR [rsi+0x8] | |
0x000000010f99c2a4: shl r10,0x3 | |
0x000000010f99c2a8: cmp rax,r10 | |
0x000000010f99c2ab: jne 0x000000010f1b7e20 ; {runtime_call} | |
0x000000010f99c2b1: nop | |
0x000000010f99c2b2: nop DWORD PTR [rax+0x0] | |
0x000000010f99c2b9: nop DWORD PTR [rax+0x0] | |
[Verified Entry Point] | |
0x000000010f99c2c0: mov DWORD PTR [rsp-0x14000],eax | |
0x000000010f99c2c7: sub rsp,0x48 | |
0x000000010f99c2cb: mov QWORD PTR [rsp+0x40],rbp | |
0x000000010f99c2d0: mov eax,DWORD PTR [rdx+0x14] ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f99c2d3: mov r14,QWORD PTR [rax*8+0x10] | |
;*invokevirtual longValue {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.TypesGen::expectLong@11 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.ExpressionNode::executeLong@5 (line 61) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@5 (line 46) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@47 (line 51) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric_long0@47 (line 51) | |
; - com.github.ragnard.shen.klambda.nodes.local.WriteLocalVariableNodeGen::executeGeneric@15 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c2db: movabs rsi,0x6c0040750 ;*getstatic FALSE {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@10 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {oop(a 'com/github/ragnard/shen/klambda/runtime/Symbol')} | |
0x000000010f99c2e5: movabs r10,0x6c0040798 ;*getstatic TRUE {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@4 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {oop(a 'com/github/ragnard/shen/klambda/runtime/Symbol')} | |
0x000000010f99c2ef: cmp r14,0x2a | |
0x000000010f99c2f3: je 0x000000010f99c4bc ;*ifeq {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@1 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c2f9: mov rbx,rsi | |
0x000000010f99c2fc: cmp r10,rbx | |
0x000000010f99c2ff: je 0x000000010f99c4c4 ;*if_acmpne {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@13 (line 63) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c305: movabs r10,0x6c00403b8 ; {oop(a 'com/github/ragnard/shen/klambda/runtime/Function')} | |
0x000000010f99c30f: mov r10d,DWORD PTR [r10+0x18] | |
;*aload_0 {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Function::packArguments@16 (line 69) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@7 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c313: mov r11d,DWORD PTR [rdx+0x10] | |
;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f99c317: shl r10,0x3 ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Function::packArguments@16 (line 69) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@7 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c31b: shl r11,0x3 | |
0x000000010f99c31f: shl rax,0x3 ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f99c323: cmp rsi,rbx | |
0x000000010f99c326: jne 0x000000010f99c5d4 ;*new {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@27 (line 68) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c32c: mov rbp,r14 | |
0x000000010f99c32f: sub rbp,0x1 | |
0x000000010f99c333: jo 0x000000010f99c5f5 ;*invokestatic subtractExact {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.Subtract::subtract@2 (line 12) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.EvaluateArgumentsNode::executeGeneric@40 (line 25) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@19 (line 32) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@29 (line 57) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c339: movabs rsi,0x6c0013d98 ; {oop(a 'com/github/ragnard/shen/klambda/runtime/Function')} | |
0x000000010f99c343: mov r13d,DWORD PTR [rsi+0x18] | |
;*aload_0 {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Function::packArguments@16 (line 69) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@7 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@29 (line 57) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c347: cmp rbp,0xffffffffffffff80 | |
0x000000010f99c34b: jl 0x000000010f99c35e | |
0x000000010f99c351: cmp rbp,0x80 | |
0x000000010f99c358: jl 0x000000010f99c4e1 | |
0x000000010f99c35e: mov rsi,QWORD PTR [r15+0x60] | |
0x000000010f99c362: mov r8,rsi | |
0x000000010f99c365: add r8,0x18 | |
0x000000010f99c369: movabs r9,0x7c0011570 ; {metadata('java/lang/Long')} | |
0x000000010f99c373: cmp r8,QWORD PTR [r15+0x70] | |
0x000000010f99c377: ja 0x000000010f99c591 | |
0x000000010f99c37d: mov QWORD PTR [r15+0x60],r8 | |
0x000000010f99c381: prefetchnta BYTE PTR [rsi+0xd8] | |
0x000000010f99c388: mov r8,QWORD PTR [r9+0xa8] | |
0x000000010f99c38f: mov QWORD PTR [rsi],r8 | |
0x000000010f99c392: mov DWORD PTR [rsi+0x8],0xf80022ae | |
; {metadata('java/lang/Long')} | |
0x000000010f99c399: mov DWORD PTR [rsi+0xc],0x0 | |
0x000000010f99c3a0: mov QWORD PTR [rsi+0x10],0x0 | |
0x000000010f99c3a8: mov QWORD PTR [rsi+0x10],rbp | |
0x000000010f99c3ac: mov r8,QWORD PTR [r15+0x60] | |
0x000000010f99c3b0: mov r9,r8 | |
0x000000010f99c3b3: add r9,0x28 | |
0x000000010f99c3b7: movabs rcx,0x7c00eb880 ; {metadata('com/github/ragnard/shen/klambda/nodes/TailCallException')} | |
0x000000010f99c3c1: cmp r9,QWORD PTR [r15+0x70] | |
0x000000010f99c3c5: ja 0x000000010f99c558 | |
0x000000010f99c3cb: mov QWORD PTR [r15+0x60],r9 | |
0x000000010f99c3cf: prefetchnta BYTE PTR [r8+0xe8] | |
0x000000010f99c3d7: mov r9,QWORD PTR [rcx+0xa8] | |
0x000000010f99c3de: mov QWORD PTR [r8],r9 | |
0x000000010f99c3e1: mov DWORD PTR [r8+0x8],0xf801d710 | |
; {metadata('com/github/ragnard/shen/klambda/nodes/TailCallException')} | |
0x000000010f99c3e9: mov DWORD PTR [r8+0xc],0x0 | |
0x000000010f99c3f1: mov QWORD PTR [r8+0x10],0x0 | |
0x000000010f99c3f9: mov QWORD PTR [r8+0x18],0x0 | |
0x000000010f99c401: mov QWORD PTR [r8+0x20],0x0 | |
0x000000010f99c409: mov DWORD PTR [r8+0x20],0xd80027a9 | |
; {oop(a 'org/graalvm/compiler/truffle/OptimizedCallTarget')} | |
0x000000010f99c411: mov DWORD PTR [r8+0x1c],0xd80027b8 | |
; {oop(a 'java/util/Collections$UnmodifiableRandomAccessList')} | |
0x000000010f99c419: mov DWORD PTR [r8+0x18],0xd80027bb | |
; {oop(a 'java/lang/StackTraceElement'[0] )} | |
0x000000010f99c421: mov r9,QWORD PTR [r15+0x60] | |
0x000000010f99c425: mov rcx,r9 | |
0x000000010f99c428: add rcx,0x18 | |
0x000000010f99c42c: cmp rcx,QWORD PTR [r15+0x70] | |
0x000000010f99c430: ja 0x000000010f99c503 | |
0x000000010f99c436: mov QWORD PTR [r15+0x60],rcx | |
0x000000010f99c43a: prefetchnta BYTE PTR [r9+0xd8] | |
0x000000010f99c442: prefetchnta BYTE PTR [r9+0x118] | |
0x000000010f99c44a: prefetchnta BYTE PTR [r9+0x158] | |
0x000000010f99c452: prefetchnta BYTE PTR [r9+0x198] | |
0x000000010f99c45a: mov DWORD PTR [r9+0xc],0x2 | |
0x000000010f99c462: mov QWORD PTR [r9],0x1 | |
0x000000010f99c469: mov DWORD PTR [r9+0x8],0xf80022f5 | |
; {metadata('java/lang/Object'[])} | |
0x000000010f99c471: mov QWORD PTR [r9+0x10],0x0 | |
0x000000010f99c479: mov r10,r9 | |
0x000000010f99c47c: shr rsi,0x3 | |
0x000000010f99c480: mov DWORD PTR [r10+0x14],esi | |
0x000000010f99c484: mov DWORD PTR [r10+0x10],r13d | |
0x000000010f99c488: shr r10,0x3 | |
0x000000010f99c48c: mov DWORD PTR [r8+0x24],r10d | |
0x000000010f99c490: mov rsi,r8 | |
0x000000010f99c493: shr rsi,0x9 | |
0x000000010f99c497: movabs r10,0x10495f000 | |
0x000000010f99c4a1: mov BYTE PTR [rsi+r10*1],0x0 | |
0x000000010f99c4a6: mov rsi,r8 | |
0x000000010f99c4a9: mov rbp,QWORD PTR [rsp+0x40] | |
0x000000010f99c4ae: add rsp,0x48 | |
0x000000010f99c4b2: mov rdx,QWORD PTR [rsp] | |
0x000000010f99c4b6: jmp 0x000000010f275120 ; {runtime_call} | |
0x000000010f99c4bb: nop ;*ifeq {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.runtime.Symbol::fromBoolean@1 (line 30) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@11 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c4bc: mov rbx,r10 | |
0x000000010f99c4bf: jmp 0x000000010f99c2fc ;*if_acmpne {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@13 (line 63) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f99c4c4: movabs rax,0x6c0040a40 ; {oop(a 'com/github/ragnard/shen/klambda/runtime/Symbol')} | |
0x000000010f99c4ce: mov rbp,QWORD PTR [rsp+0x40] | |
0x000000010f99c4d3: add rsp,0x48 | |
0x000000010f99c4d7: test DWORD PTR [rip+0xfffffffff6658b29],eax # 0x0000000105ff5006 | |
; {poll_return} | |
0x000000010f99c4dd: vzeroupper | |
0x000000010f99c4e0: ret | |
0x000000010f99c4e1: movabs rsi,0x6c0002840 ; {oop(a 'java/lang/Long'[256] )} | |
0x000000010f99c4eb: mov r8d,ebp | |
0x000000010f99c4ee: add r8d,0x80 | |
0x000000010f99c4f5: mov esi,DWORD PTR [rsi+r8*4+0x10] | |
0x000000010f99c4fa: shl rsi,0x3 | |
0x000000010f99c4fe: jmp 0x000000010f99c3ac | |
0x000000010f99c503: mov QWORD PTR [rsp],r8 | |
0x000000010f99c507: mov QWORD PTR [rsp+0x8],rsi | |
0x000000010f99c50c: mov DWORD PTR [rsp+0x34],r13d | |
0x000000010f99c511: mov QWORD PTR [rsp+0x28],rax | |
0x000000010f99c516: mov QWORD PTR [rsp+0x20],r11 | |
0x000000010f99c51b: mov QWORD PTR [rsp+0x18],r10 | |
0x000000010f99c520: mov QWORD PTR [rsp+0x10],rbx | |
0x000000010f99c525: movabs rdx,0x7c00117a8 ; {metadata('java/lang/Object'[])} | |
0x000000010f99c52f: mov rsi,rdx | |
0x000000010f99c532: mov edx,0x2 | |
0x000000010f99c537: mov ecx,0x1 | |
0x000000010f99c53c: call 0x000000010f860720 ; OopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop [32]=Oop [40]=Oop [52]=NarrowOop off=673} | |
;*areturn {reexecute=1 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@14 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {runtime_call} | |
0x000000010f99c541: nop | |
0x000000010f99c542: mov r10,rax | |
0x000000010f99c545: mov r8,QWORD PTR [rsp] | |
0x000000010f99c549: mov rsi,QWORD PTR [rsp+0x8] | |
0x000000010f99c54e: mov r13d,DWORD PTR [rsp+0x34] | |
0x000000010f99c553: jmp 0x000000010f99c47c | |
0x000000010f99c558: mov QWORD PTR [rsp+0x8],rsi | |
0x000000010f99c55d: mov QWORD PTR [rsp+0x28],rax | |
0x000000010f99c562: mov QWORD PTR [rsp+0x20],r11 | |
0x000000010f99c567: mov QWORD PTR [rsp+0x18],r10 | |
0x000000010f99c56c: mov rsi,rcx | |
0x000000010f99c56f: call 0x000000010f80d560 ; OopMap{rbx=Oop r13=NarrowOop [8]=Oop [24]=Oop [32]=Oop [40]=Oop off=724} | |
;*areturn {reexecute=1 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@14 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {runtime_call} | |
0x000000010f99c574: nop | |
0x000000010f99c575: mov r8,rax | |
0x000000010f99c578: mov rsi,QWORD PTR [rsp+0x8] | |
0x000000010f99c57d: mov rax,QWORD PTR [rsp+0x28] | |
0x000000010f99c582: mov r11,QWORD PTR [rsp+0x20] | |
0x000000010f99c587: mov r10,QWORD PTR [rsp+0x18] | |
0x000000010f99c58c: jmp 0x000000010f99c409 | |
0x000000010f99c591: mov DWORD PTR [rsp+0x34],r13d | |
0x000000010f99c596: mov QWORD PTR [rsp+0x28],rax | |
0x000000010f99c59b: mov QWORD PTR [rsp+0x20],r11 | |
0x000000010f99c5a0: mov QWORD PTR [rsp+0x18],r10 | |
0x000000010f99c5a5: mov QWORD PTR [rsp+0x10],rbx | |
0x000000010f99c5aa: mov rsi,r9 | |
0x000000010f99c5ad: call 0x000000010f80d560 ; OopMap{[16]=Oop [24]=Oop [32]=Oop [40]=Oop [52]=NarrowOop off=786} | |
;*areturn {reexecute=1 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@14 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {runtime_call} | |
0x000000010f99c5b2: nop | |
0x000000010f99c5b3: mov rsi,rax | |
0x000000010f99c5b6: mov r13d,DWORD PTR [rsp+0x34] | |
0x000000010f99c5bb: mov rax,QWORD PTR [rsp+0x28] | |
0x000000010f99c5c0: mov r11,QWORD PTR [rsp+0x20] | |
0x000000010f99c5c5: mov r10,QWORD PTR [rsp+0x18] | |
0x000000010f99c5ca: mov rbx,QWORD PTR [rsp+0x10] | |
0x000000010f99c5cf: jmp 0x000000010f99c3a8 | |
0x000000010f99c5d4: mov r8,r10 | |
0x000000010f99c5d7: mov r10d,0xffffff44 | |
0x000000010f99c5dd: mov DWORD PTR [r15+0x29c],r10d | |
0x000000010f99c5e4: mov QWORD PTR [r15+0x2a8],0x0 | |
0x000000010f99c5ef: call 0x000000010f1b94be ; OopMap{rax=Oop rbx=Oop r8=Oop r11=Oop off=852} | |
;*areturn {reexecute=1 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.Equals::equals@14 (line 15) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.generic.EqualsFactory$EqualsNodeGen::executeGeneric@16 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callInlined@19 (line 194) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::callProxy@9 (line 65) | |
; - org.graalvm.compiler.truffle.OptimizedDirectCallNode::call@18 (line 59) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNode::doDirect@3 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.DispatchNodeGen::executeDispatch@54 (line 37) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@29 (line 65) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::call@10 (line 53) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNode::doExact@10 (line 28) | |
; - com.github.ragnard.shen.klambda.nodes.InvokeNodeGen::executeGeneric@116 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::evaluateCondition@5 (line 62) | |
; - com.github.ragnard.shen.klambda.nodes.IfNode::executeGeneric@6 (line 54) | |
; - com.github.ragnard.shen.klambda.nodes.DoNode::executeGeneric@41 (line 24) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; {runtime_call} | |
0x000000010f99c5f4: nop | |
0x000000010f99c5f5: mov r8,r10 | |
0x000000010f99c5f8: mov r10d,0xffffff95 | |
0x000000010f99c5fe: jmp 0x000000010f99c5dd | |
[Exception Handler] | |
0x000000010f99c600: call 0x000000010f297560 ; {runtime_call} | |
0x000000010f99c605: nop | |
[Deopt Handler Code] | |
0x000000010f99c606: call 0x000000010f1b93c0 ; {runtime_call} | |
0x000000010f99c60b: nop | |
[Stub Code] | |
0x000000010f99c60c: hlt | |
0x000000010f99c60d: hlt | |
0x000000010f99c60e: hlt | |
0x000000010f99c60f: hlt | |
OopMapSet contains 4 OopMaps | |
#0 | |
OopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop [32]=Oop [40]=Oop [52]=NarrowOop off=673} | |
#1 | |
OopMap{rbx=Oop r13=NarrowOop [8]=Oop [24]=Oop [32]=Oop [40]=Oop off=724} | |
#2 | |
OopMap{[16]=Oop [24]=Oop [32]=Oop [40]=Oop [52]=NarrowOop off=786} | |
#3 | |
OopMap{rax=Oop rbx=Oop r8=Oop r11=Oop off=852} | |
[truffle] opt done RootNode@4fccd51b <opt> |ASTSize 26/ 34 |Time 122( 42+80 )ms |DirectCallNodes I 2/D 0 |GraalNodes 102/ 271 |CodeSize 876 |CodeAddress 0x10f99c110 |Source n/a | |
[truffle] opt start RootNode@2be94b0f <split-d70c109> |ASTSize 4/ 4 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
[truffle] opt queued RootNode@2be94b0f <split-d70c109> |ASTSize 4/ 4 |Calls/Thres 1000/ 3 |CallsAndLoop/Thres 1000/ 1000 |Inval# 0 | |
Compiled method (JVMCI) 3588 3036 4 org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot (53 bytes) | |
total in heap [0x000000010f9cfcd0,0x000000010f9d00e0] = 1040 | |
relocation [0x000000010f9cfe08,0x000000010f9cfe20] = 24 | |
main code [0x000000010f9cfe20,0x000000010f9cff4d] = 301 | |
stub code [0x000000010f9cff4d,0x000000010f9cff50] = 3 | |
oops [0x000000010f9cff50,0x000000010f9cff68] = 24 | |
metadata [0x000000010f9cff68,0x000000010f9cffc0] = 88 | |
scopes data [0x000000010f9cffc0,0x000000010f9d0048] = 136 | |
scopes pcs [0x000000010f9d0048,0x000000010f9d00d8] = 144 | |
dependencies [0x000000010f9d00d8,0x000000010f9d00e0] = 8 | |
---------------------------------------------------------------------- | |
org/graalvm/compiler/truffle/OptimizedCallTarget.callRoot (RootNode@2be94b0f) [0x000000010f9cfe20, 0x000000010f9cff50] 304 bytes | |
[Entry Point] | |
[Constants] | |
# {method} {0x00000001099d56e0} 'callRoot' '([Ljava/lang/Object;)Ljava/lang/Object;' in 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# this: rsi:rsi = 'org/graalvm/compiler/truffle/OptimizedCallTarget' | |
# parm0: rdx:rdx = '[Ljava/lang/Object;' | |
# [sp+0x20] (sp of caller) | |
0x000000010f9cfe20: mov r10d,DWORD PTR [rsi+0x8] | |
0x000000010f9cfe24: shl r10,0x3 | |
0x000000010f9cfe28: cmp rax,r10 | |
0x000000010f9cfe2b: jne 0x000000010f1b7e20 ; {runtime_call} | |
0x000000010f9cfe31: nop | |
0x000000010f9cfe32: nop DWORD PTR [rax+0x0] | |
0x000000010f9cfe39: nop DWORD PTR [rax+0x0] | |
[Verified Entry Point] | |
0x000000010f9cfe40: mov DWORD PTR [rsp-0x14000],eax | |
0x000000010f9cfe47: sub rsp,0x18 | |
0x000000010f9cfe4b: mov QWORD PTR [rsp+0x10],rbp | |
0x000000010f9cfe50: mov rbx,rdx | |
0x000000010f9cfe53: mov eax,DWORD PTR [rbx+0x18] ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f9cfe56: mov rax,QWORD PTR [rax*8+0x10] | |
;*invokevirtual longValue {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.TypesGen::expectLong@11 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.ExpressionNode::executeLong@5 (line 61) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric_long_long0@41 (line 106) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f9cfe5e: mov esi,DWORD PTR [rbx+0x14] ;*aaload {reexecute=0 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::castArgumentsImpl@50 (line 214) | |
; - org.graalvm.compiler.truffle.OptimizedCompilationProfile::injectArgumentProfile@42 (line 204) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@19 (line 222) | |
0x000000010f9cfe61: mov rsi,QWORD PTR [rsi*8+0x10] | |
;*invokevirtual longValue {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.TypesGen::expectLong@11 (line 44) | |
; - com.github.ragnard.shen.klambda.nodes.ExpressionNode::executeLong@5 (line 61) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric_long_long0@5 (line 99) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f9cfe69: mov rbp,rsi | |
0x000000010f9cfe6c: sub rbp,rax | |
0x000000010f9cfe6f: jo 0x000000010f9cff25 ;*invokestatic subtractExact {reexecute=0 rethrow=0 return_oop=0} | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.Subtract::subtract@2 (line 12) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric_long_long0@89 (line 111) | |
; - com.github.ragnard.shen.klambda.nodes.builtins.arithmetic.SubtractFactory$SubtractNodeGen::executeGeneric@14 (line 88) | |
; - com.github.ragnard.shen.klambda.nodes.RootNode::execute@5 (line 33) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callProxy@9 (line 234) | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@35 (line 224) | |
0x000000010f9cfe75: cmp rbp,0xffffffffffffff80 | |
0x000000010f9cfe79: jl 0x000000010f9cfe8c | |
0x000000010f9cfe7f: cmp rbp,0x80 | |
0x000000010f9cfe86: jl 0x000000010f9cfeed | |
0x000000010f9cfe8c: mov rax,QWORD PTR [r15+0x60] | |
0x000000010f9cfe90: mov rsi,rax | |
0x000000010f9cfe93: add rsi,0x18 | |
0x000000010f9cfe97: movabs r10,0x7c0011570 ; {metadata('java/lang/Long')} | |
0x000000010f9cfea1: cmp rsi,QWORD PTR [r15+0x70] | |
0x000000010f9cfea5: ja 0x000000010f9cff1a | |
0x000000010f9cfeab: mov QWORD PTR [r15+0x60],rsi | |
0x000000010f9cfeaf: prefetchnta BYTE PTR [rax+0xd8] | |
0x000000010f9cfeb6: mov rsi,QWORD PTR [r10+0xa8] | |
0x000000010f9cfebd: mov QWORD PTR [rax],rsi | |
0x000000010f9cfec0: mov DWORD PTR [rax+0x8],0xf80022ae | |
; {metadata('java/lang/Long')} | |
0x000000010f9cfec7: mov DWORD PTR [rax+0xc],0x0 | |
0x000000010f9cfece: mov QWORD PTR [rax+0x10],0x0 | |
0x000000010f9cfed6: mov QWORD PTR [rax+0x10],rbp | |
0x000000010f9cfeda: mov rbp,QWORD PTR [rsp+0x10] | |
0x000000010f9cfedf: add rsp,0x18 | |
0x000000010f9cfee3: test DWORD PTR [rip+0xfffffffff662511d],eax # 0x0000000105ff5006 | |
; {poll_return} | |
0x000000010f9cfee9: vzeroupper | |
0x000000010f9cfeec: ret | |
0x000000010f9cfeed: movabs rax,0x6c0002840 ; {oop(a 'java/lang/Long'[256] )} | |
0x000000010f9cfef7: mov esi,ebp | |
0x000000010f9cfef9: add esi,0x80 | |
0x000000010f9cfeff: mov eax,DWORD PTR [rax+rsi*4+0x10] | |
0x000000010f9cff03: shl rax,0x3 | |
0x000000010f9cff07: mov rbp,QWORD PTR [rsp+0x10] | |
0x000000010f9cff0c: add rsp,0x18 | |
0x000000010f9cff10: test DWORD PTR [rip+0xfffffffff66250f0],eax # 0x0000000105ff5006 | |
; {poll_return} | |
0x000000010f9cff16: vzeroupper | |
0x000000010f9cff19: ret | |
0x000000010f9cff1a: mov rsi,r10 | |
0x000000010f9cff1d: call 0x000000010f80d560 ; OopMap{rbx=Oop off=258} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f9cff22: nop | |
0x000000010f9cff23: jmp 0x000000010f9cfed6 | |
0x000000010f9cff25: mov DWORD PTR [r15+0x29c],0xffffff95 | |
0x000000010f9cff30: mov QWORD PTR [r15+0x2a8],0x0 | |
0x000000010f9cff3b: call 0x000000010f1b94be ; OopMap{rbx=Oop off=288} | |
;*aload_1 {reexecute=1 rethrow=0 return_oop=0} | |
; - org.graalvm.compiler.truffle.OptimizedCallTarget::callRoot@0 (line 219) | |
; {runtime_call} | |
0x000000010f9cff40: nop | |
[Exception Handler] | |
0x000000010f9cff41: call 0x000000010f297560 ; {runtime_call} | |
0x000000010f9cff46: nop | |
[Deopt Handler Code] | |
0x000000010f9cff47: call 0x000000010f1b93c0 ; {runtime_call} | |
0x000000010f9cff4c: nop | |
[Stub Code] | |
0x000000010f9cff4d: hlt | |
0x000000010f9cff4e: hlt | |
0x000000010f9cff4f: hlt | |
OopMapSet contains 2 OopMaps | |
#0 | |
OopMap{rbx=Oop off=258} | |
#1 | |
OopMap{rbx=Oop off=288} | |
[truffle] opt done RootNode@2be94b0f <opt> <split-d70c109> |ASTSize 4/ 4 |Time 15( 8+7 )ms |DirectCallNodes I 0/D 0 |GraalNodes 20/ 76 |CodeSize 301 |CodeAddress 0x10f9cfcd0 |Source n/a | |
done | |
done | |
done | |
done | |
done | |
done | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment