x86 interpreters in hotspot

Xin Tong xerox.time.tech at gmail.com
Tue May 15 16:56:49 PDT 2012


i am looking at the dispatch code for fast_aaccess_0  221 fast_aaccess_0
 [0x00007f640d0363a0, 0x00007f640d0364a0]  256 bytes

   0x7f640d03646d:      call   0x7f6415353200
<_ZN14MacroAssembler7debug64EPclPl>
   0x7f640d036472:      hlt
   0x7f640d036473:      pop    r10
   0x7f640d036475:      dec    r13
   0x7f640d036478:      movzx  ebx,BYTE PTR [r13+0x4]
   0x7f640d03647d:      mov    r11,r13
   0x7f640d036480:      add    r13,0x4
   0x7f640d036484:      movabs r10,0x7f641623e8c0


It is decrementing r13, instead of incrementing. how is this possible ?

Thanks

Xin


On Tue, May 15, 2012 at 12:45 PM, Krystal Mok <rednaxelafx at gmail.com> wrote:

> On Wed, May 16, 2012 at 12:12 AM, Xin Tong <xerox.time.tech at gmail.com>wrote:
>
>> I imagine the adaptation happens in some trampoline code which sets up
>> the context.
>>
> My slides did explain the TOS adaptation:
> http://www.tektalk.org/2011/07/28/java-%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%BC%96%E8%AF%91%EF%BC%8C%E5%8A%A0%E8%BD%BD-%E5%92%8C-%E6%89%A7%E8%A1%8C/
>
>
>> also, i see the dispatch_epilogue called 220 times. however there are
>> about 240 bytecodes in java ? should not it be called for every java
>> bytecode ?
>>
>> Some bytecodes do their own dispatch, so dispatch_epilogue() is not
> executed for them. Please see the end
> of TemplateInterpreterGenerator::generate_and_dispatch(), and also see
> TemplateTable::initialize() for the list of bytecodes that do dispatch on
> their own.
>
> - Kris
>
>
>> Thanks
>>
>> Xin
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20120515/f9728901/attachment.html 


More information about the hotspot-runtime-dev mailing list