[Mono-dev] Mono AOT for 64-bit Windows

voldemarz voldemarz at gmail.com
Thu Jun 27 16:52:59 UTC 2013


Thanks for input. By seasoned you mean someone who has good knowledge of Mono
internals or generally a guy with low level experience on various
platforms/architectures?

I slightly modified ASM generation 
- wrapped .type and .size within .def/.endef directives
- removed local symbol emission
- removed underscore in front of global symbols 

Now I can generate AOT images and runtime seems to find all data structures
it needs. In few first runs surprisingly some simple tests worked
successfully in aot and full-aot mode - console output, simple calculations,
events, catching exceptions, allocating bunch of objects and invoking
garbage collection.

Then I regenerated AOT image of mscorlib and it doesn't work any more.
Trying to figure out issues now. In full-aot mode it crashes after a jump to
a non-executable memory region from function
wrapper_managed_to_native_object___icall_wrapper_mono_object_new_ptrfree_box_intptr

The first few ops after the function prolog look like this (full function
asm  here <http://pastebin.com/GfTLeN1e>  ):
mov         rax,7FACDFD19E0h
mov         rcx,qword ptr [rbp-70h]
sub         rsp,20h
mov        qword ptr [rbp-38h],rsp
call         rax

The address loaded into rax looks very suspicios. As far I can see that
function is compiled from IL. Haven't tracked down were is it coming from?
Could someone point me to it? What is it attempting call internally?



--
View this message in context: http://mono.1490590.n4.nabble.com/Mono-AOT-for-64-bit-Windows-tp4659926p4660049.html
Sent from the Mono - Dev mailing list archive at Nabble.com.


More information about the Mono-devel-list mailing list