[Mono-dev] AMD64 AOT code and bad IMT

Zoltan Varga vargaz at gmail.com
Tue May 21 02:23:07 UTC 2013


Hi,

  R11 is a scratch register overwritten by a lot of code including various
trampolines, so thats why we use r10.

                   Zoltan


On Tue, May 21, 2013 at 4:13 AM, Wholesale <gavin at wholesalealgorithms.com>wrote:

> Thanks for the info.
>
> I'm not sure it is possible to switch to 3.0, but I'll look into it.
>
> The register in my version is R11, should code be emitted to look up the
> correct table or is mono_get_lmf_addr the correct call?
>
>
>
> On May 20, 2013, at 16:52, Zoltan Varga <vargaz at gmail.com> wrote:
>
> Hi,
>
> On Tue, May 21, 2013 at 1:37 AM, Gavin Dodd <gavin at wholesalealgorithms.com
> > wrote:
>
>>
>> To make things more interesting I'm working with a branch of mono 2.8 (I
>> think) and I don't have any symbols for the AOT compiled code at run time,
>>
>
> You should try a 3.0 based mono version first, you might be running into a
> bug which is already fixed.
>
>
>>
>>
>> My questions are:
>>
>> Is the lmf address the correct value for the return of
>> mono_arch_find_imt_method? If not what should it be?
>> What generates the IMT for AOT compiled code?
>> What sets the IMT address table at run time and where is it stored? I
>> haven't seen any breakpoints on IMT functions get hit at runtime.
>>
>> Thanks
>>
>> The C code is called from an IMT thunk, which is generated by
> arch_emit_imt_thunk () in aot-compiler.c. The thunks are stored in a table
> pointed to by the symbol 'imt_thunks' in the mscorlib aot image.
> The thunk receives the imt argument in MONO_ARCH_IMT_REG which is r10 in
> this case. This register needs to be set by the caller, which is AOT
> generated code.
>
>                        Zoltan
>
>
>
>> Gavin
>>
>>
>>
>>
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20130521/9944fc10/attachment.html>


More information about the Mono-devel-list mailing list