<div dir="ltr"><div dir="ltr">Thanks! I'm adopting what ARM does for WebAssembly, and it appears to work well.<div><a href="https://reviews.llvm.org/D55401">https://reviews.llvm.org/D55401</a><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 3, 2018 at 5:51 PM Friedman, Eli <<a href="mailto:efriedma@codeaurora.org">efriedma@codeaurora.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 12/3/2018 5:32 PM, Wouter van Oortmerssen via llvm-dev wrote:<br>
> variable_ops is used in the tablegen defs for many targets to denote <br>
> instructions that a variable number of inputs, but it seems that there <br>
> aren't any targets for which this results in variable elements in the <br>
> instruction encoding (and thus in assembler parsing), since the <br>
> tablegen generated assembly matcher ($(Target)GenAsmMatcher.inc) <br>
> simply assumes that variable_ops are not to be parsed (match table: <br>
> Convert_NoOperands).<br>
<br>
ARM has ldm/stm, which take a variable number of register operands.  You <br>
might want to look at how ARMInstrInfo.td uses a "reglist" operand to <br>
represent the list of registers.<br>
<br>
-Eli<br>
<br>
-- <br>
Employee of Qualcomm Innovation Center, Inc.<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<br>
<br>
</blockquote></div>