Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save chrisseaton/0ff64344a3495580d3e6d28b8b595a50 to your computer and use it in GitHub Desktop.
Save chrisseaton/0ff64344a3495580d3e6d28b8b595a50 to your computer and use it in GitHub Desktop.
0x00000001088d9f40: mov DWORD PTR [rsp-0x14000],eax
0x00000001088d9f47: push rbp
0x00000001088d9f48: sub rsp,0x1f0
0x00000001088d9f4f: mov QWORD PTR [rsp+0x190],rsi
0x00000001088d9f57: mov QWORD PTR [rsp+0x1a8],rcx
0x00000001088d9f5f: movabs rbx,0x119fe1928
0x00000001088d9f69: mov eax,DWORD PTR [rbx+0x8]
0x00000001088d9f6c: add eax,0x8
0x00000001088d9f6f: mov DWORD PTR [rbx+0x8],eax
0x00000001088d9f72: movabs rbx,0x119fe1008 ; {metadata({method} {0x0000000119fe1008} 'RUBY$method$core_min$2' '(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/parser/StaticScope;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;' in 'test')}
0x00000001088d9f7c: and eax,0x3ff8
0x00000001088d9f82: cmp eax,0x0
0x00000001088d9f85: je 0x00000001088da591 ;*nop {reexecute=0 rethrow=0 return_oop=0}
; - test::RUBY$method$core_min$2@0
0x00000001088d9f8b: mov QWORD PTR [rsp+0x1a0],r9
0x00000001088d9f93: mov QWORD PTR [rsp+0x198],r8
0x00000001088d9f9b: cmp rax,QWORD PTR [rsi] ; implicit exception: dispatches to 0x00000001088da5a8
;*invokevirtual preBackrefMethod {reexecute=0 rethrow=0 return_oop=0}
; - test::RUBY$method$core_min$2@2
0x00000001088d9f9e: mov rdi,rsi
0x00000001088d9fa1: mov rsi,rdi ;*invokespecial pushBackrefFrame {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.runtime.ThreadContext::preBackrefMethod@1 (line 934)
; ...
0x00000001088d9fa4: nop...
0x00000001088d9fa7: call 0x0000000107fbb0a0 ; OopMap{[400]=Oop [416]=Oop [408]=Oop [424]=Oop off=108}
;*invokespecial pushBackrefFrame {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.runtime.ThreadContext::preBackrefMethod@1 (line 934)
; ...
0x00000001088d9fac: mov rsi,QWORD PTR [rsp+0x190]
0x00000001088d9fb4: mov edx,DWORD PTR [rsi+0x28]
0x00000001088d9fb7: shl rdx,0x3 ;*getfield runtime {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.ir.runtime.IRRuntimeHelpers::newArray@1 (line 2069)
; ...
0x00000001088d9fbb: mov rsi,rdx
0x00000001088d9fbe: mov rdx,QWORD PTR [rsp+0x198]
0x00000001088d9fc6: mov rcx,QWORD PTR [rsp+0x1a0]
;*invokestatic newArray {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.ir.runtime.IRRuntimeHelpers::newArray@6 (line 2069)
; ...
0x00000001088d9fce: nop
0x00000001088d9fcf: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop off=148}
;*invokestatic newArray {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.ir.runtime.IRRuntimeHelpers::newArray@6 (line 2069)
; ...
0x00000001088d9fd4: mov QWORD PTR [rsp+0x1b0],rax
0x00000001088d9fdc: movabs rsi,0x7b80f1360 ; {oop(a 'java/lang/invoke/MutableCallSite')}
0x00000001088d9fe6: movabs rdx,0x7a0cc8570 ; {oop(a 'java/lang/invoke/MemberName' = {method} {0x00000001053f4e60} 'getTarget' '()Ljava/lang/invoke/MethodHandle;' in 'java/lang/invoke/CallSite')}
0x00000001088d9ff0: nop...
0x00000001088d9ff7: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [432]=Oop off=188}
;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/664740647::invokeVirtual_L_L@10
; ...
0x00000001088d9ffc: mov QWORD PTR [rsp+0x1b8],rax
0x00000001088da004: cmp rax,0x0
0x00000001088da008: je 0x00000001088da02e
0x00000001088da00e: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da018: mov edx,DWORD PTR [rax+0x8]
0x00000001088da01b: shl rdx,0x3
0x00000001088da01f: cmp rbx,QWORD PTR [rdx+0x30]
0x00000001088da023: jne 0x00000001088da5ad
0x00000001088da029: jmp 0x00000001088da02e
0x00000001088da02e: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkExactType@1 (line 305)
; ...
0x00000001088da031: mov edi,DWORD PTR [rsi+0x10] ; implicit exception: dispatches to 0x00000001088da5b6
0x00000001088da034: shl rdi,0x3 ;*getfield type {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::type@1 (line 446)
; ...
0x00000001088da038: movabs rsi,0x7a0c327e8 ; {oop(a 'java/lang/invoke/MethodType' = ()Z)}
0x00000001088da042: cmp rdi,rsi
0x00000001088da045: jne 0x00000001088da527 ;*if_acmpeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkExactType@19 (line 308)
; ...
0x00000001088da04b: cmp rax,0x0
0x00000001088da04f: je 0x00000001088da075
0x00000001088da055: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da05f: mov edx,DWORD PTR [rax+0x8]
0x00000001088da062: shl rdx,0x3
0x00000001088da066: cmp rbx,QWORD PTR [rdx+0x30]
0x00000001088da06a: jne 0x00000001088da5bb
0x00000001088da070: jmp 0x00000001088da075
0x00000001088da075: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@1 (line 396)
; ...
0x00000001088da078: mov edi,DWORD PTR [rsi+0x14] ; implicit exception: dispatches to 0x00000001088da5c4
0x00000001088da07b: shl rdi,0x3 ;*getfield form {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@6 (line 397)
; ...
0x00000001088da07f: mov edi,DWORD PTR [rdi+0x1c] ; implicit exception: dispatches to 0x00000001088da5c9
0x00000001088da082: shl rdi,0x3 ;*getfield customized {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@9 (line 397)
; ...
0x00000001088da086: cmp rdi,0x0
0x00000001088da08a: jne 0x00000001088da0a4 ;*ifnonnull {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@12 (line 397)
; ...
0x00000001088da090: nop...
0x00000001088da097: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [432]=Oop [440]=Oop off=348}
;*invokestatic maybeCustomize {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@16 (line 398)
; ...
0x00000001088da09c: mov rax,QWORD PTR [rsp+0x1b8]
0x00000001088da0a4: cmp rax,0x0
0x00000001088da0a8: je 0x00000001088da0ce
0x00000001088da0ae: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da0b8: mov esi,DWORD PTR [rax+0x8]
0x00000001088da0bb: shl rsi,0x3
0x00000001088da0bf: cmp rbx,QWORD PTR [rsi+0x30]
0x00000001088da0c3: jne 0x00000001088da5ce
0x00000001088da0c9: jmp 0x00000001088da0ce
0x00000001088da0ce: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/110431793::exactInvoker@41
; ...
0x00000001088da0d1: cmp rax,QWORD PTR [rsi] ; implicit exception: dispatches to 0x00000001088da5d7
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/110431793::exactInvoker@47
; ...
0x00000001088da0d4: nop...
0x00000001088da0d7: call 0x0000000107fbb0a0 ; OopMap{[424]=Oop [400]=Oop [432]=Oop off=412}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/110431793::exactInvoker@47
; ...
0x00000001088da0dc: and eax,0x1
0x00000001088da0df: movabs rdx,0x7b8124aa0 ; {oop([I)}
0x00000001088da0e9: mov rsi,rax ;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@51
; ...
0x00000001088da0ec: nop...
0x00000001088da0ef: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [432]=Oop off=436}
;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@51
; ...
0x00000001088da0f4: and eax,0x1
0x00000001088da0f7: cmp eax,0x0
0x00000001088da0fa: je 0x00000001088da1f1 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@60
; ...
0x00000001088da100: movabs rsi,0x7a0c768c0 ; {oop(a 'org/jruby/RubyClass')}
0x00000001088da10a: mov rdx,QWORD PTR [rsp+0x1b0]
0x00000001088da112: movabs rcx,0x7b804ef70 ;*invokestatic linkToStatic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/625576447::invokeStatic_LL_I@11
; ...
0x00000001088da11c: nop...
0x00000001088da11f: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [432]=Oop off=484}
;*invokestatic linkToStatic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/625576447::invokeStatic_LL_I@11
; ...
0x00000001088da124: and eax,0x1
0x00000001088da127: movabs rdx,0x7b81194e8 ; {oop([I)}
0x00000001088da131: mov rsi,rax ;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@51
; ...
0x00000001088da134: nop...
0x00000001088da137: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [432]=Oop off=508}
;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@51
; ...
0x00000001088da13c: and eax,0x1
0x00000001088da13f: cmp eax,0x0
0x00000001088da142: mov rax,QWORD PTR [rsp+0x1b0]
0x00000001088da14a: je 0x00000001088da1c9 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@60
; ...
0x00000001088da150: cmp rax,0x0
0x00000001088da154: je 0x00000001088da19d ;*ifnull {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@1 (line 355)
; ...
0x00000001088da15a: cmp rax,0x0
0x00000001088da15e: je 0x00000001088da185
0x00000001088da164: movabs rcx,0x7c00fcc50 ; {metadata('org/jruby/RubyArray')}
0x00000001088da16e: mov r8d,DWORD PTR [rax+0x8]
0x00000001088da172: shl r8,0x3
0x00000001088da176: cmp rcx,QWORD PTR [r8+0x40]
0x00000001088da17a: jne 0x00000001088da185
0x00000001088da180: jmp 0x00000001088da18a
0x00000001088da185: xor rsi,rsi
0x00000001088da188: jmp 0x00000001088da194
0x00000001088da18a: movabs rsi,0x1 ;*invokevirtual isInstance {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@6 (line 355)
; ...
0x00000001088da194: cmp esi,0x0
0x00000001088da197: je 0x00000001088da4ff ;*ifne {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@9 (line 355)
; ...
0x00000001088da19d: movabs rcx,0x7a0c3cb48 ; {oop(a 'org/jruby/runtime/Block')}
0x00000001088da1a7: mov rsi,rax
0x00000001088da1aa: mov rdx,QWORD PTR [rsp+0x190]
0x00000001088da1b2: movabs r8,0x7b80f3f68 ;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/1773206895::invokeVirtual_L3_L@14
; ...
0x00000001088da1bc: nop...
0x00000001088da1bf: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop off=644}
;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/1773206895::invokeVirtual_L3_L@14
; ...
0x00000001088da1c4: jmp 0x00000001088da21c ;*goto {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@81
; ...
0x00000001088da1c9: movabs rsi,0x7b811c818 ; {oop(a 'java/lang/invoke/MethodHandleImpl$CountingWrapper')}
0x00000001088da1d3: mov rdx,QWORD PTR [rsp+0x190]
0x00000001088da1db: mov rcx,QWORD PTR [rsp+0x1a8]
0x00000001088da1e3: mov r8,rax ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@99
; ...
0x00000001088da1e6: nop
0x00000001088da1e7: call 0x0000000107fbb0a0 ; OopMap{[424]=Oop [400]=Oop off=684}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@99
; ...
0x00000001088da1ec: jmp 0x00000001088da21c ;*areturn {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@102
; ...
0x00000001088da1f1: mov rax,QWORD PTR [rsp+0x1b0]
0x00000001088da1f9: movabs rsi,0x7b8124ae8 ; {oop(a 'java/lang/invoke/MethodHandleImpl$CountingWrapper')}
0x00000001088da203: mov rdx,QWORD PTR [rsp+0x190]
0x00000001088da20b: mov rcx,QWORD PTR [rsp+0x1a8]
0x00000001088da213: mov r8,rax ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@99
; ...
0x00000001088da216: nop
0x00000001088da217: call 0x0000000107fbb0a0 ; OopMap{[424]=Oop [400]=Oop off=732}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/767010715::guard@99
; ...
0x00000001088da21c: mov QWORD PTR [rsp+0x1c0],rax
0x00000001088da224: movabs rsi,0x7b80f1360 ; {oop(a 'java/lang/invoke/MutableCallSite')}
0x00000001088da22e: movabs rdx,0x7a0cc8570 ; {oop(a 'java/lang/invoke/MemberName' = {method} {0x00000001053f4e60} 'getTarget' '()Ljava/lang/invoke/MethodHandle;' in 'java/lang/invoke/CallSite')}
0x00000001088da238: nop...
0x00000001088da23f: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [448]=Oop off=772}
;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/664740647::invokeVirtual_L_L@10
; ...
0x00000001088da244: mov QWORD PTR [rsp+0x1c8],rax
0x00000001088da24c: cmp rax,0x0
0x00000001088da250: je 0x00000001088da276
0x00000001088da256: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da260: mov edx,DWORD PTR [rax+0x8]
0x00000001088da263: shl rdx,0x3
0x00000001088da267: cmp rbx,QWORD PTR [rdx+0x30]
0x00000001088da26b: jne 0x00000001088da5dc
0x00000001088da271: jmp 0x00000001088da276
0x00000001088da276: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkExactType@1 (line 305)
; ...
0x00000001088da279: mov edi,DWORD PTR [rsi+0x10] ; implicit exception: dispatches to 0x00000001088da5e5
0x00000001088da27c: shl rdi,0x3 ;*getfield type {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandle::type@1 (line 446)
; ...
0x00000001088da280: movabs rsi,0x7a0c327e8 ; {oop(a 'java/lang/invoke/MethodType' = ()Z)}
0x00000001088da28a: cmp rdi,rsi
0x00000001088da28d: jne 0x00000001088da4d7 ;*if_acmpeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkExactType@19 (line 308)
; ...
0x00000001088da293: cmp rax,0x0
0x00000001088da297: je 0x00000001088da2bd
0x00000001088da29d: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da2a7: mov edx,DWORD PTR [rax+0x8]
0x00000001088da2aa: shl rdx,0x3
0x00000001088da2ae: cmp rbx,QWORD PTR [rdx+0x30]
0x00000001088da2b2: jne 0x00000001088da5ea
0x00000001088da2b8: jmp 0x00000001088da2bd
0x00000001088da2bd: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@1 (line 396)
; ...
0x00000001088da2c0: mov edi,DWORD PTR [rsi+0x14] ; implicit exception: dispatches to 0x00000001088da5f3
0x00000001088da2c3: shl rdi,0x3 ;*getfield form {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@6 (line 397)
; ...
0x00000001088da2c7: mov edi,DWORD PTR [rdi+0x1c] ; implicit exception: dispatches to 0x00000001088da5f8
0x00000001088da2ca: shl rdi,0x3 ;*getfield customized {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@9 (line 397)
; ...
0x00000001088da2ce: cmp rdi,0x0
0x00000001088da2d2: jne 0x00000001088da2ec ;*ifnonnull {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@12 (line 397)
; ...
0x00000001088da2d8: nop...
0x00000001088da2df: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [448]=Oop [456]=Oop off=932}
;*invokestatic maybeCustomize {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.Invokers::checkCustomized@16 (line 398)
; ...
0x00000001088da2e4: mov rax,QWORD PTR [rsp+0x1c8]
0x00000001088da2ec: cmp rax,0x0
0x00000001088da2f0: je 0x00000001088da316
0x00000001088da2f6: movabs rbx,0x7c000b508 ; {metadata('java/lang/invoke/MethodHandle')}
0x00000001088da300: mov esi,DWORD PTR [rax+0x8]
0x00000001088da303: shl rsi,0x3
0x00000001088da307: cmp rbx,QWORD PTR [rsi+0x30]
0x00000001088da30b: jne 0x00000001088da5fd
0x00000001088da311: jmp 0x00000001088da316
0x00000001088da316: mov rsi,rax ;*checkcast {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/1728790703::exactInvoker@41
; ...
0x00000001088da319: cmp rax,QWORD PTR [rsi] ; implicit exception: dispatches to 0x00000001088da606
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/1728790703::exactInvoker@47
; ...
0x00000001088da31c: nop...
0x00000001088da31f: call 0x0000000107fbb0a0 ; OopMap{[424]=Oop [400]=Oop [448]=Oop off=996}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/1728790703::exactInvoker@47
; ...
0x00000001088da324: and eax,0x1
0x00000001088da327: movabs rdx,0x7b8143848 ; {oop([I)}
0x00000001088da331: mov rsi,rax ;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@53
; ...
0x00000001088da334: nop...
0x00000001088da337: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [448]=Oop off=1020}
;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@53
; ...
0x00000001088da33c: and eax,0x1
0x00000001088da33f: cmp eax,0x0
0x00000001088da342: je 0x00000001088da441 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@62
; ...
0x00000001088da348: movabs rsi,0x7a0c768c0 ; {oop(a 'org/jruby/RubyClass')}
0x00000001088da352: mov rdx,QWORD PTR [rsp+0x1c0]
0x00000001088da35a: movabs rcx,0x7b804ef70 ;*invokestatic linkToStatic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/625576447::invokeStatic_LL_I@11
; ...
0x00000001088da364: nop...
0x00000001088da367: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [448]=Oop off=1068}
;*invokestatic linkToStatic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/625576447::invokeStatic_LL_I@11
; ...
0x00000001088da36c: and eax,0x1
0x00000001088da36f: movabs rdx,0x7b8143358 ; {oop([I)}
0x00000001088da379: mov rsi,rax ;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@53
; ...
0x00000001088da37c: nop...
0x00000001088da37f: call 0x0000000107fbb520 ; OopMap{[424]=Oop [400]=Oop [448]=Oop off=1092}
;*invokestatic profileBoolean {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@53
; ...
0x00000001088da384: and eax,0x1
0x00000001088da387: cmp eax,0x0
0x00000001088da38a: mov rax,QWORD PTR [rsp+0x1c0]
0x00000001088da392: je 0x00000001088da409 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@62
; ...
0x00000001088da398: cmp rax,0x0
0x00000001088da39c: je 0x00000001088da3e4 ;*ifnull {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@1 (line 355)
; ...
0x00000001088da3a2: cmp rax,0x0
0x00000001088da3a6: je 0x00000001088da3cc
0x00000001088da3ac: movabs rcx,0x7c00fcc50 ; {metadata('org/jruby/RubyArray')}
0x00000001088da3b6: mov edi,DWORD PTR [rax+0x8]
0x00000001088da3b9: shl rdi,0x3
0x00000001088da3bd: cmp rcx,QWORD PTR [rdi+0x40]
0x00000001088da3c1: jne 0x00000001088da3cc
0x00000001088da3c7: jmp 0x00000001088da3d1
0x00000001088da3cc: xor rsi,rsi
0x00000001088da3cf: jmp 0x00000001088da3db
0x00000001088da3d1: movabs rsi,0x1 ;*invokevirtual isInstance {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@6 (line 355)
; ...
0x00000001088da3db: cmp esi,0x0
0x00000001088da3de: je 0x00000001088da4ab ;*ifne {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.MethodHandleImpl::castReference@9 (line 355)
; ...
0x00000001088da3e4: movabs rdx,0x7a0d7ea10 ; {oop(a 'org/jruby/RubyFixnum')}
0x00000001088da3ee: mov rsi,rax
0x00000001088da3f1: movabs rcx,0x7b8136610 ;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/1581781576::invokeVirtual_LL_L@11
; ...
0x00000001088da3fb: nop...
0x00000001088da3ff: call 0x0000000107fbb520 ; OopMap{[400]=Oop off=1220}
;*invokestatic linkToVirtual {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$DMH/1581781576::invokeVirtual_LL_L@11
; ...
0x00000001088da404: jmp 0x00000001088da47c ;*goto {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@85
; ...
0x00000001088da409: movabs rsi,0x7b81433a0 ; {oop(a 'java/lang/invoke/MethodHandleImpl$CountingWrapper')}
0x00000001088da413: movabs r9,0x7a0d7ea10 ; {oop(a 'org/jruby/RubyFixnum')}
0x00000001088da41d: mov rdx,QWORD PTR [rsp+0x190]
0x00000001088da425: mov rcx,QWORD PTR [rsp+0x1a8]
0x00000001088da42d: mov r8,rax ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@105
; ...
0x00000001088da430: nop...
0x00000001088da437: call 0x0000000107fbb0a0 ; OopMap{[400]=Oop off=1276}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@105
; ...
0x00000001088da43c: jmp 0x00000001088da47c ;*areturn {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@108
; ...
0x00000001088da441: mov rax,QWORD PTR [rsp+0x1c0]
0x00000001088da449: movabs rsi,0x7b8143890 ; {oop(a 'java/lang/invoke/MethodHandleImpl$CountingWrapper')}
0x00000001088da453: movabs r9,0x7a0d7ea10 ; {oop(a 'org/jruby/RubyFixnum')}
0x00000001088da45d: mov rdx,QWORD PTR [rsp+0x190]
0x00000001088da465: mov rcx,QWORD PTR [rsp+0x1a8]
0x00000001088da46d: mov r8,rax ;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@105
; ..
0x00000001088da470: nop...
0x00000001088da477: call 0x0000000107fbb0a0 ; OopMap{[400]=Oop off=1340}
;*invokevirtual invokeBasic {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.invoke.LambdaForm$MH/2619171::guard@105
; ...
0x00000001088da47c: mov QWORD PTR [rsp+0x1d0],rax
0x00000001088da484: mov rsi,QWORD PTR [rsp+0x190]
;*invokespecial popBackrefFrame {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.runtime.ThreadContext::postBackrefMethod@1 (line 942)
; ...
0x00000001088da48c: nop...
0x00000001088da48f: call 0x0000000107fbb0a0 ; OopMap{[400]=Oop [464]=Oop off=1364}
;*invokespecial popBackrefFrame {reexecute=0 rethrow=0 return_oop=0}
; - org.jruby.runtime.ThreadContext::postBackrefMethod@1 (line 942)
; ...
0x00000001088da494: mov rax,QWORD PTR [rsp+0x1d0]
0x00000001088da49c: add rsp,0x1f0
0x00000001088da4a3: pop rbp
0x00000001088da4a4: test DWORD PTR [rip+0xfffffffff990ec56],eax
0x00000001088da4aa: ret
...slow path code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment