[Mono-dev] AMD64 AOT code and bad IMT

Wholesale gavin at wholesalealgorithms.com
Tue May 21 02:13:14 UTC 2013


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/20130520/a01da439/attachment-0001.html>


More information about the Mono-devel-list mailing list