[Mono-devel-list] JIT, MonoCompile

Kaushik Srenevasan kaushik at vfemail.net
Sun Jan 23 20:18:28 EST 2005



I've been trying to insert some code into every JITted method by modifying
the mono_codegen function in mini.c.


I've added the following function in mini.c


Void foo( void )


printf( "." );



And then the following lines 


Mono_add_patch_info( cfg, code - cfg->native_code, MONO_PATCH_INFO_ABS,
foo); X86_call_code( code, 0 );


This works and my function gets called each time.


But earlier I tried inserting only

X86_call_code( code, foo )


And I got a segfault.


I thought this would work because all that x86_call_code does ( as far as I
understood ) is to emit a call <offset> instruction into the code stream.
And since I am calling a function that neither takes any parameters nor
returns any, I wouldn't be corrupting the stack either. But I fail to
understand why it segfaulted.


Why is a call to mono_add_patch_info needed?


How does the runtime make use of MonoCompile?





-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050124/45579aa0/attachment.html 

More information about the Mono-devel-list mailing list