<div dir="ltr">On Sun, Aug 18, 2013 at 3:24 PM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">> I think I've spotted the problem in the CodeGen for<br>
> set_normalized_timespec: the first "adds" is using an undefined<br>
> register r6 (attaching .ll file for the curious, though I'm intending<br>
> to get this fixed).<br>
<br>
</div>It turned out to be a latent bug where we were untying operands while<br>
converting them to GPRPair. The function I picked on<br>
("set_normalized_timespec") contained asm("" : "+rm"(var)) which broke<br>
the live-range of "var": it was "r2,r3" going in but "r6,r7" coming<br>
out. Not good if there's no assembly to actually do that move (or if<br>
the assembly that *is* present expects a single set of registers).<br>
<br>
Should be fixed in r188643.<br>
<span class="HOEnZb"><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br>This fix LLVMLinux side on vexpress. I will try on other targets too.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards.</div><div class="gmail_extra"><div><br>
</div>-- <br><div dir="ltr">Simplicity is the ultimate sophistication<br></div>
</div></div>