Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48412 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Christopher Lamb
2008-03-16 03:12:01 +00:00
parent 606c5aa084
commit c929823525
11 changed files with 160 additions and 210 deletions

View File

@@ -50,16 +50,8 @@ public:
DECLARE = 3,
EXTRACT_SUBREG = 4,
INSERT_SUBREG = 5,
IMPLICIT_DEF = 6
};
// Target independent implict values for use with subreg insert. All targets
// that support insert_subreg support IMPL_VAL_UNDEF. Support for the other
// values is target dependent.
enum ImplictVal {
IMPL_VAL_UNDEF = 0,
IMPL_VAL_ZERO = 1,
LAST_IMPL_VAL = 3
IMPLICIT_DEF = 6,
SUBREG_TO_REG = 7
};
unsigned getNumOpcodes() const { return NumOpcodes; }