namespace llvm {
+/// V8II - This namespace holds all of the target specific flags that
+/// instruction info tracks.
+///
+namespace V8II {
+ enum {
+ Pseudo = (1<<0),
+ Load = (1<<1),
+ Store = (1<<2),
+ DelaySlot = (1<<3)
+ };
+};
+
class SparcV8InstrInfo : public TargetInstrInfo {
const SparcV8RegisterInfo RI;
public:
///
virtual const MRegisterInfo &getRegisterInfo() const { return RI; }
- /// createNOPinstr - returns the target's implementation of NOP, which is
- /// usually a pseudo-instruction, implemented by a degenerate version of
- /// another instruction.
- ///
- MachineInstr* createNOPinstr() const;
-
- /// isNOPinstr - not having a special NOP opcode, we need to know if a given
- /// instruction is interpreted as an `official' NOP instr, i.e., there may be
- /// more than one way to `do nothing' but only one canonical way to slack off.
+ /// Return true if the instruction is a register to register move and
+ /// leave the source and dest operands in the passed parameters.
///
- bool isNOPinstr(const MachineInstr &MI) const;
+ virtual bool isMoveInstr(const MachineInstr &MI,
+ unsigned &SrcReg, unsigned &DstReg) const;
};
}