Changes in directory llvm/lib/Target/IA64:
IA64InstrInfo.td updated: 1.34 -> 1.35 --- Log message: Added field noResults to Instruction. Currently tblgen cannot tell which operands in the operand list are results so it assumes the first one is a result. This is bad. Ideally we would fix this by separating results from inputs, e.g. (res R32:$dst), (ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding 'let noResults = 1' is the workaround to tell tblgen that the instruction does not produces a result. It works for now since tblgen does not support instructions which produce multiple results. --- Diffs of the changes: (+4 -4) IA64InstrInfo.td | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Target/IA64/IA64InstrInfo.td diff -u llvm/lib/Target/IA64/IA64InstrInfo.td:1.34 llvm/lib/Target/IA64/IA64InstrInfo.td:1.35 --- llvm/lib/Target/IA64/IA64InstrInfo.td:1.34 Sun Dec 25 08:07:01 2005 +++ llvm/lib/Target/IA64/IA64InstrInfo.td Mon Dec 26 03:11:45 2005 @@ -520,7 +520,7 @@ def SUBIMM8 : AForm<0x03, 0x0b, (ops GR:$dst, s8imm:$imm, GR:$src2), "sub $dst = $imm, $src2;;">; -let isStore = 1 in { +let isStore = 1, noResults = 1 in { def ST1 : AForm<0x03, 0x0b, (ops GR:$dstPtr, GR:$value), "st1 [$dstPtr] = $value;;">; def ST2 : AForm<0x03, 0x0b, (ops GR:$dstPtr, GR:$value), @@ -643,7 +643,7 @@ (GETFSIG (FCVTFXUTRUNC FP:$src))>; -let isTerminator = 1, isBranch = 1 in { +let isTerminator = 1, isBranch = 1, noResults = 1 in { def BRL_NOTCALL : RawForm<0x03, 0xb0, (ops i64imm:$dst), "(p0) brl.cond.sptk $dst;;">; def BRLCOND_NOTCALL : RawForm<0x03, 0xb0, (ops PR:$qp, i64imm:$dst), @@ -652,7 +652,7 @@ "($qp) br.cond.sptk $dst;;">; } -let isCall = 1, /* isTerminator = 1, isBranch = 1, */ +let isCall = 1, noResults = 1, /* isTerminator = 1, isBranch = 1, */ Uses = [out0,out1,out2,out3,out4,out5,out6,out7], // all calls clobber non-callee-saved registers, and for now, they are these: Defs = [r2,r3,r8,r9,r10,r11,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24, @@ -688,7 +688,7 @@ "($qp) br.cond.call.sptk $dst;;">; } -let isTerminator = 1, isReturn = 1 in +let isTerminator = 1, isReturn = 1, noResults = 1 in def RET : RawForm<0x03, 0xb0, (ops), "br.ret.sptk.many rp;;">; // return _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits