<div dir="ltr">Hi Dmitriy,<div><br></div><div style>As you've seen our current spill code assumes that spill/reloads are single instructions. I think the best way to work around this is to introduce load/store pseudo-instructions and expand these after register allocation.</div>

<div><br></div><div>Cheers,</div><div>Lang.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 23, 2013 at 12:15 AM, Dmitriy Limonov <span dir="ltr"><<a href="mailto:earl@excluzive.ws" target="_blank">earl@excluzive.ws</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All.<br>
<br>
I'm writing storeRegToStackSlot and loadFromStackSlot function for my Target. This Target can store/load one byte (not all word) from FrameIndex. If I need to store 16 bit register I will must to split it to two instruction like this:<br>


<br>
BuildMI(MBB, MI, dl, get(Z80::LD8xmr))<br>
  .addFrameIndex(FrameIndex).<u></u>addImm(0)<br>
  .addReg(SrcReg, 0, Z80::subreg_lo);<br>
BuildMI(MBB, MI, dl, get(Z80::LD8xmr))<br>
  .addFrameIndex(FrameIndex).<u></u>addImm(1)<br>
  .addReg(SrcReg, getKillRegState(isKill), Z80::subreg_hi);<br>
<br>
After this store I catch assertion failed: "Instruction not found in maps", because only last of this instruction added in Instruction maps.<br>
How can I avoid assertion failed in this case?<br>
<br>
Best regards, Dmitriy.<br>
<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div></div>