From 2aa133ef72a739c39b830cdc4d322a9d2e1d09c2 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Thu, 5 Jul 2007 07:09:09 +0000 Subject: [PATCH] - Added zero_reg def to stand for register 0. - Added two variants of PredicateOperand: ImmutablePredicateOperand, whose predicate does not change after isel; PredicateDefOperand, which represent a predicate defintion operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37892 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Target.td | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/Target/Target.td b/lib/Target/Target.td index 43e3af8667a..723954b2e07 100644 --- a/lib/Target/Target.td +++ b/lib/Target/Target.td @@ -256,16 +256,33 @@ def i16imm : Operand; def i32imm : Operand; def i64imm : Operand; +/// zero_reg definition - Special node to stand for the zero register. +/// +def zero_reg; /// PredicateOperand - This can be used to define a predicate operand for an /// instruction. OpTypes specifies the MIOperandInfo for the operand, and /// AlwaysVal specifies the value of this predicate when set to "always -/// execute". -class PredicateOperand : Operand { +/// execute". If isOutput is true, then this is output operand. If isImmutable +/// is true, then the operand should not change after instruction selection. +class PredicateOperand + : Operand { let MIOperandInfo = OpTypes; + bit isOutput = 0; + bit isImmutable = 0; dag ExecuteAlways = AlwaysVal; } +class ImmutablePredicateOperand + : PredicateOperand { + let isImmutable = 1; +} + +class PredicateDefOperand + : PredicateOperand { + let isOutput = 1; +} + // InstrInfo - This class should only be instantiated once to provide parameters // which are global to the the target machine. -- 2.34.1