Add an MO_Undef MachineOperandType, intended for INSERT_SUBREG. Next up MO_Undead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48353 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2008-03-14 01:47:49 +00:00
parent 5922f561c6
commit 15fda403f3
2 changed files with 16 additions and 4 deletions

View File

@ -84,6 +84,11 @@ public:
return *this;
}
const MachineInstrBuilder &addUndef() const {
MI->addOperand(MachineOperand::CreateUndef());
return *this;
}
/// addMemOperand - Add a memory operand to the machine instruction.
const MachineInstrBuilder &addMemOperand(const MemOperand &MO) const {
MI->addMemOperand(MO);

View File

@ -33,15 +33,16 @@ class MachineRegisterInfo;
class MachineOperand {
public:
enum MachineOperandType {
MO_Register, // Register operand.
MO_Immediate, // Immediate Operand
MO_FPImmediate,
MO_Register, // Register operand
MO_Immediate, // Immediate operand
MO_FPImmediate, // FP immediate operand
MO_MachineBasicBlock, // MachineBasicBlock reference
MO_FrameIndex, // Abstract Stack Frame Index
MO_ConstantPoolIndex, // Address of indexed Constant in Constant Pool
MO_JumpTableIndex, // Address of indexed Jump Table for switch
MO_ExternalSymbol, // Name of external global symbol
MO_GlobalAddress // Address of a global value
MO_GlobalAddress, // Address of a global value
MO_Undef // Undef
};
private:
@ -130,6 +131,7 @@ public:
bool isJumpTableIndex() const { return OpKind == MO_JumpTableIndex; }
bool isGlobalAddress() const { return OpKind == MO_GlobalAddress; }
bool isExternalSymbol() const { return OpKind == MO_ExternalSymbol; }
bool isUndef() const { return OpKind == MO_Undef; }
bool isReg() const { return OpKind == MO_Register; }
bool isImm() const { return OpKind == MO_Immediate; }
@ -375,6 +377,11 @@ public:
Op.setOffset(Offset);
return Op;
}
static MachineOperand CreateUndef() {
MachineOperand Op(MachineOperand::MO_Undef);
return Op;
}
const MachineOperand &operator=(const MachineOperand &MO) {
OpKind = MO.OpKind;
IsDef = MO.IsDef;