Understanding PrintOptoAssembly
Charles Oliver Nutter
charles.nutter at sun.com
Mon Oct 6 13:21:21 PDT 2008
Charles Oliver Nutter wrote:
> Here's an example a confusing bit for me:
>
> 29f CALL,static org.jruby.runtime.ThreadContext::pollThreadEvents
> # org.jruby.runtime.ThreadContext::callThreadPoll @ bci:19 L[0]=_
> # org.jruby.runtime.callsite.CachingCallSite::pollAndGetClass @
> bci:1 L[0]=_ L[1]=_ L[2]=esp + #144 L[3]=_
> # org.jruby.runtime.callsite.CallSiteInvoker::call @ bci:3
> L[0]=esp + #32 L[1]=esp + #28 L[2]=esp + #144 L[3]=e
> sp + #144 L[4]=esp + #48 L[5]=_ L[6]=_
> # bench.bench_fib_recursive::method__0$RUBY$fib_ruby @ bci:114
> L[0]=esp + #152 L[1]=esp + #28 L[2]=esp + #144 L
> [3]=_ L[4]=_ L[5]=_ L[6]=esp + #20 L[7]=_ L[8]=_ L[9]=_ L[10]=_
> L[11]=esp + #64 STK[0]=esp + #24 STK[1]=esp + #28 STK[2]=esp + #144 #
Ok, I think I'm starting to understand it now after playing around a
bit. The call above is actually to pollthreadEvents; the others listed
below it are the backtrace to that point...calls which have all already
been inlined. So what this shows is where it finally bails out of
inlined code to do a call, and where the call it's making actually occurs.
Correct?
- Charlie
More information about the hotspot-dev
mailing list