<div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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 :)</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Pete<br><br><div class="gmail_quote">On Sat, Apr 28, 2012 at 12:03 AM, Pete Cooper <span dir="ltr"><<a href="mailto:pete.cooper@gmail.com" target="_blank">pete.cooper@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Craig<div><br></div><div>With gratuitous copy and paste I've got the x86 JIT working on AVX.  This passes make check for me.</div>
<div><br></div><div>I did this in a rush so please have a good look at the patch to see if you want to commit it.  I think it also needs some whitespace removal.</div>

<div><br></div><div>The only change I really wasn't happy with is the one in X86BaseInfo.h.  I hit that llvm_unreachable on most of the tests after my changes.  I'm confused as my code is mostly copied from the X86MCCodeEmitter so i don't know why it doesn't fire from there.</div>

<div><br></div><div>Thanks,</div><div>Pete</div>
</blockquote></div><br></div>