<br><br><div class="gmail_quote">On Tue, Jul 17, 2012 at 1:08 PM, Joerg Sonnenberger <span dir="ltr"><<a href="mailto:joerg@britannica.bec.de" target="_blank">joerg@britannica.bec.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Mon, Jul 16, 2012 at 05:34:56PM +0400, Kostya Serebryany wrote:<br>
> First Chandler's suggestion was to replace this code with<br>
><br>
> if (*shadow1) { arg = addr1; goto report_read4; }<br>
> if (*shadow2) { arg = addr2; goto report_read4; }<br>
> if (*shadow3) { arg = addr3; goto report_read4; }<br>
> return;<br>
> report_read4:<br>
>   __asan_report_read4(arg);<br>
<br>
</div>What about not using call directly for __asan_report_read4, but building<br>
the stack frame with explicit push + jmp? At least for x86 that is<br>
trivial to implement and not that much larger in terms of code.<br></blockquote><div><br></div><div>Could you please explain more? </div><div>(And one thing I want to avoid is to add inline asm into the LLVM instrumentation module)</div>
<div><br></div><div>--kcc </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Joerg<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br>