<div dir="ltr">



















<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">Hi,<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">I am trying to implement support for asm matching for instruction
which uses three registers (operands).<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">And sometimes the register could have a suffix like .M.<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">For example:<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">add x1, x2, x3<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">and sometimes:<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">add x1.M, x.2, x.3<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span>  <br></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">For the second case I’ve defined instruction as follows:<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span>(outs REGCLASS:$x1),<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span>(ins REGCLASS:$x2, REGCLASS:$x3),<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">“add\t\t${x1}.M, ${x2}, ${x3}"<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">But AsmParser doesn’t recognize the case with .M returning "invalid
operand for instruction".<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">Should I define .M as separate operand for example:<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">(outs REGCLASS:$x1),<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">(ins REGCLASS:$x2, REGCLASS:$x3, REGMOD:$MOD)<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">“add\t\t${x1}.${MOD}, ${x2}, ${x3}"<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">But in such case it still doesn’t recognize “x1.M”, because
as I understand it separates operands just with “,” (comma).<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">What approach should I take?<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">Is there any example of such a case in any Target?<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif"><span> </span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">Thanks,<span></span></p>

<p class="MsoNormal" style="margin:0in;font-size:11pt;font-family:"Calibri",sans-serif">Przemek<span></span></p>





</div>