Here's an example piece of code to show you what I'm trying to do (on llvm 3.1):<br><br>class ArithLogicR<bits<6> op, bits<6> func, string instr_asm, SDNode OpNode,<br> InstrItinClass itin, RegisterClass RC, bit isComm = 0>:<br>
FR<op, func, (outs RC:$rd), (ins RC:$rs, RC:$rt),<br> !strconcat("+$rd=$rs ",!strconcat(instr_asm, " $rt")),<br> [(set RC:$rd, (OpNode RC:$rs, RC:$rt))], itin> {<br> let shamt = 0;<br>
let isCommutable = isComm;<br> let isReMaterializable = 1;<br>}<br><br>This works, but I have to have the whitespace after $rs (which isn't supported). If I get rid of the space, I get a message like "ArithLogicR doesn't have operand $rsAND" or something similar. The point is that it doesn't recognise $rs as a seperate entity. Is there an encoding that it supports seperating the registers from the operation without adding extra whitespace?<br>