<div dir="ltr"><div><div>Hi, </div><div><br></div><div>I defined an instruction like this:</div><div><br></div><div>def LDM : OpusInstSTMLDM<0x27, 6, (outs REG_RANGE:$regRange),</div><div>                        (ins MEM_LDM:$addr),</div>
<div>                       "ldm $regRange, $addr", []>, Requires<[HasOpus3Enc]>;</div></div><div><br></div><div>REG_RANGE will be:</div><div><br></div><div><div>def REG_RANGE : Operand<i32> {</div>
<div>  let MIOperandInfo = (ops GR32, GR32);<br></div><div>  ...</div><div>}<br></div></div><div><br></div><div>Now I was expecting the NumDefs of LDM's MCInstrDesc to be 2. Yet it is 1. This ca<font color="#000000">u<font face="arial, helvetica, sans-serif">se -<span style="background-color:rgb(245,245,245);font-size:13px">verify-machineinstrs pass to fail.</span></font></font></div>
<div>Basically it seems like tablegen doesn't look take into account sub-operands to calculate NumDefs's MCInstrDesc.</div><div><br></div><div>Is this a bug or by design? </div><div><br></div><div>Thanks.</div></div>