mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
ARM: use TableGen patterns to select CMOV operations.
Back in the mists of time (2008), it seems TableGen couldn't handle the patterns necessary to match ARM's CMOV node that we convert select operations to, so we wrote a lot of fairly hairy C++ to do it for us. TableGen can deal with it now: there were a few minor differences to CodeGen (see tests), but nothing obviously worse that I could see, so we should probably address anything that *does* come up in a localised manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188995 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -632,6 +632,11 @@ def f64imm : Operand<f64>;
|
||||
///
|
||||
def zero_reg;
|
||||
|
||||
/// All operands which the MC layer classifies as predicates should inherit from
|
||||
/// this class in some manner. This is already handled for the most commonly
|
||||
/// used PredicateOperand, but may be useful in other circumstances.
|
||||
class PredicateOp;
|
||||
|
||||
/// OperandWithDefaultOps - This Operand class can be used as the parent class
|
||||
/// for an Operand that needs to be initialized with a default value if
|
||||
/// no value is supplied in a pattern. This class can be used to simplify the
|
||||
@@ -647,7 +652,7 @@ class OperandWithDefaultOps<ValueType ty, dag defaultops>
|
||||
/// AlwaysVal specifies the value of this predicate when set to "always
|
||||
/// execute".
|
||||
class PredicateOperand<ValueType ty, dag OpTypes, dag AlwaysVal>
|
||||
: OperandWithDefaultOps<ty, AlwaysVal> {
|
||||
: OperandWithDefaultOps<ty, AlwaysVal>, PredicateOp {
|
||||
let MIOperandInfo = OpTypes;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user