ryan baird
2012-Sep-14 14:25 UTC
[LLVMdev] Seperating registers in target description string replacement without adding whitespace?
Here's an example piece of code to show you what I'm trying to do (on llvm 3.1): class ArithLogicR<bits<6> op, bits<6> func, string instr_asm, SDNode OpNode, InstrItinClass itin, RegisterClass RC, bit isComm = 0>: FR<op, func, (outs RC:$rd), (ins RC:$rs, RC:$rt), !strconcat("+$rd=$rs ",!strconcat(instr_asm, " $rt")), [(set RC:$rd, (OpNode RC:$rs, RC:$rt))], itin> { let shamt = 0; let isCommutable = isComm; let isReMaterializable = 1; } 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? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120914/c0b759e3/attachment.html>