diff --git a/lib/Target/Target.td b/lib/Target/Target.td index 723954b2e07..3d6d8363e45 100644 --- a/lib/Target/Target.td +++ b/lib/Target/Target.td @@ -263,14 +263,13 @@ 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". If isOutput is true, then this is output operand. If isImmutable -/// is true, then the operand should not change after instruction selection. +/// execute". 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; + dag DefaultOps = AlwaysVal; } class ImmutablePredicateOperand @@ -278,9 +277,13 @@ class ImmutablePredicateOperand let isImmutable = 1; } -class PredicateDefOperand - : PredicateOperand { - let isOutput = 1; +/// OptionalDefOperand - This is used to define a optional definition operand +/// for an instruction. DefaultOps is the register the operand represents if none +/// is supplied, e.g. zero_reg. +class OptionalDefOperand + : Operand { + let MIOperandInfo = OpTypes; + dag DefaultOps = defaultops; }