RGCTX fetch trampolines are used by the generics sharing machinery to implement all sort of<div>things from vtable, field, static data and so on. If you have generic code, you&#39;ll have them.</div><div><br></div><div>The worst part is that It&#39;s not possible to eagerly patch them due to recursive types.</div>
<div><br></div><div><br><br><div class="gmail_quote">On Tue, Jun 7, 2011 at 1:01 PM, Martin Däumler <span dir="ltr">&lt;<a href="mailto:mdae@cs.tu-chemnitz.de">mdae@cs.tu-chemnitz.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello,<br>
<br>
I have a further question about Mono internals. For a soft real-time<br>
project based on Mono I try to pre-patch all JIT-, jump-, class init-<br>
and delegate-trampolines (the latter at runtime). So I investigate<br>
the patches that are emitted in &quot;mono_resolve_patch_target()&quot;.<br>
<br>
The underlying conditions are x86 architecture, Linux operating<br>
system, non-AOT case and the mcs C#-compiler. That is, my<br>
pre-patch only has to work with the C#-programs that can<br>
be compiled by the mcs. I dived into the code but is not<br>
always clear which patches are emitted under which circumstances.<br>
Now, I want to know if it is possible that the following patches<br>
are emitted by the JIT (non-AOT case):<br>
<br>
MONO_PATCH_INFO_RGCTX_FETCH (only needed if generics are used?)<br>
MONO_PATCH_INFO_JIT_ICALL_ADDR (not used on x86?)<br>
MONO_PATCH_INFO_ICALL_ADDR (only for AOT case?)<br>
<br>
<br>
I guess that the RGCTX (and practically the RGCTX lazy fetch<br>
trampoline) is used only if generics are used. So, a call to<br>
it is not emitted by the mcs, is it? For the other patches I<br>
assume that they are emitted only in AOT-case, but I am not<br>
sure.<br>
<br>
<br>
With kind regards,<br>
<font color="#888888">Martin Däumler<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</font></blockquote></div><br></div>