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