mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
NOP instructions are pseudo-instructions. We should not have them explicitly in
our representation, since they are usually special cases of already-existing instructions. This abstracts away methods that let a pass create and verify a NOP instruction, without relying on a `NOP' enum to be in existence in the target's instruction info descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6319 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
eefe979c91
commit
00b05bd703
@ -273,6 +273,20 @@ public:
|
||||
return true; // safe but very conservative
|
||||
}
|
||||
|
||||
|
||||
/// createNOPinstr - returns the target's implementation of NOP, which is
|
||||
/// usually a pseudo-instruction, implemented by a degenerate version of
|
||||
/// another instruction, e.g. X86: xchg ax, ax; SparcV9: sethi g0, 0
|
||||
///
|
||||
virtual MachineInstr* createNOPinstr() const = 0;
|
||||
|
||||
/// isNOPinstr - since we no longer have 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.
|
||||
///
|
||||
virtual bool isNOPinstr(const MachineInstr &MI) const = 0;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
// Code generation support for creating individual machine instructions
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user