On 10/26/06, Pavel Pervov <pmcfirst@gmail.com> wrote:
>
> My statement is based on the following: JIT only needs vtable to call
> (interface) methods. If it's true, then I don't see where it will be
> necessary to enumerate vtables. The only possibility I can imagine is when
> JIT reuse vtable invoking several methods of the same object.
Pavel,
here is an example of the devirtualization: eax is an object reference:
cmp eax,0 ;
je 0131E778 ;
mov ecx,dword ptr [eax]
cmp ecx,13D5250h
As you see JIT hardcodes vtable as a constant. If you move it - you have to
enumerate it.
All,
Let's allow to Alexey to commit his code as it is and discuss unpinning with
details in future?
--
Mikhail Fursov
|