x86 interpreters in hotspot
Xin Tong
xerox.time.tech at gmail.com
Wed May 16 13:34:12 PDT 2012
On Tue, May 15, 2012 at 7:56 PM, Xin Tong <xerox.time.tech at gmail.com> wrote:
> 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
>>>
>>>
>>
>
can I assume that at the beginning of each interpreter routine for the
bytecodes, the current bytecode pc is going to be stored in r13 on x86_64 ?
Thanks
Xin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20120516/4361c8d9/attachment.html
More information about the hotspot-runtime-dev
mailing list