<br><br><div class="gmail_quote">On Sat, Apr 28, 2012 at 3:56 PM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@apple.com" target="_blank">echristo@apple.com</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"><br>
On Apr 28, 2012, at 3:38 PM, Pete Cooper wrote:<br>
<br>
> I tracked down the difference in llc and lli which leads to a crash in one but not the other with these changes applied.  The llvm_unreachable i removed here from X86BaseInfo.h fires in lli because of a MOV32r0 instruction.<br>

><br>
> The JIT passes this instruction all the way through to emission.  llc instead calls LowerUnaryToTwoAddr(OutMI, X86::XOR32rr); which stops any MOV32r0 instructions from ever getting to MC emission and triggering the llvm_unreachable.<br>

><br>
<br>
</div>I just found this too :)<br>
<div class="im"><br>
> Anyone got any advice on this?  We could have the JIT also make the LowerUnaryToTwoAddr call but without refactoring this is getting to be a mess of copied and pasted code.  Not that I helped that at all with this patch :)<br>

<br>
</div>I'm for this change. While we want to get rid of MRMInitReg (and AVX isn't helping) the assert is pretty much just checking that LowerUnaryToTwoAddr is running here. It's valid code so we should just accept it IMO.<br>

<br>
The rest of the patch looks fine, someone should file a bug to refactor this :)<br></blockquote><div>Great.  Thanks for taking the time to review this Eric.</div><div><br></div><div>I'll give it a couple of hours and if there's no objections I'll commit (after whitespace removal that is)</div>
<div><br></div><div>Pete </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>
-eric<br>
</font></span></blockquote></div><br>