<div dir="ltr">You need a register in the outs list too. To inform everything that your instruction produces an output. And it needs to be a different name than $ra and $rb. So let's say $rd for destination. You need to do this:<div><br></div><div><font face="monospace, monospace">let Constraints = "$ra = $rd"</font></div><div><span style="color:rgb(0,0,0);font-size:16px;font-family:"Courier New",monospace">def ADDR : F_R<0b000000,(outs CPURegs:$rd) , (ins CPURegs:$rb, CPURegs:$ra),"ADDR $ra, $rb",[(set CPURegs:$rd, (add C</span><span style="color:rgb(0,0,0);font-size:16px;font-family:"Courier New",monospace">PURegs:$ra, CPURegs:$rb))] >;</span>  <br><div><br></div><div>The Constraints line will tell the register allocation system that $ra and $rd should always be the same physical register.</div><div><br></div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 16, 2018 at 5:30 PM m m via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_-4220237913376307445divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi,</p>
<p style="margin-top:0;margin-bottom:0">Absolute LLVM newbie here. I am trying to define an add instruction which takes 2 register inputs ra and rb and writes the sum into ra.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"></p>
<div><span style="font-family:"Courier New",monospace">def ADDR : F_R<0b000000,(outs) , (ins CPURegs:$rb, CPURegs:$ra),"ADDR $ra, $rb",[(set CPURegs:$ra, (add C</span><span style="font-family:"Courier New",monospace">PURegs:$ra, CPURegs:$rb))] >;</span><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>I get this error:<br>
</div>
<span style="font-family:"Courier New",monospace">error: In ADDR: Operand $rb does not exist in operand list!</span>
<p></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family:"Courier New",monospace"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family:Calibri,Helvetica,sans-serif">Does anybody know what that means?</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-family:Calibri,Helvetica,sans-serif">Thanks.</span><br>
</p>
</div>
</div>

_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>