Skip to content

Instantly share code, notes, and snippets.

@ragnard
Last active August 15, 2017 16:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ragnard/5d49bc7a9bc17614f3cccbecbf466ff6 to your computer and use it in GitHub Desktop.
Save ragnard/5d49bc7a9bc17614f3cccbecbf466ff6 to your computer and use it in GitHub Desktop.
klambda recursion
(defun count-down (N)
(if (= N 0)
done
(count-down (- N 1))))
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