mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Switch the MachineOperand accessors back to the short names like
isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
06a62886fb
commit
d735b8019b
@ -57,8 +57,7 @@ MachineBasicBlock* SplitCriticalMachineEdge(MachineBasicBlock* src,
|
||||
// crit_mbb.
|
||||
for (unsigned i = 0, e = mii->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand & mo = mii->getOperand(i);
|
||||
if (mo.isMachineBasicBlock() &&
|
||||
mo.getMBB() == dst) {
|
||||
if (mo.isMBB() && mo.getMBB() == dst) {
|
||||
found_branch = true;
|
||||
mo.setMBB(crit_mbb);
|
||||
}
|
||||
@ -84,7 +83,7 @@ MachineBasicBlock* SplitCriticalMachineEdge(MachineBasicBlock* src,
|
||||
std::vector<unsigned> toRemove;
|
||||
unsigned reg = 0;
|
||||
for (unsigned u = 0; u != mii->getNumOperands(); ++u)
|
||||
if (mii->getOperand(u).isMachineBasicBlock() &&
|
||||
if (mii->getOperand(u).isMBB() &&
|
||||
mii->getOperand(u).getMBB() == src) {
|
||||
reg = mii->getOperand(u-1).getReg();
|
||||
toRemove.push_back(u-1);
|
||||
|
@ -203,7 +203,7 @@ public:
|
||||
bool Removed = false;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isKill() && MO.getReg() == reg) {
|
||||
if (MO.isReg() && MO.isKill() && MO.getReg() == reg) {
|
||||
MO.setIsKill(false);
|
||||
Removed = true;
|
||||
break;
|
||||
@ -238,7 +238,7 @@ public:
|
||||
bool Removed = false;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && MO.getReg() == reg) {
|
||||
if (MO.isReg() && MO.isDef() && MO.getReg() == reg) {
|
||||
MO.setIsDead(false);
|
||||
Removed = true;
|
||||
break;
|
||||
|
@ -52,8 +52,8 @@ public:
|
||||
{}
|
||||
|
||||
// Accessors
|
||||
bool isRegister() const { return IsRegister; }
|
||||
unsigned getRegister() const { return Register; }
|
||||
bool isReg() const { return IsRegister; }
|
||||
unsigned getReg() const { return Register; }
|
||||
int getOffset() const { return Offset; }
|
||||
void setIsRegister(bool Is) { IsRegister = Is; }
|
||||
void setRegister(unsigned R) { Register = R; }
|
||||
|
@ -125,17 +125,28 @@ public:
|
||||
void print(std::ostream &os, const TargetMachine *TM = 0) const;
|
||||
void print(raw_ostream &os, const TargetMachine *TM = 0) const;
|
||||
|
||||
/// Accessors that tell you what kind of MachineOperand you're looking at.
|
||||
///
|
||||
bool isRegister() const { return OpKind == MO_Register; }
|
||||
bool isImmediate() const { return OpKind == MO_Immediate; }
|
||||
bool isFPImmediate() const { return OpKind == MO_FPImmediate; }
|
||||
bool isMachineBasicBlock() const { return OpKind == MO_MachineBasicBlock; }
|
||||
bool isFrameIndex() const { return OpKind == MO_FrameIndex; }
|
||||
bool isConstantPoolIndex() const { return OpKind == MO_ConstantPoolIndex; }
|
||||
bool isJumpTableIndex() const { return OpKind == MO_JumpTableIndex; }
|
||||
bool isGlobalAddress() const { return OpKind == MO_GlobalAddress; }
|
||||
bool isExternalSymbol() const { return OpKind == MO_ExternalSymbol; }
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Accessors that tell you what kind of MachineOperand you're looking at.
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
||||
/// isReg - Tests if this is a MO_Register operand.
|
||||
bool isReg() const { return OpKind == MO_Register; }
|
||||
/// isImm - Tests if this is a MO_Immediate operand.
|
||||
bool isImm() const { return OpKind == MO_Immediate; }
|
||||
/// isFPImm - Tests if this is a MO_FPImmediate operand.
|
||||
bool isFPImm() const { return OpKind == MO_FPImmediate; }
|
||||
/// isMBB - Tests if this is a MO_MachineBasicBlock operand.
|
||||
bool isMBB() const { return OpKind == MO_MachineBasicBlock; }
|
||||
/// isFI - Tests if this is a MO_FrameIndex operand.
|
||||
bool isFI() const { return OpKind == MO_FrameIndex; }
|
||||
/// isCPI - Tests if this is a MO_ConstantPoolIndex operand.
|
||||
bool isCPI() const { return OpKind == MO_ConstantPoolIndex; }
|
||||
/// isJTI - Tests if this is a MO_JumpTableIndex operand.
|
||||
bool isJTI() const { return OpKind == MO_JumpTableIndex; }
|
||||
/// isGlobal - Tests if this is a MO_GlobalAddress operand.
|
||||
bool isGlobal() const { return OpKind == MO_GlobalAddress; }
|
||||
/// isSymbol - Tests if this is a MO_ExternalSymbol operand.
|
||||
bool isSymbol() const { return OpKind == MO_ExternalSymbol; }
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Accessors for Register Operands
|
||||
@ -143,49 +154,49 @@ public:
|
||||
|
||||
/// getReg - Returns the register number.
|
||||
unsigned getReg() const {
|
||||
assert(isRegister() && "This is not a register operand!");
|
||||
assert(isReg() && "This is not a register operand!");
|
||||
return Contents.Reg.RegNo;
|
||||
}
|
||||
|
||||
unsigned getSubReg() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return (unsigned)SubReg;
|
||||
}
|
||||
|
||||
bool isUse() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return !IsDef;
|
||||
}
|
||||
|
||||
bool isDef() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return IsDef;
|
||||
}
|
||||
|
||||
bool isImplicit() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return IsImp;
|
||||
}
|
||||
|
||||
bool isDead() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return IsDead;
|
||||
}
|
||||
|
||||
bool isKill() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return IsKill;
|
||||
}
|
||||
|
||||
bool isEarlyClobber() const {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
return IsEarlyClobber;
|
||||
}
|
||||
|
||||
/// getNextOperandForReg - Return the next MachineOperand in the function that
|
||||
/// uses or defines this register.
|
||||
MachineOperand *getNextOperandForReg() const {
|
||||
assert(isRegister() && "This is not a register operand!");
|
||||
assert(isReg() && "This is not a register operand!");
|
||||
return Contents.Reg.Next;
|
||||
}
|
||||
|
||||
@ -198,37 +209,37 @@ public:
|
||||
void setReg(unsigned Reg);
|
||||
|
||||
void setSubReg(unsigned subReg) {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
SubReg = (unsigned char)subReg;
|
||||
}
|
||||
|
||||
void setIsUse(bool Val = true) {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
IsDef = !Val;
|
||||
}
|
||||
|
||||
void setIsDef(bool Val = true) {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
IsDef = Val;
|
||||
}
|
||||
|
||||
void setImplicit(bool Val = true) {
|
||||
assert(isRegister() && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && "Wrong MachineOperand accessor");
|
||||
IsImp = Val;
|
||||
}
|
||||
|
||||
void setIsKill(bool Val = true) {
|
||||
assert(isRegister() && !IsDef && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && !IsDef && "Wrong MachineOperand accessor");
|
||||
IsKill = Val;
|
||||
}
|
||||
|
||||
void setIsDead(bool Val = true) {
|
||||
assert(isRegister() && IsDef && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && IsDef && "Wrong MachineOperand accessor");
|
||||
IsDead = Val;
|
||||
}
|
||||
|
||||
void setIsEarlyClobber(bool Val = true) {
|
||||
assert(isRegister() && IsDef && "Wrong MachineOperand accessor");
|
||||
assert(isReg() && IsDef && "Wrong MachineOperand accessor");
|
||||
IsEarlyClobber = Val;
|
||||
}
|
||||
|
||||
@ -237,39 +248,39 @@ public:
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
||||
int64_t getImm() const {
|
||||
assert(isImmediate() && "Wrong MachineOperand accessor");
|
||||
assert(isImm() && "Wrong MachineOperand accessor");
|
||||
return Contents.ImmVal;
|
||||
}
|
||||
|
||||
const ConstantFP *getFPImm() const {
|
||||
assert(isFPImmediate() && "Wrong MachineOperand accessor");
|
||||
assert(isFPImm() && "Wrong MachineOperand accessor");
|
||||
return Contents.CFP;
|
||||
}
|
||||
|
||||
MachineBasicBlock *getMBB() const {
|
||||
assert(isMachineBasicBlock() && "Wrong MachineOperand accessor");
|
||||
assert(isMBB() && "Wrong MachineOperand accessor");
|
||||
return Contents.MBB;
|
||||
}
|
||||
|
||||
int getIndex() const {
|
||||
assert((isFrameIndex() || isConstantPoolIndex() || isJumpTableIndex()) &&
|
||||
assert((isFI() || isCPI() || isJTI()) &&
|
||||
"Wrong MachineOperand accessor");
|
||||
return Contents.OffsetedInfo.Val.Index;
|
||||
}
|
||||
|
||||
GlobalValue *getGlobal() const {
|
||||
assert(isGlobalAddress() && "Wrong MachineOperand accessor");
|
||||
assert(isGlobal() && "Wrong MachineOperand accessor");
|
||||
return Contents.OffsetedInfo.Val.GV;
|
||||
}
|
||||
|
||||
int getOffset() const {
|
||||
assert((isGlobalAddress() || isExternalSymbol() || isConstantPoolIndex()) &&
|
||||
assert((isGlobal() || isSymbol() || isCPI()) &&
|
||||
"Wrong MachineOperand accessor");
|
||||
return Contents.OffsetedInfo.Offset;
|
||||
}
|
||||
|
||||
const char *getSymbolName() const {
|
||||
assert(isExternalSymbol() && "Wrong MachineOperand accessor");
|
||||
assert(isSymbol() && "Wrong MachineOperand accessor");
|
||||
return Contents.OffsetedInfo.Val.SymbolName;
|
||||
}
|
||||
|
||||
@ -278,24 +289,24 @@ public:
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
||||
void setImm(int64_t immVal) {
|
||||
assert(isImmediate() && "Wrong MachineOperand mutator");
|
||||
assert(isImm() && "Wrong MachineOperand mutator");
|
||||
Contents.ImmVal = immVal;
|
||||
}
|
||||
|
||||
void setOffset(int Offset) {
|
||||
assert((isGlobalAddress() || isExternalSymbol() || isConstantPoolIndex()) &&
|
||||
assert((isGlobal() || isSymbol() || isCPI()) &&
|
||||
"Wrong MachineOperand accessor");
|
||||
Contents.OffsetedInfo.Offset = Offset;
|
||||
}
|
||||
|
||||
void setIndex(int Idx) {
|
||||
assert((isFrameIndex() || isConstantPoolIndex() || isJumpTableIndex()) &&
|
||||
assert((isFI() || isCPI() || isJTI()) &&
|
||||
"Wrong MachineOperand accessor");
|
||||
Contents.OffsetedInfo.Val.Index = Idx;
|
||||
}
|
||||
|
||||
void setMBB(MachineBasicBlock *MBB) {
|
||||
assert(isMachineBasicBlock() && "Wrong MachineOperand accessor");
|
||||
assert(isMBB() && "Wrong MachineOperand accessor");
|
||||
Contents.MBB = MBB;
|
||||
}
|
||||
|
||||
@ -407,7 +418,7 @@ private:
|
||||
/// or false if not. This can only be called for register operands that are
|
||||
/// part of a machine instruction.
|
||||
bool isOnRegUseList() const {
|
||||
assert(isRegister() && "Can only add reg operand to use lists");
|
||||
assert(isReg() && "Can only add reg operand to use lists");
|
||||
return Contents.Reg.Prev != 0;
|
||||
}
|
||||
|
||||
|
@ -1179,11 +1179,11 @@ void AsmPrinter::printInlineAsm(const MachineInstr *MI) const {
|
||||
|
||||
// Count the number of register definitions.
|
||||
unsigned NumDefs = 0;
|
||||
for (; MI->getOperand(NumDefs).isRegister() && MI->getOperand(NumDefs).isDef();
|
||||
for (; MI->getOperand(NumDefs).isReg() && MI->getOperand(NumDefs).isDef();
|
||||
++NumDefs)
|
||||
assert(NumDefs != NumOperands-1 && "No asm string?");
|
||||
|
||||
assert(MI->getOperand(NumDefs).isExternalSymbol() && "No asm string?");
|
||||
assert(MI->getOperand(NumDefs).isSymbol() && "No asm string?");
|
||||
|
||||
// Disassemble the AsmStr, printing out the literal pieces, the operands, etc.
|
||||
const char *AsmStr = MI->getOperand(NumDefs).getSymbolName();
|
||||
|
@ -1050,15 +1050,15 @@ public:
|
||||
}
|
||||
|
||||
// If advancing cfa.
|
||||
if (Dst.isRegister() && Dst.getRegister() == MachineLocation::VirtualFP) {
|
||||
if (!Src.isRegister()) {
|
||||
if (Src.getRegister() == MachineLocation::VirtualFP) {
|
||||
if (Dst.isReg() && Dst.getReg() == MachineLocation::VirtualFP) {
|
||||
if (!Src.isReg()) {
|
||||
if (Src.getReg() == MachineLocation::VirtualFP) {
|
||||
Asm->EmitInt8(DW_CFA_def_cfa_offset);
|
||||
Asm->EOL("DW_CFA_def_cfa_offset");
|
||||
} else {
|
||||
Asm->EmitInt8(DW_CFA_def_cfa);
|
||||
Asm->EOL("DW_CFA_def_cfa");
|
||||
Asm->EmitULEB128Bytes(RI->getDwarfRegNum(Src.getRegister(), isEH));
|
||||
Asm->EmitULEB128Bytes(RI->getDwarfRegNum(Src.getReg(), isEH));
|
||||
Asm->EOL("Register");
|
||||
}
|
||||
|
||||
@ -1069,18 +1069,18 @@ public:
|
||||
} else {
|
||||
assert(0 && "Machine move no supported yet.");
|
||||
}
|
||||
} else if (Src.isRegister() &&
|
||||
Src.getRegister() == MachineLocation::VirtualFP) {
|
||||
if (Dst.isRegister()) {
|
||||
} else if (Src.isReg() &&
|
||||
Src.getReg() == MachineLocation::VirtualFP) {
|
||||
if (Dst.isReg()) {
|
||||
Asm->EmitInt8(DW_CFA_def_cfa_register);
|
||||
Asm->EOL("DW_CFA_def_cfa_register");
|
||||
Asm->EmitULEB128Bytes(RI->getDwarfRegNum(Dst.getRegister(), isEH));
|
||||
Asm->EmitULEB128Bytes(RI->getDwarfRegNum(Dst.getReg(), isEH));
|
||||
Asm->EOL("Register");
|
||||
} else {
|
||||
assert(0 && "Machine move no supported yet.");
|
||||
}
|
||||
} else {
|
||||
unsigned Reg = RI->getDwarfRegNum(Src.getRegister(), isEH);
|
||||
unsigned Reg = RI->getDwarfRegNum(Src.getReg(), isEH);
|
||||
int Offset = Dst.getOffset() / stackGrowth;
|
||||
|
||||
if (Offset < 0) {
|
||||
@ -1409,10 +1409,10 @@ private:
|
||||
/// provided.
|
||||
void AddAddress(DIE *Die, unsigned Attribute,
|
||||
const MachineLocation &Location) {
|
||||
unsigned Reg = RI->getDwarfRegNum(Location.getRegister(), false);
|
||||
unsigned Reg = RI->getDwarfRegNum(Location.getReg(), false);
|
||||
DIEBlock *Block = new DIEBlock();
|
||||
|
||||
if (Location.isRegister()) {
|
||||
if (Location.isReg()) {
|
||||
if (Reg < 32) {
|
||||
AddUInt(Block, 0, DW_FORM_data1, DW_OP_reg0 + Reg);
|
||||
} else {
|
||||
|
@ -161,7 +161,7 @@ bool BranchFolder::OptimizeImpDefsBlock(MachineBasicBlock *MBB) {
|
||||
// See if it uses any of the implicitly defined registers.
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = I->getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (ImpDefRegs.count(Reg))
|
||||
@ -235,7 +235,7 @@ bool BranchFolder::runOnMachineFunction(MachineFunction &MF) {
|
||||
I != E; ++I)
|
||||
for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op) {
|
||||
MachineOperand &Op = I->getOperand(op);
|
||||
if (!Op.isJumpTableIndex()) continue;
|
||||
if (!Op.isJTI()) continue;
|
||||
unsigned NewIdx = JTMapping[Op.getIndex()];
|
||||
Op.setIndex(NewIdx);
|
||||
|
||||
|
@ -58,7 +58,7 @@ bool DeadMachineInstructionElim::isDead(MachineInstr *MI) const {
|
||||
// Examine each operand.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef()) {
|
||||
if (MO.isReg() && MO.isDef()) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (TargetRegisterInfo::isPhysicalRegister(Reg) ?
|
||||
LivePhysRegs[Reg] : !MRI->use_empty(Reg)) {
|
||||
@ -122,7 +122,7 @@ bool DeadMachineInstructionElim::runOnMachineFunction(MachineFunction &MF) {
|
||||
// Record the physreg defs.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef()) {
|
||||
if (MO.isReg() && MO.isDef()) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg != 0 && TargetRegisterInfo::isPhysicalRegister(Reg)) {
|
||||
LivePhysRegs.reset(Reg);
|
||||
@ -136,7 +136,7 @@ bool DeadMachineInstructionElim::runOnMachineFunction(MachineFunction &MF) {
|
||||
// both defined and used in the same instruction.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isUse()) {
|
||||
if (MO.isReg() && MO.isUse()) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg != 0 && TargetRegisterInfo::isPhysicalRegister(Reg)) {
|
||||
LivePhysRegs.set(Reg);
|
||||
|
@ -302,7 +302,7 @@ bool LiveIntervals::conflictsWithPhysRegDef(const LiveInterval &li,
|
||||
continue;
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& mop = MI->getOperand(i);
|
||||
if (!mop.isRegister())
|
||||
if (!mop.isReg())
|
||||
continue;
|
||||
unsigned PhysReg = mop.getReg();
|
||||
if (PhysReg == 0 || PhysReg == li.reg)
|
||||
@ -723,7 +723,7 @@ void LiveIntervals::computeIntervals() {
|
||||
for (int i = MI->getNumOperands() - 1; i >= 0; --i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
// handle register defs - build intervals
|
||||
if (MO.isRegister() && MO.getReg() && MO.isDef()) {
|
||||
if (MO.isReg() && MO.getReg() && MO.isDef()) {
|
||||
handleRegisterDef(MBB, MI, MIIndex, MO, i);
|
||||
}
|
||||
}
|
||||
@ -789,7 +789,7 @@ unsigned LiveIntervals::getReMatImplicitUse(const LiveInterval &li,
|
||||
unsigned RegOp = 0;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0 || Reg == li.reg)
|
||||
@ -876,7 +876,7 @@ bool LiveIntervals::isReMaterializable(const LiveInterval &li,
|
||||
unsigned ImpUse = 0;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0)
|
||||
continue;
|
||||
@ -1093,7 +1093,7 @@ void LiveIntervals::rewriteImplicitOps(const LiveInterval &li,
|
||||
// use operand. Make sure we rewrite that as well.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0 || TargetRegisterInfo::isPhysicalRegister(Reg))
|
||||
@ -1128,7 +1128,7 @@ rewriteInstructionForSpills(const LiveInterval &li, const VNInfo *VNI,
|
||||
RestartInstruction:
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& mop = MI->getOperand(i);
|
||||
if (!mop.isRegister())
|
||||
if (!mop.isReg())
|
||||
continue;
|
||||
unsigned Reg = mop.getReg();
|
||||
unsigned RegI = Reg;
|
||||
@ -1180,7 +1180,7 @@ rewriteInstructionForSpills(const LiveInterval &li, const VNInfo *VNI,
|
||||
Ops.push_back(i);
|
||||
for (unsigned j = i+1, e = MI->getNumOperands(); j != e; ++j) {
|
||||
const MachineOperand &MOj = MI->getOperand(j);
|
||||
if (!MOj.isRegister())
|
||||
if (!MOj.isReg())
|
||||
continue;
|
||||
unsigned RegJ = MOj.getReg();
|
||||
if (RegJ == 0 || TargetRegisterInfo::isPhysicalRegister(RegJ))
|
||||
@ -1618,7 +1618,7 @@ LiveIntervals::handleSpilledImpDefs(const LiveInterval &li, VirtRegMap &vrm,
|
||||
NewLIs.push_back(&getOrCreateInterval(NewVReg));
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == li.reg)
|
||||
if (MO.isReg() && MO.getReg() == li.reg)
|
||||
MO.setReg(NewVReg);
|
||||
}
|
||||
}
|
||||
@ -1662,7 +1662,7 @@ addIntervalsForSpillsFast(const LiveInterval &li,
|
||||
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& mop = MI->getOperand(i);
|
||||
if (!mop.isRegister() || mop.getReg() != li.reg) continue;
|
||||
if (!mop.isReg() || mop.getReg() != li.reg) continue;
|
||||
|
||||
HasUse |= MI->getOperand(i).isUse();
|
||||
HasDef |= MI->getOperand(i).isDef();
|
||||
@ -1916,7 +1916,7 @@ addIntervalsForSpills(const LiveInterval &li,
|
||||
CanFold = true;
|
||||
for (unsigned j = 0, ee = MI->getNumOperands(); j != ee; ++j) {
|
||||
MachineOperand &MO = MI->getOperand(j);
|
||||
if (!MO.isRegister() || MO.getReg() != VReg)
|
||||
if (!MO.isReg() || MO.getReg() != VReg)
|
||||
continue;
|
||||
|
||||
Ops.push_back(j);
|
||||
@ -1987,7 +1987,7 @@ addIntervalsForSpills(const LiveInterval &li,
|
||||
CanFold = true;
|
||||
for (unsigned j = 0, ee = MI->getNumOperands(); j != ee; ++j) {
|
||||
MachineOperand &MO = MI->getOperand(j);
|
||||
if (!MO.isRegister() || MO.getReg() != VReg)
|
||||
if (!MO.isReg() || MO.getReg() != VReg)
|
||||
continue;
|
||||
|
||||
if (MO.isDef()) {
|
||||
|
@ -558,7 +558,7 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &mf) {
|
||||
SmallVector<unsigned, 4> DefRegs;
|
||||
for (unsigned i = 0; i != NumOperandsToProcess; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg()) {
|
||||
if (MO.isReg() && MO.getReg()) {
|
||||
unsigned MOReg = MO.getReg();
|
||||
if (MO.isUse())
|
||||
UseRegs.push_back(MOReg);
|
||||
@ -672,7 +672,7 @@ void LiveVariables::replaceKillInstruction(unsigned Reg, MachineInstr *OldMI,
|
||||
void LiveVariables::removeVirtualRegistersKilled(MachineInstr *MI) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isKill()) {
|
||||
if (MO.isReg() && MO.isKill()) {
|
||||
MO.setIsKill(false);
|
||||
unsigned Reg = MO.getReg();
|
||||
if (TargetRegisterInfo::isVirtualRegister(Reg)) {
|
||||
|
@ -64,9 +64,9 @@ bool LowerSubregsInstructionPass::LowerExtract(MachineInstr *MI) {
|
||||
const TargetRegisterInfo &TRI = *MF.getTarget().getRegisterInfo();
|
||||
const TargetInstrInfo &TII = *MF.getTarget().getInstrInfo();
|
||||
|
||||
assert(MI->getOperand(0).isRegister() && MI->getOperand(0).isDef() &&
|
||||
MI->getOperand(1).isRegister() && MI->getOperand(1).isUse() &&
|
||||
MI->getOperand(2).isImmediate() && "Malformed extract_subreg");
|
||||
assert(MI->getOperand(0).isReg() && MI->getOperand(0).isDef() &&
|
||||
MI->getOperand(1).isReg() && MI->getOperand(1).isUse() &&
|
||||
MI->getOperand(2).isImm() && "Malformed extract_subreg");
|
||||
|
||||
unsigned DstReg = MI->getOperand(0).getReg();
|
||||
unsigned SuperReg = MI->getOperand(1).getReg();
|
||||
@ -102,10 +102,10 @@ bool LowerSubregsInstructionPass::LowerSubregToReg(MachineInstr *MI) {
|
||||
MachineFunction &MF = *MBB->getParent();
|
||||
const TargetRegisterInfo &TRI = *MF.getTarget().getRegisterInfo();
|
||||
const TargetInstrInfo &TII = *MF.getTarget().getInstrInfo();
|
||||
assert((MI->getOperand(0).isRegister() && MI->getOperand(0).isDef()) &&
|
||||
MI->getOperand(1).isImmediate() &&
|
||||
(MI->getOperand(2).isRegister() && MI->getOperand(2).isUse()) &&
|
||||
MI->getOperand(3).isImmediate() && "Invalid subreg_to_reg");
|
||||
assert((MI->getOperand(0).isReg() && MI->getOperand(0).isDef()) &&
|
||||
MI->getOperand(1).isImm() &&
|
||||
(MI->getOperand(2).isReg() && MI->getOperand(2).isUse()) &&
|
||||
MI->getOperand(3).isImm() && "Invalid subreg_to_reg");
|
||||
|
||||
unsigned DstReg = MI->getOperand(0).getReg();
|
||||
unsigned InsReg = MI->getOperand(2).getReg();
|
||||
@ -146,10 +146,10 @@ bool LowerSubregsInstructionPass::LowerInsert(MachineInstr *MI) {
|
||||
MachineFunction &MF = *MBB->getParent();
|
||||
const TargetRegisterInfo &TRI = *MF.getTarget().getRegisterInfo();
|
||||
const TargetInstrInfo &TII = *MF.getTarget().getInstrInfo();
|
||||
assert((MI->getOperand(0).isRegister() && MI->getOperand(0).isDef()) &&
|
||||
(MI->getOperand(1).isRegister() && MI->getOperand(1).isUse()) &&
|
||||
(MI->getOperand(2).isRegister() && MI->getOperand(2).isUse()) &&
|
||||
MI->getOperand(3).isImmediate() && "Invalid insert_subreg");
|
||||
assert((MI->getOperand(0).isReg() && MI->getOperand(0).isDef()) &&
|
||||
(MI->getOperand(1).isReg() && MI->getOperand(1).isUse()) &&
|
||||
(MI->getOperand(2).isReg() && MI->getOperand(2).isUse()) &&
|
||||
MI->getOperand(3).isImm() && "Invalid insert_subreg");
|
||||
|
||||
unsigned DstReg = MI->getOperand(0).getReg();
|
||||
unsigned SrcReg = MI->getOperand(1).getReg();
|
||||
|
@ -290,7 +290,7 @@ void MachineBasicBlock::ReplaceUsesOfBlockWith(MachineBasicBlock *Old,
|
||||
// Scan the operands of this machine instruction, replacing any uses of Old
|
||||
// with New.
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
||||
if (I->getOperand(i).isMachineBasicBlock() &&
|
||||
if (I->getOperand(i).isMBB() &&
|
||||
I->getOperand(i).getMBB() == Old)
|
||||
I->getOperand(i).setMBB(New);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ using namespace llvm;
|
||||
/// MachineRegisterInfo. If it is null, then the next/prev fields should be
|
||||
/// explicitly nulled out.
|
||||
void MachineOperand::AddRegOperandToRegInfo(MachineRegisterInfo *RegInfo) {
|
||||
assert(isRegister() && "Can only add reg operand to use lists");
|
||||
assert(isReg() && "Can only add reg operand to use lists");
|
||||
|
||||
// If the reginfo pointer is null, just explicitly null out or next/prev
|
||||
// pointers, to ensure they are not garbage.
|
||||
@ -92,7 +92,7 @@ void MachineOperand::setReg(unsigned Reg) {
|
||||
void MachineOperand::ChangeToImmediate(int64_t ImmVal) {
|
||||
// If this operand is currently a register operand, and if this is in a
|
||||
// function, deregister the operand from the register's use/def list.
|
||||
if (isRegister() && getParent() && getParent()->getParent() &&
|
||||
if (isReg() && getParent() && getParent()->getParent() &&
|
||||
getParent()->getParent()->getParent())
|
||||
RemoveRegOperandFromRegInfo();
|
||||
|
||||
@ -107,7 +107,7 @@ void MachineOperand::ChangeToRegister(unsigned Reg, bool isDef, bool isImp,
|
||||
bool isKill, bool isDead) {
|
||||
// If this operand is already a register operand, use setReg to update the
|
||||
// register's use/def lists.
|
||||
if (isRegister()) {
|
||||
if (isReg()) {
|
||||
assert(!isEarlyClobber());
|
||||
setReg(Reg);
|
||||
} else {
|
||||
@ -356,7 +356,7 @@ MachineInstr::~MachineInstr() {
|
||||
#ifndef NDEBUG
|
||||
for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
|
||||
assert(Operands[i].ParentMI == this && "ParentMI mismatch!");
|
||||
assert((!Operands[i].isRegister() || !Operands[i].isOnRegUseList()) &&
|
||||
assert((!Operands[i].isReg() || !Operands[i].isOnRegUseList()) &&
|
||||
"Reg operand def/use list corrupted");
|
||||
}
|
||||
#endif
|
||||
@ -376,7 +376,7 @@ MachineRegisterInfo *MachineInstr::getRegInfo() {
|
||||
/// operands already be on their use lists.
|
||||
void MachineInstr::RemoveRegOperandsFromUseLists() {
|
||||
for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
|
||||
if (Operands[i].isRegister())
|
||||
if (Operands[i].isReg())
|
||||
Operands[i].RemoveRegOperandFromRegInfo();
|
||||
}
|
||||
}
|
||||
@ -386,7 +386,7 @@ void MachineInstr::RemoveRegOperandsFromUseLists() {
|
||||
/// operands not be on their use lists yet.
|
||||
void MachineInstr::AddRegOperandsToUseLists(MachineRegisterInfo &RegInfo) {
|
||||
for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
|
||||
if (Operands[i].isRegister())
|
||||
if (Operands[i].isReg())
|
||||
Operands[i].AddRegOperandToRegInfo(&RegInfo);
|
||||
}
|
||||
}
|
||||
@ -397,7 +397,7 @@ void MachineInstr::AddRegOperandsToUseLists(MachineRegisterInfo &RegInfo) {
|
||||
/// an explicit operand it is added at the end of the explicit operand list
|
||||
/// (before the first implicit operand).
|
||||
void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
bool isImpReg = Op.isRegister() && Op.isImplicit();
|
||||
bool isImpReg = Op.isReg() && Op.isImplicit();
|
||||
assert((isImpReg || !OperandsComplete()) &&
|
||||
"Trying to add an operand to a machine instr that is already done!");
|
||||
|
||||
@ -413,7 +413,7 @@ void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
Operands.back().ParentMI = this;
|
||||
|
||||
// If the operand is a register, update the operand's use list.
|
||||
if (Op.isRegister())
|
||||
if (Op.isReg())
|
||||
Operands.back().AddRegOperandToRegInfo(getRegInfo());
|
||||
return;
|
||||
}
|
||||
@ -433,7 +433,7 @@ void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
|
||||
// Do explicitly set the reginfo for this operand though, to ensure the
|
||||
// next/prev fields are properly nulled out.
|
||||
if (Operands[OpNo].isRegister())
|
||||
if (Operands[OpNo].isReg())
|
||||
Operands[OpNo].AddRegOperandToRegInfo(0);
|
||||
|
||||
} else if (Operands.size()+1 <= Operands.capacity()) {
|
||||
@ -446,7 +446,7 @@ void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
// list, just remove the implicit operands, add the operand, then re-add all
|
||||
// the rest of the operands.
|
||||
for (unsigned i = OpNo, e = Operands.size(); i != e; ++i) {
|
||||
assert(Operands[i].isRegister() && "Should only be an implicit reg!");
|
||||
assert(Operands[i].isReg() && "Should only be an implicit reg!");
|
||||
Operands[i].RemoveRegOperandFromRegInfo();
|
||||
}
|
||||
|
||||
@ -454,12 +454,12 @@ void MachineInstr::addOperand(const MachineOperand &Op) {
|
||||
Operands.insert(Operands.begin()+OpNo, Op);
|
||||
Operands[OpNo].ParentMI = this;
|
||||
|
||||
if (Operands[OpNo].isRegister())
|
||||
if (Operands[OpNo].isReg())
|
||||
Operands[OpNo].AddRegOperandToRegInfo(RegInfo);
|
||||
|
||||
// Re-add all the implicit ops.
|
||||
for (unsigned i = OpNo+1, e = Operands.size(); i != e; ++i) {
|
||||
assert(Operands[i].isRegister() && "Should only be an implicit reg!");
|
||||
assert(Operands[i].isReg() && "Should only be an implicit reg!");
|
||||
Operands[i].AddRegOperandToRegInfo(RegInfo);
|
||||
}
|
||||
} else {
|
||||
@ -485,7 +485,7 @@ void MachineInstr::RemoveOperand(unsigned OpNo) {
|
||||
// Special case removing the last one.
|
||||
if (OpNo == Operands.size()-1) {
|
||||
// If needed, remove from the reg def/use list.
|
||||
if (Operands.back().isRegister() && Operands.back().isOnRegUseList())
|
||||
if (Operands.back().isReg() && Operands.back().isOnRegUseList())
|
||||
Operands.back().RemoveRegOperandFromRegInfo();
|
||||
|
||||
Operands.pop_back();
|
||||
@ -498,7 +498,7 @@ void MachineInstr::RemoveOperand(unsigned OpNo) {
|
||||
MachineRegisterInfo *RegInfo = getRegInfo();
|
||||
if (RegInfo) {
|
||||
for (unsigned i = OpNo, e = Operands.size(); i != e; ++i) {
|
||||
if (Operands[i].isRegister())
|
||||
if (Operands[i].isReg())
|
||||
Operands[i].RemoveRegOperandFromRegInfo();
|
||||
}
|
||||
}
|
||||
@ -507,7 +507,7 @@ void MachineInstr::RemoveOperand(unsigned OpNo) {
|
||||
|
||||
if (RegInfo) {
|
||||
for (unsigned i = OpNo, e = Operands.size(); i != e; ++i) {
|
||||
if (Operands[i].isRegister())
|
||||
if (Operands[i].isReg())
|
||||
Operands[i].AddRegOperandToRegInfo(RegInfo);
|
||||
}
|
||||
}
|
||||
@ -561,7 +561,7 @@ unsigned MachineInstr::getNumExplicitOperands() const {
|
||||
|
||||
for (unsigned e = getNumOperands(); NumOperands != e; ++NumOperands) {
|
||||
const MachineOperand &MO = getOperand(NumOperands);
|
||||
if (!MO.isRegister() || !MO.isImplicit())
|
||||
if (!MO.isReg() || !MO.isImplicit())
|
||||
NumOperands++;
|
||||
}
|
||||
return NumOperands;
|
||||
@ -589,7 +589,7 @@ int MachineInstr::findRegisterUseOperandIdx(unsigned Reg, bool isKill,
|
||||
const TargetRegisterInfo *TRI) const {
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned MOReg = MO.getReg();
|
||||
if (!MOReg)
|
||||
@ -613,7 +613,7 @@ int MachineInstr::findRegisterDefOperandIdx(unsigned Reg, bool isDead,
|
||||
const TargetRegisterInfo *TRI) const {
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isDef())
|
||||
if (!MO.isReg() || !MO.isDef())
|
||||
continue;
|
||||
unsigned MOReg = MO.getReg();
|
||||
if (MOReg == Reg ||
|
||||
@ -647,7 +647,7 @@ bool MachineInstr::isRegReDefinedByTwoAddr(unsigned Reg, unsigned DefIdx) const{
|
||||
const TargetInstrDesc &TID = getDesc();
|
||||
for (unsigned i = 0, e = TID.getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = getOperand(i);
|
||||
if (MO.isRegister() && MO.isUse() && MO.getReg() == Reg &&
|
||||
if (MO.isReg() && MO.isUse() && MO.getReg() == Reg &&
|
||||
TID.getOperandConstraint(i, TOI::TIED_TO) == (int)DefIdx)
|
||||
return true;
|
||||
}
|
||||
@ -659,7 +659,7 @@ bool MachineInstr::isRegReDefinedByTwoAddr(unsigned Reg, unsigned DefIdx) const{
|
||||
void MachineInstr::copyKillDeadInfo(const MachineInstr *MI) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || (!MO.isKill() && !MO.isDead()))
|
||||
if (!MO.isReg() || (!MO.isKill() && !MO.isDead()))
|
||||
continue;
|
||||
for (unsigned j = 0, ee = getNumOperands(); j != ee; ++j) {
|
||||
MachineOperand &MOp = getOperand(j);
|
||||
@ -722,7 +722,7 @@ bool MachineInstr::isSafeToReMat(const TargetInstrInfo *TII, unsigned DstReg) {
|
||||
return false;
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
// FIXME: For now, do not remat any instruction with register operands.
|
||||
// Later on, we can loosen the restriction is the register operands have
|
||||
@ -770,7 +770,7 @@ void MachineInstr::dump() const {
|
||||
void MachineInstr::print(std::ostream &OS, const TargetMachine *TM) const {
|
||||
// Specialize printing if op#0 is definition
|
||||
unsigned StartOp = 0;
|
||||
if (getNumOperands() && getOperand(0).isRegister() && getOperand(0).isDef()) {
|
||||
if (getNumOperands() && getOperand(0).isReg() && getOperand(0).isDef()) {
|
||||
getOperand(0).print(OS, TM);
|
||||
OS << " = ";
|
||||
++StartOp; // Don't print this operand again!
|
||||
@ -831,7 +831,7 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg,
|
||||
SmallVector<unsigned,4> DeadOps;
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (!Reg)
|
||||
@ -886,7 +886,7 @@ bool MachineInstr::addRegisterDead(unsigned IncomingReg,
|
||||
SmallVector<unsigned,4> DeadOps;
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isDef())
|
||||
if (!MO.isReg() || !MO.isDef())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (!Reg)
|
||||
|
@ -248,7 +248,7 @@ bool MachineLICM::IsLoopInvariantInst(MachineInstr &I) {
|
||||
for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = I.getOperand(i);
|
||||
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
|
||||
if (MO.isDef() && TargetRegisterInfo::isPhysicalRegister(MO.getReg()))
|
||||
|
@ -155,7 +155,7 @@ bool MachineSinking::SinkInstruction(MachineInstr *MI, bool &SawStore) {
|
||||
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister()) continue; // Ignore non-register operands.
|
||||
if (!MO.isReg()) continue; // Ignore non-register operands.
|
||||
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0) continue;
|
||||
|
@ -560,7 +560,7 @@ void PEI::replaceFrameIndices(MachineFunction &Fn) {
|
||||
bool DoIncr = true;
|
||||
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i)
|
||||
if (MI->getOperand(i).isFrameIndex()) {
|
||||
if (MI->getOperand(i).isFI()) {
|
||||
// Some instructions (e.g. inline asm instructions) can have
|
||||
// multiple frame indices and/or cause eliminateFrameIndex
|
||||
// to insert more than one instruction. We need the register
|
||||
|
@ -560,7 +560,7 @@ void RABigBlock::FillVRegReadTable(MachineBasicBlock &MBB) {
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
// look for vreg reads..
|
||||
if (MO.isRegister() && !MO.isDef() && MO.getReg() &&
|
||||
if (MO.isReg() && !MO.isDef() && MO.getReg() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
// ..and add them to the read table.
|
||||
VRegTimes* &Times = VRegReadTable[MO.getReg()];
|
||||
@ -589,7 +589,7 @@ void RABigBlock::FillVRegReadTable(MachineBasicBlock &MBB) {
|
||||
static bool isReadModWriteImplicitKill(MachineInstr *MI, unsigned Reg) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
if (MO.isReg() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
MO.isDef() && !MO.isDead())
|
||||
return true;
|
||||
}
|
||||
@ -601,7 +601,7 @@ static bool isReadModWriteImplicitKill(MachineInstr *MI, unsigned Reg) {
|
||||
static bool isReadModWriteImplicitDef(MachineInstr *MI, unsigned Reg) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
if (MO.isReg() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
!MO.isDef() && MO.isKill())
|
||||
return true;
|
||||
}
|
||||
@ -653,7 +653,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
SmallVector<unsigned, 8> Kills;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isKill()) {
|
||||
if (MO.isReg() && MO.isKill()) {
|
||||
if (!MO.isImplicit())
|
||||
Kills.push_back(MO.getReg());
|
||||
else if (!isReadModWriteImplicitKill(MI, MO.getReg()))
|
||||
@ -673,7 +673,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
// here we are looking for only used operands (never def&use)
|
||||
if (MO.isRegister() && !MO.isDef() && MO.getReg() && !MO.isImplicit() &&
|
||||
if (MO.isReg() && !MO.isDef() && MO.getReg() && !MO.isImplicit() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg()))
|
||||
MI = reloadVirtReg(MBB, MI, i);
|
||||
}
|
||||
@ -719,7 +719,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
// are defined, and marking explicit destinations in the PhysRegsUsed map.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && !MO.isImplicit() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.isDef() && !MO.isImplicit() && MO.getReg() &&
|
||||
TargetRegisterInfo::isPhysicalRegister(MO.getReg())) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (PhysRegsUsed[Reg] == -2) continue; // Something like ESP.
|
||||
@ -764,7 +764,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
SmallVector<unsigned, 8> DeadDefs;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDead())
|
||||
if (MO.isReg() && MO.isDead())
|
||||
DeadDefs.push_back(MO.getReg());
|
||||
}
|
||||
|
||||
@ -775,7 +775,7 @@ void RABigBlock::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
//
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.isDef() && MO.getReg() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned DestVirtReg = MO.getReg();
|
||||
unsigned DestPhysReg;
|
||||
|
@ -521,7 +521,7 @@ MachineInstr *RALocal::reloadVirtReg(MachineBasicBlock &MBB, MachineInstr *MI,
|
||||
static bool isReadModWriteImplicitKill(MachineInstr *MI, unsigned Reg) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
if (MO.isReg() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
MO.isDef() && !MO.isDead())
|
||||
return true;
|
||||
}
|
||||
@ -533,7 +533,7 @@ static bool isReadModWriteImplicitKill(MachineInstr *MI, unsigned Reg) {
|
||||
static bool isReadModWriteImplicitDef(MachineInstr *MI, unsigned Reg) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
if (MO.isReg() && MO.getReg() == Reg && MO.isImplicit() &&
|
||||
!MO.isDef() && MO.isKill())
|
||||
return true;
|
||||
}
|
||||
@ -575,7 +575,7 @@ void RALocal::ComputeLocalLiveness(MachineBasicBlock& MBB) {
|
||||
// them for later. Also, we have to process these
|
||||
// _before_ processing the defs, since an instr
|
||||
// uses regs before it defs them.
|
||||
if (MO.isRegister() && MO.getReg() && MO.isUse())
|
||||
if (MO.isReg() && MO.getReg() && MO.isUse())
|
||||
LastUseDef[MO.getReg()] = std::make_pair(I, i);
|
||||
}
|
||||
|
||||
@ -584,7 +584,7 @@ void RALocal::ComputeLocalLiveness(MachineBasicBlock& MBB) {
|
||||
// Defs others than 2-addr redefs _do_ trigger flag changes:
|
||||
// - A def followed by a def is dead
|
||||
// - A use followed by a def is a kill
|
||||
if (MO.isRegister() && MO.getReg() && MO.isDef()) {
|
||||
if (MO.isReg() && MO.getReg() && MO.isDef()) {
|
||||
DenseMap<unsigned, std::pair<MachineInstr*, unsigned> >::iterator
|
||||
last = LastUseDef.find(MO.getReg());
|
||||
if (last != LastUseDef.end()) {
|
||||
@ -711,7 +711,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
SmallVector<unsigned, 8> Kills;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isKill()) {
|
||||
if (MO.isReg() && MO.isKill()) {
|
||||
if (!MO.isImplicit())
|
||||
Kills.push_back(MO.getReg());
|
||||
else if (!isReadModWriteImplicitKill(MI, MO.getReg()))
|
||||
@ -729,7 +729,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
if (MI->getOpcode()==TargetInstrInfo::INLINEASM) {
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && MO.isEarlyClobber() &&
|
||||
if (MO.isReg() && MO.isDef() && MO.isEarlyClobber() &&
|
||||
MO.getReg()) {
|
||||
if (TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned DestVirtReg = MO.getReg();
|
||||
@ -780,7 +780,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
for (unsigned i = 0; i != MI->getNumOperands(); ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
// here we are looking for only used operands (never def&use)
|
||||
if (MO.isRegister() && !MO.isDef() && MO.getReg() && !MO.isImplicit() &&
|
||||
if (MO.isReg() && !MO.isDef() && MO.getReg() && !MO.isImplicit() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg()))
|
||||
MI = reloadVirtReg(MBB, MI, i);
|
||||
}
|
||||
@ -826,7 +826,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
// are defined, and marking explicit destinations in the PhysRegsUsed map.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && !MO.isImplicit() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.isDef() && !MO.isImplicit() && MO.getReg() &&
|
||||
!MO.isEarlyClobber() &&
|
||||
TargetRegisterInfo::isPhysicalRegister(MO.getReg())) {
|
||||
unsigned Reg = MO.getReg();
|
||||
@ -877,7 +877,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
SmallVector<unsigned, 8> DeadDefs;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDead())
|
||||
if (MO.isReg() && MO.isDead())
|
||||
DeadDefs.push_back(MO.getReg());
|
||||
}
|
||||
|
||||
@ -888,7 +888,7 @@ void RALocal::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
//
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand& MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.isDef() && MO.getReg() &&
|
||||
!MO.isEarlyClobber() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned DestVirtReg = MO.getReg();
|
||||
|
@ -265,7 +265,7 @@ void PBQPRegAlloc::calcSpillCosts() {
|
||||
const MachineOperand &mo = instr->getOperand(opNo);
|
||||
|
||||
// We're not interested in non-registers...
|
||||
if (!mo.isRegister())
|
||||
if (!mo.isReg())
|
||||
continue;
|
||||
|
||||
unsigned moReg = mo.getReg();
|
||||
|
@ -190,7 +190,7 @@ void RegAllocSimple::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
for (int i = MI->getNumOperands() - 1; i >= 0; --i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
|
||||
if (MO.isRegister() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.getReg() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned virtualReg = (unsigned) MO.getReg();
|
||||
DOUT << "op: " << MO << "\n";
|
||||
@ -209,7 +209,7 @@ void RegAllocSimple::AllocateBasicBlock(MachineBasicBlock &MBB) {
|
||||
// must be same register number as the source operand that is
|
||||
// tied to. This maps a = b + c into b = b + c, and saves b into
|
||||
// a's spot.
|
||||
assert(MI->getOperand(TiedOp).isRegister() &&
|
||||
assert(MI->getOperand(TiedOp).isReg() &&
|
||||
MI->getOperand(TiedOp).getReg() &&
|
||||
MI->getOperand(TiedOp).isUse() &&
|
||||
"Two address instruction invalid!");
|
||||
|
@ -35,7 +35,7 @@ static bool RedefinesSuperRegPart(const MachineInstr *MI, unsigned SubReg,
|
||||
bool SeenSuperDef = false;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
if (TRI->isSuperRegister(SubReg, MO.getReg())) {
|
||||
if (MO.isUse())
|
||||
@ -51,7 +51,7 @@ static bool RedefinesSuperRegPart(const MachineInstr *MI, unsigned SubReg,
|
||||
static bool RedefinesSuperRegPart(const MachineInstr *MI,
|
||||
const MachineOperand &MO,
|
||||
const TargetRegisterInfo *TRI) {
|
||||
assert(MO.isRegister() && MO.isDef() && "Not a register def!");
|
||||
assert(MO.isReg() && MO.isDef() && "Not a register def!");
|
||||
return RedefinesSuperRegPart(MI, MO.getReg(), TRI);
|
||||
}
|
||||
|
||||
@ -194,7 +194,7 @@ void RegScavenger::forward() {
|
||||
BitVector ChangedRegs(NumPhysRegs);
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
|
||||
unsigned Reg = MO.getReg();
|
||||
@ -228,7 +228,7 @@ void RegScavenger::forward() {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
|
||||
if (!MO.isRegister() || !MO.isDef())
|
||||
if (!MO.isReg() || !MO.isDef())
|
||||
continue;
|
||||
|
||||
unsigned Reg = MO.getReg();
|
||||
@ -270,7 +270,7 @@ void RegScavenger::backward() {
|
||||
const TargetInstrDesc &TID = MI->getDesc();
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isDef())
|
||||
if (!MO.isReg() || !MO.isDef())
|
||||
continue;
|
||||
// Skip two-address destination operand.
|
||||
if (TID.findTiedToSrcOperand(i) != -1)
|
||||
@ -285,7 +285,7 @@ void RegScavenger::backward() {
|
||||
BitVector ChangedRegs(NumPhysRegs);
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0)
|
||||
@ -378,7 +378,7 @@ unsigned RegScavenger::scavengeRegister(const TargetRegisterClass *RC,
|
||||
// Exclude all the registers being used by the instruction.
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = I->getOperand(i);
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
Candidates.reset(MO.getReg());
|
||||
}
|
||||
|
||||
|
@ -466,7 +466,7 @@ bool SimpleRegisterCoalescing::ReMaterializeTrivialDef(LiveInterval &SrcInt,
|
||||
for (unsigned i = CopyMI->getDesc().getNumOperands(),
|
||||
e = CopyMI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = CopyMI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isImplicit())
|
||||
if (MO.isReg() && MO.isImplicit())
|
||||
NewMI->addOperand(MO);
|
||||
if (MO.isDef() && li_->hasInterval(MO.getReg())) {
|
||||
unsigned Reg = MO.getReg();
|
||||
@ -875,7 +875,7 @@ void SimpleRegisterCoalescing::RemoveCopiesFromValNo(LiveInterval &li,
|
||||
// Each use MI may have multiple uses of this register. Change them all.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == li.reg)
|
||||
if (MO.isReg() && MO.getReg() == li.reg)
|
||||
MO.setReg(DstReg);
|
||||
}
|
||||
JoinedCopies.insert(MI);
|
||||
@ -2160,7 +2160,7 @@ SimpleRegisterCoalescing::lastRegisterUse(unsigned Start, unsigned End,
|
||||
if (!(tii_->isMoveInstr(*MI, SrcReg, DstReg) && SrcReg == DstReg))
|
||||
for (unsigned i = 0, NumOps = MI->getNumOperands(); i != NumOps; ++i) {
|
||||
MachineOperand &Use = MI->getOperand(i);
|
||||
if (Use.isRegister() && Use.isUse() && Use.getReg() &&
|
||||
if (Use.isReg() && Use.isUse() && Use.getReg() &&
|
||||
tri_->regsOverlap(Use.getReg(), Reg)) {
|
||||
UseIdx = e;
|
||||
return &Use;
|
||||
@ -2298,7 +2298,7 @@ bool SimpleRegisterCoalescing::runOnMachineFunction(MachineFunction &fn) {
|
||||
bool isDead = true;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister() || MO.isDead())
|
||||
if (!MO.isReg() || MO.isDead())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (TargetRegisterInfo::isPhysicalRegister(Reg) ||
|
||||
@ -2333,7 +2333,7 @@ bool SimpleRegisterCoalescing::runOnMachineFunction(MachineFunction &fn) {
|
||||
SmallSet<unsigned, 4> UniqueUses;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &mop = MI->getOperand(i);
|
||||
if (mop.isRegister() && mop.getReg() &&
|
||||
if (mop.isReg() && mop.getReg() &&
|
||||
TargetRegisterInfo::isVirtualRegister(mop.getReg())) {
|
||||
unsigned reg = mop.getReg();
|
||||
// Multiple uses of reg by the same instruction. It should not
|
||||
|
@ -220,7 +220,7 @@ bool StackSlotColoring::ColorSlots(MachineFunction &MF) {
|
||||
MachineInstr &MI = *MII;
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isFrameIndex())
|
||||
if (!MO.isFI())
|
||||
continue;
|
||||
int FI = MO.getIndex();
|
||||
if (FI < 0)
|
||||
|
@ -812,7 +812,7 @@ void StrongPHIElimination::InsertCopies(MachineDomTreeNode* MDTN,
|
||||
continue;
|
||||
|
||||
for (unsigned i = 0; i < I->getNumOperands(); ++i)
|
||||
if (I->getOperand(i).isRegister() &&
|
||||
if (I->getOperand(i).isReg() &&
|
||||
Stacks[I->getOperand(i).getReg()].size()) {
|
||||
// Remove the live range for the old vreg.
|
||||
LiveInterval& OldInt = LI.getInterval(I->getOperand(i).getReg());
|
||||
|
@ -22,7 +22,7 @@ using namespace llvm;
|
||||
// operand 1 and 2.
|
||||
MachineInstr *TargetInstrInfoImpl::commuteInstruction(MachineInstr *MI,
|
||||
bool NewMI) const {
|
||||
assert(MI->getOperand(1).isRegister() && MI->getOperand(2).isRegister() &&
|
||||
assert(MI->getOperand(1).isReg() && MI->getOperand(2).isReg() &&
|
||||
"This only knows how to commute register operands so far");
|
||||
unsigned Reg1 = MI->getOperand(1).getReg();
|
||||
unsigned Reg2 = MI->getOperand(2).getReg();
|
||||
@ -64,7 +64,7 @@ MachineInstr *TargetInstrInfoImpl::commuteInstruction(MachineInstr *MI,
|
||||
/// two-address instruction.
|
||||
bool TargetInstrInfoImpl::CommuteChangesDestination(MachineInstr *MI,
|
||||
unsigned &OpIdx) const{
|
||||
assert(MI->getOperand(1).isRegister() && MI->getOperand(2).isRegister() &&
|
||||
assert(MI->getOperand(1).isReg() && MI->getOperand(2).isReg() &&
|
||||
"This only knows how to commute register operands so far");
|
||||
if (MI->getOperand(0).getReg() == MI->getOperand(1).getReg()) {
|
||||
// Must be two address instruction!
|
||||
@ -87,13 +87,13 @@ bool TargetInstrInfoImpl::PredicateInstruction(MachineInstr *MI,
|
||||
for (unsigned j = 0, i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
if (TID.OpInfo[i].isPredicate()) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
MO.setReg(Pred[j].getReg());
|
||||
MadeChange = true;
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
MO.setImm(Pred[j].getImm());
|
||||
MadeChange = true;
|
||||
} else if (MO.isMachineBasicBlock()) {
|
||||
} else if (MO.isMBB()) {
|
||||
MO.setMBB(Pred[j].getMBB());
|
||||
MadeChange = true;
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ bool TwoAddressInstructionPass::Sink3AddrInstruction(MachineBasicBlock *MBB,
|
||||
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
unsigned MOReg = MO.getReg();
|
||||
if (!MOReg)
|
||||
@ -158,7 +158,7 @@ bool TwoAddressInstructionPass::Sink3AddrInstruction(MachineBasicBlock *MBB,
|
||||
++NumVisited;
|
||||
for (unsigned i = 0, e = OtherMI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = OtherMI->getOperand(i);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
unsigned MOReg = MO.getReg();
|
||||
if (!MOReg)
|
||||
@ -200,7 +200,7 @@ static bool isTwoAddrUse(MachineInstr *UseMI, unsigned Reg) {
|
||||
const TargetInstrDesc &TID = UseMI->getDesc();
|
||||
for (unsigned i = 0, e = TID.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = UseMI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == Reg &&
|
||||
if (MO.isReg() && MO.getReg() == Reg &&
|
||||
(MO.isDef() || TID.getOperandConstraint(i, TOI::TIED_TO) != -1))
|
||||
// Earlier use is a two-address one.
|
||||
return true;
|
||||
@ -292,7 +292,7 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
|
||||
|
||||
FirstTied = false;
|
||||
|
||||
assert(mi->getOperand(si).isRegister() && mi->getOperand(si).getReg() &&
|
||||
assert(mi->getOperand(si).isReg() && mi->getOperand(si).getReg() &&
|
||||
mi->getOperand(si).isUse() && "two address instruction invalid");
|
||||
|
||||
// If the two operands are the same we just remove the use
|
||||
@ -316,7 +316,7 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
|
||||
// should never occur because we are in SSA form.
|
||||
for (unsigned i = 0; i != mi->getNumOperands(); ++i)
|
||||
assert((int)i == ti ||
|
||||
!mi->getOperand(i).isRegister() ||
|
||||
!mi->getOperand(i).isReg() ||
|
||||
mi->getOperand(i).getReg() != regA);
|
||||
#endif
|
||||
|
||||
@ -330,7 +330,7 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
|
||||
// and C joinable.
|
||||
// FIXME: This code also works for A := B op C instructions.
|
||||
if (TID.isCommutable() && mi->getNumOperands() >= 3) {
|
||||
assert(mi->getOperand(3-si).isRegister() &&
|
||||
assert(mi->getOperand(3-si).isReg() &&
|
||||
"Not a proper commutative instruction!");
|
||||
unsigned regC = mi->getOperand(3-si).getReg();
|
||||
|
||||
@ -433,7 +433,7 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &MF) {
|
||||
|
||||
// Replace all occurences of regB with regA.
|
||||
for (unsigned i = 0, e = mi->getNumOperands(); i != e; ++i) {
|
||||
if (mi->getOperand(i).isRegister() &&
|
||||
if (mi->getOperand(i).isReg() &&
|
||||
mi->getOperand(i).getReg() == regB)
|
||||
mi->getOperand(i).setReg(regA);
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ bool UnreachableMachineBlockElim::runOnMachineFunction(MachineFunction &F) {
|
||||
while (start != succ->end() &&
|
||||
start->getOpcode() == TargetInstrInfo::PHI) {
|
||||
for (unsigned i = start->getNumOperands() - 1; i >= 2; i-=2)
|
||||
if (start->getOperand(i).isMachineBasicBlock() &&
|
||||
if (start->getOperand(i).isMBB() &&
|
||||
start->getOperand(i).getMBB() == BB) {
|
||||
start->RemoveOperand(i);
|
||||
start->RemoveOperand(i-1);
|
||||
|
@ -182,7 +182,7 @@ void VirtRegMap::virtFolded(unsigned VirtReg, MachineInstr *MI, ModRef MRInfo) {
|
||||
void VirtRegMap::RemoveMachineInstrFromMaps(MachineInstr *MI) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (!MO.isFrameIndex())
|
||||
if (!MO.isFI())
|
||||
continue;
|
||||
int FI = MO.getIndex();
|
||||
if (MF.getFrameInfo()->isFixedObjectIndex(FI))
|
||||
@ -259,7 +259,7 @@ bool SimpleSpiller::runOnMachineFunction(MachineFunction &MF, VirtRegMap &VRM) {
|
||||
MachineInstr &MI = *MII;
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg()) {
|
||||
if (MO.isReg() && MO.getReg()) {
|
||||
if (TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned VirtReg = MO.getReg();
|
||||
unsigned SubIdx = MO.getSubReg();
|
||||
@ -560,7 +560,7 @@ static void InvalidateKills(MachineInstr &MI, BitVector &RegKills,
|
||||
SmallVector<unsigned, 2> *KillRegs = NULL) {
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse() || !MO.isKill())
|
||||
if (!MO.isReg() || !MO.isUse() || !MO.isKill())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (TargetRegisterInfo::isVirtualRegister(Reg))
|
||||
@ -599,7 +599,7 @@ static bool InvalidateRegDef(MachineBasicBlock::iterator I,
|
||||
MachineOperand *DefOp = NULL;
|
||||
for (unsigned i = 0, e = DefMI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = DefMI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef()) {
|
||||
if (MO.isReg() && MO.isDef()) {
|
||||
if (MO.getReg() == Reg)
|
||||
DefOp = &MO;
|
||||
else if (!MO.isDead())
|
||||
@ -616,7 +616,7 @@ static bool InvalidateRegDef(MachineBasicBlock::iterator I,
|
||||
MachineInstr *NMI = I;
|
||||
for (unsigned j = 0, ee = NMI->getNumOperands(); j != ee; ++j) {
|
||||
MachineOperand &MO = NMI->getOperand(j);
|
||||
if (!MO.isRegister() || MO.getReg() != Reg)
|
||||
if (!MO.isReg() || MO.getReg() != Reg)
|
||||
continue;
|
||||
if (MO.isUse())
|
||||
FoundUse = true;
|
||||
@ -639,7 +639,7 @@ static void UpdateKills(MachineInstr &MI, BitVector &RegKills,
|
||||
const TargetInstrDesc &TID = MI.getDesc();
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (Reg == 0)
|
||||
@ -664,7 +664,7 @@ static void UpdateKills(MachineInstr &MI, BitVector &RegKills,
|
||||
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isRegister() || !MO.isDef())
|
||||
if (!MO.isReg() || !MO.isDef())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
RegKills.reset(Reg);
|
||||
@ -684,7 +684,7 @@ static void ReMaterialize(MachineBasicBlock &MBB,
|
||||
MachineInstr *NewMI = prior(MII);
|
||||
for (unsigned i = 0, e = NewMI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = NewMI->getOperand(i);
|
||||
if (!MO.isRegister() || MO.getReg() == 0)
|
||||
if (!MO.isReg() || MO.getReg() == 0)
|
||||
continue;
|
||||
unsigned VirtReg = MO.getReg();
|
||||
if (TargetRegisterInfo::isPhysicalRegister(VirtReg))
|
||||
@ -933,7 +933,7 @@ bool LocalSpiller::PrepForUnfoldOpti(MachineBasicBlock &MBB,
|
||||
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isRegister() || MO.getReg() == 0 || !MO.isUse())
|
||||
if (!MO.isReg() || MO.getReg() == 0 || !MO.isUse())
|
||||
continue;
|
||||
unsigned VirtReg = MO.getReg();
|
||||
if (TargetRegisterInfo::isPhysicalRegister(VirtReg) || MO.getSubReg())
|
||||
@ -1033,7 +1033,7 @@ bool LocalSpiller::CommuteToFoldReload(MachineBasicBlock &MBB,
|
||||
int DefIdx = TID.getOperandConstraint(UseIdx, TOI::TIED_TO);
|
||||
if (DefIdx == -1)
|
||||
return false;
|
||||
assert(DefMI->getOperand(DefIdx).isRegister() &&
|
||||
assert(DefMI->getOperand(DefIdx).isReg() &&
|
||||
DefMI->getOperand(DefIdx).getReg() == SrcReg);
|
||||
|
||||
// Now commute def instruction.
|
||||
@ -1176,7 +1176,7 @@ void LocalSpiller::TransferDeadness(MachineBasicBlock *MBB, unsigned CurDist,
|
||||
MachineOperand *LastUD = NULL;
|
||||
for (unsigned i = 0, e = LastUDMI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = LastUDMI->getOperand(i);
|
||||
if (!MO.isRegister() || MO.getReg() != Reg)
|
||||
if (!MO.isReg() || MO.getReg() != Reg)
|
||||
continue;
|
||||
if (!LastUD || (LastUD->isUse() && MO.isDef()))
|
||||
LastUD = &MO;
|
||||
@ -1315,7 +1315,7 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) {
|
||||
SmallVector<unsigned, 4> VirtUseOps;
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!MO.isRegister() || MO.getReg() == 0)
|
||||
if (!MO.isReg() || MO.getReg() == 0)
|
||||
continue; // Ignore non-register operands.
|
||||
|
||||
unsigned VirtReg = MO.getReg();
|
||||
@ -1395,7 +1395,7 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) {
|
||||
bool CanReuse = true;
|
||||
int ti = TID.getOperandConstraint(i, TOI::TIED_TO);
|
||||
if (ti != -1 &&
|
||||
MI.getOperand(ti).isRegister() &&
|
||||
MI.getOperand(ti).isReg() &&
|
||||
MI.getOperand(ti).getReg() == VirtReg) {
|
||||
// Okay, we have a two address operand. We can reuse this physreg as
|
||||
// long as we are allowed to clobber the value and there isn't an
|
||||
@ -1725,7 +1725,7 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) {
|
||||
// Process all of the spilled defs.
|
||||
for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI.getOperand(i);
|
||||
if (!(MO.isRegister() && MO.getReg() && MO.isDef()))
|
||||
if (!(MO.isReg() && MO.getReg() && MO.isDef()))
|
||||
continue;
|
||||
|
||||
unsigned VirtReg = MO.getReg();
|
||||
|
@ -756,7 +756,7 @@ unsigned JITEmitter::GetSizeOfGlobalsInBytes(MachineFunction &MF) {
|
||||
unsigned NumOps = Desc.getNumOperands();
|
||||
for (unsigned CurOp = 0; CurOp < NumOps; CurOp++) {
|
||||
const MachineOperand &MO = MI.getOperand(CurOp);
|
||||
if (MO.isGlobalAddress()) {
|
||||
if (MO.isGlobal()) {
|
||||
GlobalValue* V = MO.getGlobal();
|
||||
const GlobalVariable *GV = dyn_cast<const GlobalVariable>(V);
|
||||
if (!GV)
|
||||
|
@ -181,19 +181,19 @@ unsigned ARMCodeEmitter::getShiftOp(const MachineOperand &MO) const {
|
||||
/// operand requires relocation, record the relocation and return zero.
|
||||
unsigned ARMCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
const MachineOperand &MO) {
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
return ARMRegisterInfo::getRegisterNumbering(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
return static_cast<unsigned>(MO.getImm());
|
||||
else if (MO.isGlobalAddress())
|
||||
else if (MO.isGlobal())
|
||||
emitGlobalAddress(MO.getGlobal(), ARM::reloc_arm_branch, false);
|
||||
else if (MO.isExternalSymbol())
|
||||
else if (MO.isSymbol())
|
||||
emitExternalSymbolAddress(MO.getSymbolName(), ARM::reloc_arm_relative);
|
||||
else if (MO.isConstantPoolIndex())
|
||||
else if (MO.isCPI())
|
||||
emitConstPoolAddress(MO.getIndex(), ARM::reloc_arm_relative);
|
||||
else if (MO.isJumpTableIndex())
|
||||
else if (MO.isJTI())
|
||||
emitJumpTableAddress(MO.getIndex(), ARM::reloc_arm_relative);
|
||||
else if (MO.isMachineBasicBlock())
|
||||
else if (MO.isMBB())
|
||||
emitMachineBasicBlock(MO.getMBB());
|
||||
else {
|
||||
cerr << "ERROR: Unknown type of MachineOperand: " << MO << "\n";
|
||||
@ -351,7 +351,7 @@ unsigned ARMCodeEmitter::getAddrMode1SBit(const MachineInstr &MI,
|
||||
const TargetInstrDesc &TID) const {
|
||||
for (unsigned i = MI.getNumOperands(), e = TID.getNumOperands(); i != e; --i){
|
||||
const MachineOperand &MO = MI.getOperand(i-1);
|
||||
if (MO.isRegister() && MO.isDef() && MO.getReg() == ARM::CPSR)
|
||||
if (MO.isReg() && MO.isDef() && MO.getReg() == ARM::CPSR)
|
||||
return 1 << ARMII::S_BitShift;
|
||||
}
|
||||
return 0;
|
||||
@ -414,7 +414,7 @@ unsigned ARMCodeEmitter::getAddrMode1InstrBinary(const MachineInstr &MI,
|
||||
return Binary | getMachineSoRegOpValue(MI, TID, OpIdx);
|
||||
|
||||
const MachineOperand &MO = MI.getOperand(OpIdx);
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
// Encode register Rm.
|
||||
return Binary | getMachineOpValue(MI, NumDefs + 1);
|
||||
|
||||
@ -538,7 +538,7 @@ unsigned ARMCodeEmitter::getAddrMode4InstrBinary(const MachineInstr &MI,
|
||||
// Set registers
|
||||
for (unsigned i = 4, e = MI.getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI.getOperand(i);
|
||||
if (MO.isRegister() && MO.isImplicit())
|
||||
if (MO.isReg() && MO.isImplicit())
|
||||
continue;
|
||||
unsigned RegNum = ARMRegisterInfo::getRegisterNumbering(MO.getReg());
|
||||
assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
|
||||
|
@ -416,7 +416,7 @@ void ARMConstantIslands::InitialFunctionScan(MachineFunction &Fn,
|
||||
|
||||
// Scan the instructions for constant pool operands.
|
||||
for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op)
|
||||
if (I->getOperand(op).isConstantPoolIndex()) {
|
||||
if (I->getOperand(op).isCPI()) {
|
||||
// We found one. The addressing mode tells us the max displacement
|
||||
// from the PC that this instruction permits.
|
||||
|
||||
@ -818,7 +818,7 @@ int ARMConstantIslands::LookForExistingCPEntry(CPUser& U, unsigned UserOffset)
|
||||
U.CPEMI = CPEs[i].CPEMI;
|
||||
// Change the CPI in the instruction operand to refer to the clone.
|
||||
for (unsigned j = 0, e = UserMI->getNumOperands(); j != e; ++j)
|
||||
if (UserMI->getOperand(j).isConstantPoolIndex()) {
|
||||
if (UserMI->getOperand(j).isCPI()) {
|
||||
UserMI->getOperand(j).setIndex(CPEs[i].CPI);
|
||||
break;
|
||||
}
|
||||
@ -1058,7 +1058,7 @@ bool ARMConstantIslands::HandleConstantPoolUser(MachineFunction &Fn,
|
||||
|
||||
// Finally, change the CPI in the instruction operand to be ID.
|
||||
for (unsigned i = 0, e = UserMI->getNumOperands(); i != e; ++i)
|
||||
if (UserMI->getOperand(i).isConstantPoolIndex()) {
|
||||
if (UserMI->getOperand(i).isCPI()) {
|
||||
UserMI->getOperand(i).setIndex(ID);
|
||||
break;
|
||||
}
|
||||
|
@ -64,8 +64,8 @@ bool ARMInstrInfo::isMoveInstr(const MachineInstr &MI,
|
||||
case ARM::MOVr:
|
||||
case ARM::tMOVr:
|
||||
assert(MI.getDesc().getNumOperands() >= 2 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
"Invalid ARM MOV instruction");
|
||||
SrcReg = MI.getOperand(1).getReg();
|
||||
DstReg = MI.getOperand(0).getReg();
|
||||
@ -77,9 +77,9 @@ unsigned ARMInstrInfo::isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) co
|
||||
switch (MI->getOpcode()) {
|
||||
default: break;
|
||||
case ARM::LDR:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isRegister() &&
|
||||
MI->getOperand(3).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isReg() &&
|
||||
MI->getOperand(3).isImm() &&
|
||||
MI->getOperand(2).getReg() == 0 &&
|
||||
MI->getOperand(3).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
@ -88,16 +88,16 @@ unsigned ARMInstrInfo::isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) co
|
||||
break;
|
||||
case ARM::FLDD:
|
||||
case ARM::FLDS:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(2).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
break;
|
||||
case ARM::tRestore:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(2).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -111,9 +111,9 @@ unsigned ARMInstrInfo::isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) con
|
||||
switch (MI->getOpcode()) {
|
||||
default: break;
|
||||
case ARM::STR:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isRegister() &&
|
||||
MI->getOperand(3).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isReg() &&
|
||||
MI->getOperand(3).isImm() &&
|
||||
MI->getOperand(2).getReg() == 0 &&
|
||||
MI->getOperand(3).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
@ -122,16 +122,16 @@ unsigned ARMInstrInfo::isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) con
|
||||
break;
|
||||
case ARM::FSTD:
|
||||
case ARM::FSTS:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(2).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
break;
|
||||
case ARM::tSpill:
|
||||
if (MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(2).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() &&
|
||||
MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(2).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -298,7 +298,7 @@ ARMInstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
|
||||
// Transfer LiveVariables states, kill / dead info.
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() &&
|
||||
if (MO.isReg() && MO.getReg() &&
|
||||
TargetRegisterInfo::isVirtualRegister(MO.getReg())) {
|
||||
unsigned Reg = MO.getReg();
|
||||
|
||||
@ -491,11 +491,11 @@ bool ARMInstrInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
|
||||
static const MachineInstrBuilder &ARMInstrAddOperand(MachineInstrBuilder &MIB,
|
||||
MachineOperand &MO) {
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB = MIB.addReg(MO.getReg(), MO.isDef(), MO.isImplicit());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB = MIB.addImm(MO.getImm());
|
||||
else if (MO.isFrameIndex())
|
||||
else if (MO.isFI())
|
||||
MIB = MIB.addFrameIndex(MO.getIndex());
|
||||
else
|
||||
assert(0 && "Unknown operand for ARMInstrAddOperand!");
|
||||
@ -538,7 +538,7 @@ void ARMInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
if (RC == ARM::GPRRegisterClass) {
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
if (AFI->isThumbFunction()) {
|
||||
Opc = Addr[0].isFrameIndex() ? ARM::tSpill : ARM::tSTR;
|
||||
Opc = Addr[0].isFI() ? ARM::tSpill : ARM::tSTR;
|
||||
MachineInstrBuilder MIB =
|
||||
BuildMI(MF, get(Opc)).addReg(SrcReg, false, false, isKill);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i)
|
||||
@ -594,7 +594,7 @@ void ARMInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
if (RC == ARM::GPRRegisterClass) {
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
if (AFI->isThumbFunction()) {
|
||||
Opc = Addr[0].isFrameIndex() ? ARM::tRestore : ARM::tLDR;
|
||||
Opc = Addr[0].isFI() ? ARM::tRestore : ARM::tLDR;
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i)
|
||||
MIB = ARMInstrAddOperand(MIB, Addr[i]);
|
||||
@ -868,7 +868,7 @@ bool ARMInstrInfo::DefinesPredicate(MachineInstr *MI,
|
||||
bool Found = false;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.getReg() == ARM::CPSR) {
|
||||
if (MO.isReg() && MO.getReg() == ARM::CPSR) {
|
||||
Pred.push_back(MO);
|
||||
Found = true;
|
||||
}
|
||||
|
@ -544,13 +544,13 @@ static bool isMemoryOp(MachineInstr *MI) {
|
||||
default: break;
|
||||
case ARM::LDR:
|
||||
case ARM::STR:
|
||||
return MI->getOperand(1).isRegister() && MI->getOperand(2).getReg() == 0;
|
||||
return MI->getOperand(1).isReg() && MI->getOperand(2).getReg() == 0;
|
||||
case ARM::FLDS:
|
||||
case ARM::FSTS:
|
||||
return MI->getOperand(1).isRegister();
|
||||
return MI->getOperand(1).isReg();
|
||||
case ARM::FLDD:
|
||||
case ARM::FSTD:
|
||||
return MI->getOperand(1).isRegister();
|
||||
return MI->getOperand(1).isReg();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -540,7 +540,7 @@ void ARMRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
bool isThumb = AFI->isThumbFunction();
|
||||
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
@ -1020,7 +1020,7 @@ ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
|
||||
for (MachineFunction::iterator BB = MF.begin(),E = MF.end();BB != E; ++BB)
|
||||
for (MachineBasicBlock::iterator I= BB->begin(); I != BB->end(); ++I) {
|
||||
for (unsigned i = 0, e = I->getNumOperands(); i != e; ++i)
|
||||
if (I->getOperand(i).isFrameIndex()) {
|
||||
if (I->getOperand(i).isFI()) {
|
||||
unsigned Opcode = I->getOpcode();
|
||||
const TargetInstrDesc &Desc = TII.get(Opcode);
|
||||
unsigned AddrMode = (Desc.TSFlags & ARMII::AddrModeMask);
|
||||
@ -1086,7 +1086,7 @@ static void movePastCSLoadStoreOps(MachineBasicBlock &MBB,
|
||||
int Opc, unsigned Area,
|
||||
const ARMSubtarget &STI) {
|
||||
while (MBBI != MBB.end() &&
|
||||
MBBI->getOpcode() == Opc && MBBI->getOperand(1).isFrameIndex()) {
|
||||
MBBI->getOpcode() == Opc && MBBI->getOperand(1).isFI()) {
|
||||
if (Area != 0) {
|
||||
bool Done = false;
|
||||
unsigned Category = 0;
|
||||
@ -1250,7 +1250,7 @@ static bool isCSRestore(MachineInstr *MI, const unsigned *CSRegs) {
|
||||
return ((MI->getOpcode() == ARM::FLDD ||
|
||||
MI->getOpcode() == ARM::LDR ||
|
||||
MI->getOpcode() == ARM::tRestore) &&
|
||||
MI->getOperand(1).isFrameIndex() &&
|
||||
MI->getOperand(1).isFI() &&
|
||||
isCalleeSavedRegister(MI->getOperand(0).getReg(), CSRegs));
|
||||
}
|
||||
|
||||
|
@ -359,7 +359,7 @@ static void printSOImm(raw_ostream &O, int64_t V, const TargetAsmInfo *TAI) {
|
||||
/// immediate in bits 0-7.
|
||||
void ARMAsmPrinter::printSOImmOperand(const MachineInstr *MI, int OpNum) {
|
||||
const MachineOperand &MO = MI->getOperand(OpNum);
|
||||
assert(MO.isImmediate() && "Not a valid so_imm value!");
|
||||
assert(MO.isImm() && "Not a valid so_imm value!");
|
||||
printSOImm(O, MO.getImm(), TAI);
|
||||
}
|
||||
|
||||
@ -367,7 +367,7 @@ void ARMAsmPrinter::printSOImmOperand(const MachineInstr *MI, int OpNum) {
|
||||
/// followed by a or to materialize.
|
||||
void ARMAsmPrinter::printSOImm2PartOperand(const MachineInstr *MI, int OpNum) {
|
||||
const MachineOperand &MO = MI->getOperand(OpNum);
|
||||
assert(MO.isImmediate() && "Not a valid so_imm value!");
|
||||
assert(MO.isImm() && "Not a valid so_imm value!");
|
||||
unsigned V1 = ARM_AM::getSOImmTwoPartFirst(MO.getImm());
|
||||
unsigned V2 = ARM_AM::getSOImmTwoPartSecond(MO.getImm());
|
||||
printSOImm(O, ARM_AM::getSOImmVal(V1), TAI);
|
||||
@ -413,7 +413,7 @@ void ARMAsmPrinter::printAddrMode2Operand(const MachineInstr *MI, int Op) {
|
||||
const MachineOperand &MO2 = MI->getOperand(Op+1);
|
||||
const MachineOperand &MO3 = MI->getOperand(Op+2);
|
||||
|
||||
if (!MO1.isRegister()) { // FIXME: This is for CP entries, but isn't right.
|
||||
if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right.
|
||||
printOperand(MI, Op);
|
||||
return;
|
||||
}
|
||||
@ -526,7 +526,7 @@ void ARMAsmPrinter::printAddrMode5Operand(const MachineInstr *MI, int Op,
|
||||
const MachineOperand &MO1 = MI->getOperand(Op);
|
||||
const MachineOperand &MO2 = MI->getOperand(Op+1);
|
||||
|
||||
if (!MO1.isRegister()) { // FIXME: This is for CP entries, but isn't right.
|
||||
if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right.
|
||||
printOperand(MI, Op);
|
||||
return;
|
||||
}
|
||||
@ -587,7 +587,7 @@ ARMAsmPrinter::printThumbAddrModeRI5Operand(const MachineInstr *MI, int Op,
|
||||
const MachineOperand &MO2 = MI->getOperand(Op+1);
|
||||
const MachineOperand &MO3 = MI->getOperand(Op+2);
|
||||
|
||||
if (!MO1.isRegister()) { // FIXME: This is for CP entries, but isn't right.
|
||||
if (!MO1.isReg()) { // FIXME: This is for CP entries, but isn't right.
|
||||
printOperand(MI, Op);
|
||||
return;
|
||||
}
|
||||
@ -749,9 +749,9 @@ bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
// Fallthrough
|
||||
case 'H': // Write second word of DI / DF reference.
|
||||
// Verify that this operand has two consecutive registers.
|
||||
if (!MI->getOperand(OpNo).isRegister() ||
|
||||
if (!MI->getOperand(OpNo).isReg() ||
|
||||
OpNo+1 == MI->getNumOperands() ||
|
||||
!MI->getOperand(OpNo+1).isRegister())
|
||||
!MI->getOperand(OpNo+1).isReg())
|
||||
return true;
|
||||
++OpNo; // Return the high-part.
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum)
|
||||
assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
|
||||
"Not physreg??");
|
||||
O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
O << MO.getImm();
|
||||
assert(MO.getImm() < (1 << 30));
|
||||
} else {
|
||||
|
@ -148,12 +148,11 @@ unsigned AlphaCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
unsigned rv = 0; // Return value; defaults to 0 for unhandled cases
|
||||
// or things that get fixed up later by the JIT.
|
||||
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
rv = getAlphaRegNumber(MO.getReg());
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
rv = MO.getImm();
|
||||
} else if (MO.isGlobalAddress() || MO.isExternalSymbol()
|
||||
|| MO.isConstantPoolIndex()) {
|
||||
} else if (MO.isGlobal() || MO.isSymbol() || MO.isCPI()) {
|
||||
DOUT << MO << " is a relocated op for " << MI << "\n";
|
||||
unsigned Reloc = 0;
|
||||
int Offset = 0;
|
||||
@ -193,19 +192,19 @@ unsigned AlphaCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
assert(0 && "unknown relocatable instruction");
|
||||
abort();
|
||||
}
|
||||
if (MO.isGlobalAddress())
|
||||
if (MO.isGlobal())
|
||||
MCE.addRelocation(MachineRelocation::getGV(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getGlobal(), Offset,
|
||||
isa<Function>(MO.getGlobal()),
|
||||
useGOT));
|
||||
else if (MO.isExternalSymbol())
|
||||
else if (MO.isSymbol())
|
||||
MCE.addRelocation(MachineRelocation::getExtSym(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getSymbolName(),
|
||||
Offset, true));
|
||||
else
|
||||
MCE.addRelocation(MachineRelocation::getConstPool(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getIndex(), Offset));
|
||||
} else if (MO.isMachineBasicBlock()) {
|
||||
} else if (MO.isMBB()) {
|
||||
MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(),
|
||||
Alpha::reloc_bsr, MO.getMBB()));
|
||||
}else {
|
||||
|
@ -35,9 +35,9 @@ bool AlphaInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
// or r1, r2, r2
|
||||
// cpys(s|t) r1 r2 r2
|
||||
assert(MI.getNumOperands() >= 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(2).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
MI.getOperand(2).isReg() &&
|
||||
"invalid Alpha BIS instruction!");
|
||||
if (MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -57,7 +57,7 @@ AlphaInstrInfo::isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) const {
|
||||
case Alpha::LDWU:
|
||||
case Alpha::LDS:
|
||||
case Alpha::LDT:
|
||||
if (MI->getOperand(1).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isFI()) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -75,7 +75,7 @@ AlphaInstrInfo::isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) const {
|
||||
case Alpha::STW:
|
||||
case Alpha::STS:
|
||||
case Alpha::STT:
|
||||
if (MI->getOperand(1).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isFI()) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -200,7 +200,7 @@ void AlphaInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
BuildMI(MF, get(Opc)).addReg(SrcReg, false, false, isKill);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg(), MO.isDef(), MO.isImplicit());
|
||||
else
|
||||
MIB.addImm(MO.getImm());
|
||||
@ -245,7 +245,7 @@ void AlphaInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg(), MO.isDef(), MO.isImplicit());
|
||||
else
|
||||
MIB.addImm(MO.getImm());
|
||||
|
@ -159,7 +159,7 @@ void AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
MachineFunction &MF = *MBB.getParent();
|
||||
bool FP = hasFP(MF);
|
||||
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
|
@ -81,10 +81,10 @@ namespace {
|
||||
|
||||
void printOperand(const MachineInstr *MI, unsigned OpNo) {
|
||||
const MachineOperand &MO = MI->getOperand(OpNo);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg())&&"Not physreg??");
|
||||
O << TM.getRegisterInfo()->get(MO.getReg()).AsmName;
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
O << MO.getImm();
|
||||
} else {
|
||||
printOp(MO);
|
||||
@ -186,8 +186,8 @@ namespace {
|
||||
printMemRegImmS10(const MachineInstr *MI, unsigned OpNo)
|
||||
{
|
||||
const MachineOperand &MO = MI->getOperand(OpNo);
|
||||
assert(MO.isImmediate()
|
||||
&& "printMemRegImmS10 first operand is not immedate");
|
||||
assert(MO.isImm() &&
|
||||
"printMemRegImmS10 first operand is not immedate");
|
||||
printS10ImmOperand(MI, OpNo);
|
||||
O << "(";
|
||||
printOperand(MI, OpNo+1);
|
||||
@ -198,11 +198,11 @@ namespace {
|
||||
printAddr256K(const MachineInstr *MI, unsigned OpNo)
|
||||
{
|
||||
/* Note: operand 1 is an offset or symbol name. */
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
printS16ImmOperand(MI, OpNo);
|
||||
} else {
|
||||
printOp(MI->getOperand(OpNo));
|
||||
if (MI->getOperand(OpNo+1).isImmediate()) {
|
||||
if (MI->getOperand(OpNo+1).isImm()) {
|
||||
int displ = int(MI->getOperand(OpNo+1).getImm());
|
||||
if (displ > 0)
|
||||
O << "+" << displ;
|
||||
@ -222,7 +222,7 @@ namespace {
|
||||
}
|
||||
|
||||
void printSymbolHi(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
printS16ImmOperand(MI, OpNo);
|
||||
} else {
|
||||
printOp(MI->getOperand(OpNo));
|
||||
@ -231,7 +231,7 @@ namespace {
|
||||
}
|
||||
|
||||
void printSymbolLo(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
printS16ImmOperand(MI, OpNo);
|
||||
} else {
|
||||
printOp(MI->getOperand(OpNo));
|
||||
@ -245,7 +245,7 @@ namespace {
|
||||
}
|
||||
|
||||
void printROTHNeg7Imm(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
int value = (int) MI->getOperand(OpNo).getImm();
|
||||
assert((value >= 0 && value < 16)
|
||||
&& "Invalid negated immediate rotate 7-bit argument");
|
||||
@ -256,7 +256,7 @@ namespace {
|
||||
}
|
||||
|
||||
void printROTNeg7Imm(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
int value = (int) MI->getOperand(OpNo).getImm();
|
||||
assert((value >= 0 && value < 32)
|
||||
&& "Invalid negated immediate rotate 7-bit argument");
|
||||
@ -372,9 +372,9 @@ bool SPUAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
default: return true; // Unknown modifier.
|
||||
case 'L': // Write second word of DImode reference.
|
||||
// Verify that this operand has two consecutive registers.
|
||||
if (!MI->getOperand(OpNo).isRegister() ||
|
||||
if (!MI->getOperand(OpNo).isReg() ||
|
||||
OpNo+1 == MI->getNumOperands() ||
|
||||
!MI->getOperand(OpNo+1).isRegister())
|
||||
!MI->getOperand(OpNo+1).isReg())
|
||||
return true;
|
||||
++OpNo; // Return the high-part.
|
||||
break;
|
||||
|
@ -60,9 +60,9 @@ SPUInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
case SPU::AHIr16:
|
||||
case SPU::AIvec:
|
||||
assert(MI.getNumOperands() == 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(2).isImmediate() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
MI.getOperand(2).isImm() &&
|
||||
"invalid SPU ORI/ORHI/ORBI/AHI/AI/SFI/SFHI instruction!");
|
||||
if (MI.getOperand(2).getImm() == 0) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -73,10 +73,10 @@ SPUInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
case SPU::AIr32:
|
||||
assert(MI.getNumOperands() == 3 &&
|
||||
"wrong number of operands to AIr32");
|
||||
if (MI.getOperand(0).isRegister() &&
|
||||
(MI.getOperand(1).isRegister() ||
|
||||
MI.getOperand(1).isFrameIndex()) &&
|
||||
(MI.getOperand(2).isImmediate() &&
|
||||
if (MI.getOperand(0).isReg() &&
|
||||
(MI.getOperand(1).isReg() ||
|
||||
MI.getOperand(1).isFI()) &&
|
||||
(MI.getOperand(2).isImm() &&
|
||||
MI.getOperand(2).getImm() == 0)) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
destReg = MI.getOperand(0).getReg();
|
||||
@ -103,9 +103,9 @@ SPUInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
case SPU::ORf32:
|
||||
case SPU::ORf64:
|
||||
assert(MI.getNumOperands() == 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(2).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
MI.getOperand(2).isReg() &&
|
||||
"invalid SPU OR(vec|r32|r64|gprc) instruction!");
|
||||
if (MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -136,8 +136,8 @@ SPUInstrInfo::isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) const {
|
||||
case SPU::LQXr64:
|
||||
case SPU::LQXr32:
|
||||
case SPU::LQXr16:
|
||||
if (MI->getOperand(1).isImmediate() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isImm() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFI()) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -170,8 +170,8 @@ SPUInstrInfo::isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) const {
|
||||
case SPU::STQXr32:
|
||||
case SPU::STQXr16:
|
||||
// case SPU::STQXr8:
|
||||
if (MI->getOperand(1).isImmediate() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isImm() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFI()) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -273,7 +273,7 @@ void SPUInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
cerr << "storeRegToAddr() invoked!\n";
|
||||
abort();
|
||||
|
||||
if (Addr[0].isFrameIndex()) {
|
||||
if (Addr[0].isFI()) {
|
||||
/* do what storeRegToStackSlot does here */
|
||||
} else {
|
||||
unsigned Opc = 0;
|
||||
@ -297,9 +297,9 @@ void SPUInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
.addReg(SrcReg, false, false, isKill);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
@ -358,7 +358,7 @@ void SPUInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
cerr << "loadRegToAddr() invoked!\n";
|
||||
abort();
|
||||
|
||||
if (Addr[0].isFrameIndex()) {
|
||||
if (Addr[0].isFI()) {
|
||||
/* do what loadRegFromStackSlot does here... */
|
||||
} else {
|
||||
unsigned Opc = 0;
|
||||
@ -383,9 +383,9 @@ void SPUInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
|
@ -328,7 +328,7 @@ SPURegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj,
|
||||
MachineFunction &MF = *MBB.getParent();
|
||||
MachineFrameInfo *MFI = MF.getFrameInfo();
|
||||
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ namespace {
|
||||
// pool entries aren't immediates at this stage, so we check here.
|
||||
// If it's an immediate, print it the old fashioned way. If it's
|
||||
// not, we print it as a constant pool index.
|
||||
if(MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
O << (int64_t)MI->getOperand(OpNo).getImm();
|
||||
} else { // this is a constant pool reference: FIXME: assert this
|
||||
printOp(MI->getOperand(OpNo));
|
||||
|
@ -84,7 +84,7 @@ bool IA64BundlingPass::runOnMachineBasicBlock(MachineBasicBlock &MBB) {
|
||||
|
||||
for(unsigned i=0; i < CurrentInsn->getNumOperands(); i++) {
|
||||
MachineOperand &MO=CurrentInsn->getOperand(i);
|
||||
if(MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
if(MO.isUse()) { // TODO: exclude p0
|
||||
CurrentReads.insert(MO.getReg());
|
||||
}
|
||||
|
@ -31,11 +31,11 @@ bool IA64InstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
if (oc == IA64::MOV || oc == IA64::FMOV) {
|
||||
// TODO: this doesn't detect predicate moves
|
||||
assert(MI.getNumOperands() >= 2 &&
|
||||
/* MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() && */
|
||||
/* MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() && */
|
||||
"invalid register-register move instruction");
|
||||
if( MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() ) {
|
||||
if (MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg()) {
|
||||
// if both operands of the MOV/FMOV are registers, then
|
||||
// yes, this is a move instruction
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -122,9 +122,9 @@ void IA64InstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc));
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
@ -174,9 +174,9 @@ void IA64InstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
|
@ -121,7 +121,7 @@ void IA64RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
|
||||
bool FP = hasFP(MF);
|
||||
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
|
@ -336,26 +336,24 @@ printOperand(const MachineInstr *MI, int opNum)
|
||||
// using PIC_. %call16 is used to load direct call targets
|
||||
// on PIC_ and small code size. %call_lo and %call_hi load
|
||||
// direct call targets on PIC_ and large code size.
|
||||
if (MI->getOpcode() == Mips::LUi && !MO.isRegister()
|
||||
&& !MO.isImmediate()) {
|
||||
if (MI->getOpcode() == Mips::LUi && !MO.isReg() && !MO.isImm()) {
|
||||
if ((isPIC) && (isCodeLarge))
|
||||
O << "%call_hi(";
|
||||
else
|
||||
O << "%hi(";
|
||||
closeP = true;
|
||||
} else if ((MI->getOpcode() == Mips::ADDiu) && !MO.isRegister()
|
||||
&& !MO.isImmediate()) {
|
||||
} else if ((MI->getOpcode() == Mips::ADDiu) && !MO.isReg() && !MO.isImm()) {
|
||||
const MachineOperand &firstMO = MI->getOperand(opNum-1);
|
||||
if (firstMO.getReg() == Mips::GP)
|
||||
O << "%gp_rel(";
|
||||
else
|
||||
O << "%lo(";
|
||||
closeP = true;
|
||||
} else if ((isPIC) && (MI->getOpcode() == Mips::LW)
|
||||
&& (!MO.isRegister()) && (!MO.isImmediate())) {
|
||||
} else if ((isPIC) && (MI->getOpcode() == Mips::LW) &&
|
||||
(!MO.isReg()) && (!MO.isImm())) {
|
||||
const MachineOperand &firstMO = MI->getOperand(opNum-1);
|
||||
const MachineOperand &lastMO = MI->getOperand(opNum+1);
|
||||
if ((firstMO.isRegister()) && (lastMO.isRegister())) {
|
||||
if ((firstMO.isReg()) && (lastMO.isReg())) {
|
||||
if ((firstMO.getReg() == Mips::T9) && (lastMO.getReg() == Mips::GP)
|
||||
&& (!isCodeLarge))
|
||||
O << "%call16(";
|
||||
|
@ -24,7 +24,7 @@ MipsInstrInfo::MipsInstrInfo(MipsTargetMachine &tm)
|
||||
TM(tm), RI(*TM.getSubtargetImpl(), *this) {}
|
||||
|
||||
static bool isZeroImm(const MachineOperand &op) {
|
||||
return op.isImmediate() && op.getImm() == 0;
|
||||
return op.isImm() && op.getImm() == 0;
|
||||
}
|
||||
|
||||
/// Return true if the instruction is a register to register move and
|
||||
@ -60,7 +60,7 @@ isMoveInstr(const MachineInstr &MI, unsigned &SrcReg, unsigned &DstReg) const
|
||||
|
||||
// addiu $dst, $src, 0
|
||||
if (MI.getOpcode() == Mips::ADDiu) {
|
||||
if ((MI.getOperand(1).isRegister()) && (isZeroImm(MI.getOperand(2)))) {
|
||||
if ((MI.getOperand(1).isReg()) && (isZeroImm(MI.getOperand(2)))) {
|
||||
DstReg = MI.getOperand(0).getReg();
|
||||
SrcReg = MI.getOperand(1).getReg();
|
||||
return true;
|
||||
@ -79,8 +79,8 @@ isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) const
|
||||
{
|
||||
if ((MI->getOpcode() == Mips::LW) || (MI->getOpcode() == Mips::LWC1) ||
|
||||
(MI->getOpcode() == Mips::LWC1A) || (MI->getOpcode() == Mips::LDC1)) {
|
||||
if ((MI->getOperand(2).isFrameIndex()) && // is a stack slot
|
||||
(MI->getOperand(1).isImmediate()) && // the imm is zero
|
||||
if ((MI->getOperand(2).isFI()) && // is a stack slot
|
||||
(MI->getOperand(1).isImm()) && // the imm is zero
|
||||
(isZeroImm(MI->getOperand(1)))) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -100,8 +100,8 @@ isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) const
|
||||
{
|
||||
if ((MI->getOpcode() == Mips::SW) || (MI->getOpcode() == Mips::SWC1) ||
|
||||
(MI->getOpcode() == Mips::SWC1A) || (MI->getOpcode() == Mips::SDC1)) {
|
||||
if ((MI->getOperand(2).isFrameIndex()) && // is a stack slot
|
||||
(MI->getOperand(1).isImmediate()) && // the imm is zero
|
||||
if ((MI->getOperand(2).isFI()) && // is a stack slot
|
||||
(MI->getOperand(1).isImm()) && // the imm is zero
|
||||
(isZeroImm(MI->getOperand(1)))) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -217,9 +217,9 @@ void MipsInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
.addReg(SrcReg, false, false, isKill);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
@ -267,9 +267,9 @@ void MipsInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
@ -289,10 +289,10 @@ foldMemoryOperand(MachineFunction &MF,
|
||||
|
||||
switch (MI->getOpcode()) {
|
||||
case Mips::ADDu:
|
||||
if ((MI->getOperand(0).isRegister()) &&
|
||||
(MI->getOperand(1).isRegister()) &&
|
||||
if ((MI->getOperand(0).isReg()) &&
|
||||
(MI->getOperand(1).isReg()) &&
|
||||
(MI->getOperand(1).getReg() == Mips::ZERO) &&
|
||||
(MI->getOperand(2).isRegister())) {
|
||||
(MI->getOperand(2).isReg())) {
|
||||
if (Ops[0] == 0) { // COPY -> STORE
|
||||
unsigned SrcReg = MI->getOperand(2).getReg();
|
||||
bool isKill = MI->getOperand(2).isKill();
|
||||
@ -310,8 +310,8 @@ foldMemoryOperand(MachineFunction &MF,
|
||||
case Mips::FMOV_SO32:
|
||||
case Mips::FMOV_AS32:
|
||||
case Mips::FMOV_D32:
|
||||
if ((MI->getOperand(0).isRegister()) &&
|
||||
(MI->getOperand(1).isRegister())) {
|
||||
if ((MI->getOperand(0).isReg()) &&
|
||||
(MI->getOperand(1).isReg())) {
|
||||
const TargetRegisterClass
|
||||
*RC = RI.getRegClass(MI->getOperand(0).getReg());
|
||||
unsigned StoreOpc, LoadOpc;
|
||||
|
@ -348,7 +348,7 @@ eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj,
|
||||
MachineFunction &MF = *MI.getParent()->getParent();
|
||||
|
||||
unsigned i = 0;
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() &&
|
||||
"Instr doesn't have FrameIndex operand!");
|
||||
|
@ -288,7 +288,7 @@ printSOImm(raw_ostream &O, int64_t V, const TargetAsmInfo *TAI)
|
||||
void PIC16AsmPrinter::printSOImmOperand(const MachineInstr *MI, int OpNum)
|
||||
{
|
||||
const MachineOperand &MO = MI->getOperand(OpNum);
|
||||
assert(MO.isImmediate() && "Not a valid so_imm value!");
|
||||
assert(MO.isImm() && "Not a valid so_imm value!");
|
||||
printSOImm(O, MO.getImm(), TAI);
|
||||
}
|
||||
|
||||
@ -298,19 +298,19 @@ void PIC16AsmPrinter::printAddrModeOperand(const MachineInstr *MI, int Op)
|
||||
const MachineOperand &MO1 = MI->getOperand(Op);
|
||||
const MachineOperand &MO2 = MI->getOperand(Op+1);
|
||||
|
||||
if (MO2.isFrameIndex ()) {
|
||||
if (MO2.isFI()) {
|
||||
printOperand(MI, Op+1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!MO1.isRegister()) {
|
||||
if (!MO1.isReg()) {
|
||||
// FIXME: This is for CP entries, but isn't right.
|
||||
printOperand(MI, Op);
|
||||
return;
|
||||
}
|
||||
|
||||
// If this is Stack Slot
|
||||
if (MO1.isRegister()) {
|
||||
if (MO1.isReg()) {
|
||||
if (strcmp(TM.getRegisterInfo()->get(MO1.getReg()).Name, "SP") == 0) {
|
||||
O << CurrentFnName <<"_"<< MO2.getImm();
|
||||
return;
|
||||
|
@ -27,7 +27,7 @@ PIC16InstrInfo::PIC16InstrInfo(PIC16TargetMachine &tm)
|
||||
TM(tm), RI(*this) {}
|
||||
|
||||
static bool isZeroImm(const MachineOperand &op) {
|
||||
return op.isImmediate() && op.getImm() == 0;
|
||||
return op.isImm() && op.getImm() == 0;
|
||||
}
|
||||
|
||||
|
||||
@ -40,8 +40,8 @@ unsigned PIC16InstrInfo::
|
||||
isLoadFromStackSlot(MachineInstr *MI, int &FrameIndex) const
|
||||
{
|
||||
if (MI->getOpcode() == PIC16::MOVF) {
|
||||
if ((MI->getOperand(2).isFrameIndex()) && // is a stack slot
|
||||
(MI->getOperand(1).isImmediate()) && // the imm is zero
|
||||
if ((MI->getOperand(2).isFI()) && // is a stack slot
|
||||
(MI->getOperand(1).isImm()) && // the imm is zero
|
||||
(isZeroImm(MI->getOperand(1)))) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -60,8 +60,8 @@ unsigned PIC16InstrInfo::
|
||||
isStoreToStackSlot(MachineInstr *MI, int &FrameIndex) const
|
||||
{
|
||||
if (MI->getOpcode() == PIC16::MOVWF) {
|
||||
if ((MI->getOperand(0).isFrameIndex()) && // is a stack slot
|
||||
(MI->getOperand(1).isImmediate()) && // the imm is zero
|
||||
if ((MI->getOperand(0).isFI()) && // is a stack slot
|
||||
(MI->getOperand(1).isImm()) && // the imm is zero
|
||||
(isZeroImm(MI->getOperand(1)))) {
|
||||
FrameIndex = MI->getOperand(0).getIndex();
|
||||
return MI->getOperand(2).getReg();
|
||||
|
@ -141,7 +141,7 @@ eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj,
|
||||
MachineFunction &MF = *MI.getParent()->getParent();
|
||||
|
||||
unsigned i = 0;
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() &&
|
||||
"Instr doesn't have FrameIndex operand!");
|
||||
|
@ -123,9 +123,9 @@ namespace {
|
||||
|
||||
void printOperand(const MachineInstr *MI, unsigned OpNo) {
|
||||
const MachineOperand &MO = MI->getOperand(OpNo);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
printRegister(MO, false);
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
O << MO.getImm();
|
||||
} else {
|
||||
printOp(MO);
|
||||
@ -160,7 +160,7 @@ namespace {
|
||||
O << (unsigned short)MI->getOperand(OpNo).getImm();
|
||||
}
|
||||
void printS16X4ImmOperand(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
O << (short)(MI->getOperand(OpNo).getImm()*4);
|
||||
} else {
|
||||
O << "lo16(";
|
||||
@ -174,7 +174,7 @@ namespace {
|
||||
void printBranchOperand(const MachineInstr *MI, unsigned OpNo) {
|
||||
// Branches can take an immediate operand. This is used by the branch
|
||||
// selection pass to print $+8, an eight byte displacement from the PC.
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
O << "$+" << MI->getOperand(OpNo).getImm()*4;
|
||||
} else {
|
||||
printOp(MI->getOperand(OpNo));
|
||||
@ -214,7 +214,7 @@ namespace {
|
||||
O << "\"L" << getFunctionNumber() << "$pb\":";
|
||||
}
|
||||
void printSymbolHi(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
printS16ImmOperand(MI, OpNo);
|
||||
} else {
|
||||
if (Subtarget.isDarwin()) O << "ha16(";
|
||||
@ -228,7 +228,7 @@ namespace {
|
||||
}
|
||||
}
|
||||
void printSymbolLo(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate()) {
|
||||
if (MI->getOperand(OpNo).isImm()) {
|
||||
printS16ImmOperand(MI, OpNo);
|
||||
} else {
|
||||
if (Subtarget.isDarwin()) O << "lo16(";
|
||||
@ -250,7 +250,7 @@ namespace {
|
||||
void printMemRegImm(const MachineInstr *MI, unsigned OpNo) {
|
||||
printSymbolLo(MI, OpNo);
|
||||
O << '(';
|
||||
if (MI->getOperand(OpNo+1).isRegister() &&
|
||||
if (MI->getOperand(OpNo+1).isReg() &&
|
||||
MI->getOperand(OpNo+1).getReg() == PPC::R0)
|
||||
O << "0";
|
||||
else
|
||||
@ -258,12 +258,12 @@ namespace {
|
||||
O << ')';
|
||||
}
|
||||
void printMemRegImmShifted(const MachineInstr *MI, unsigned OpNo) {
|
||||
if (MI->getOperand(OpNo).isImmediate())
|
||||
if (MI->getOperand(OpNo).isImm())
|
||||
printS16X4ImmOperand(MI, OpNo);
|
||||
else
|
||||
printSymbolLo(MI, OpNo);
|
||||
O << '(';
|
||||
if (MI->getOperand(OpNo+1).isRegister() &&
|
||||
if (MI->getOperand(OpNo+1).isReg() &&
|
||||
MI->getOperand(OpNo+1).getReg() == PPC::R0)
|
||||
O << "0";
|
||||
else
|
||||
@ -443,16 +443,16 @@ bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
return false;
|
||||
case 'L': // Write second word of DImode reference.
|
||||
// Verify that this operand has two consecutive registers.
|
||||
if (!MI->getOperand(OpNo).isRegister() ||
|
||||
if (!MI->getOperand(OpNo).isReg() ||
|
||||
OpNo+1 == MI->getNumOperands() ||
|
||||
!MI->getOperand(OpNo+1).isRegister())
|
||||
!MI->getOperand(OpNo+1).isReg())
|
||||
return true;
|
||||
++OpNo; // Return the high-part.
|
||||
break;
|
||||
case 'I':
|
||||
// Write 'i' if an integer constant, otherwise nothing. Used to print
|
||||
// addi vs add, etc.
|
||||
if (MI->getOperand(OpNo).isImmediate())
|
||||
if (MI->getOperand(OpNo).isImm())
|
||||
O << "i";
|
||||
return false;
|
||||
}
|
||||
@ -467,7 +467,7 @@ bool PPCAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
const char *ExtraCode) {
|
||||
if (ExtraCode && ExtraCode[0])
|
||||
return true; // Unknown modifier.
|
||||
if (MI->getOperand(OpNo).isRegister())
|
||||
if (MI->getOperand(OpNo).isReg())
|
||||
printMemRegReg(MI, OpNo);
|
||||
else
|
||||
printMemRegImm(MI, OpNo);
|
||||
|
@ -103,7 +103,7 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
unsigned MBBStartOffset = 0;
|
||||
for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end();
|
||||
I != E; ++I) {
|
||||
if (I->getOpcode() != PPC::BCC || I->getOperand(2).isImmediate()) {
|
||||
if (I->getOpcode() != PPC::BCC || I->getOperand(2).isImm()) {
|
||||
MBBStartOffset += TII->GetInstSizeInBytes(I);
|
||||
continue;
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ unsigned PPCCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
|
||||
unsigned rv = 0; // Return value; defaults to 0 for unhandled cases
|
||||
// or things that get fixed up later by the JIT.
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
rv = PPCRegisterInfo::getRegisterNumbering(MO.getReg());
|
||||
|
||||
// Special encoding for MTCRF and MFOCRF, which uses a bit mask for the
|
||||
@ -135,10 +135,10 @@ unsigned PPCCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
(MO.getReg() >= PPC::CR0 && MO.getReg() <= PPC::CR7)) {
|
||||
rv = 0x80 >> rv;
|
||||
}
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
rv = MO.getImm();
|
||||
} else if (MO.isGlobalAddress() || MO.isExternalSymbol() ||
|
||||
MO.isConstantPoolIndex() || MO.isJumpTableIndex()) {
|
||||
} else if (MO.isGlobal() || MO.isSymbol() ||
|
||||
MO.isCPI() || MO.isJTI()) {
|
||||
unsigned Reloc = 0;
|
||||
if (MI.getOpcode() == PPC::BL_Macho || MI.getOpcode() == PPC::BL8_Macho ||
|
||||
MI.getOpcode() == PPC::BL_ELF || MI.getOpcode() == PPC::BL8_ELF ||
|
||||
@ -193,18 +193,18 @@ unsigned PPCCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
}
|
||||
|
||||
MachineRelocation R;
|
||||
if (MO.isGlobalAddress()) {
|
||||
if (MO.isGlobal()) {
|
||||
R = MachineRelocation::getGV(MCE.getCurrentPCOffset(), Reloc,
|
||||
MO.getGlobal(), 0,
|
||||
isa<Function>(MO.getGlobal()));
|
||||
} else if (MO.isExternalSymbol()) {
|
||||
} else if (MO.isSymbol()) {
|
||||
R = MachineRelocation::getExtSym(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getSymbolName(), 0);
|
||||
} else if (MO.isConstantPoolIndex()) {
|
||||
} else if (MO.isCPI()) {
|
||||
R = MachineRelocation::getConstPool(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getIndex(), 0);
|
||||
} else {
|
||||
assert(MO.isJumpTableIndex());
|
||||
assert(MO.isJTI());
|
||||
R = MachineRelocation::getJumpTable(MCE.getCurrentPCOffset(),
|
||||
Reloc, MO.getIndex(), 0);
|
||||
}
|
||||
@ -220,7 +220,7 @@ unsigned PPCCodeEmitter::getMachineOpValue(const MachineInstr &MI,
|
||||
}
|
||||
MCE.addRelocation(R);
|
||||
|
||||
} else if (MO.isMachineBasicBlock()) {
|
||||
} else if (MO.isMBB()) {
|
||||
unsigned Reloc = 0;
|
||||
unsigned Opcode = MI.getOpcode();
|
||||
if (Opcode == PPC::B || Opcode == PPC::BL_Macho ||
|
||||
|
@ -47,9 +47,9 @@ bool PPCInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
if (oc == PPC::OR || oc == PPC::OR8 || oc == PPC::VOR ||
|
||||
oc == PPC::OR4To8 || oc == PPC::OR8To4) { // or r1, r2, r2
|
||||
assert(MI.getNumOperands() >= 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(2).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
MI.getOperand(2).isReg() &&
|
||||
"invalid PPC OR instruction!");
|
||||
if (MI.getOperand(1).getReg() == MI.getOperand(2).getReg()) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -58,19 +58,19 @@ bool PPCInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
}
|
||||
} else if (oc == PPC::ADDI) { // addi r1, r2, 0
|
||||
assert(MI.getNumOperands() >= 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(2).isImmediate() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(2).isImm() &&
|
||||
"invalid PPC ADDI instruction!");
|
||||
if (MI.getOperand(1).isRegister() && MI.getOperand(2).getImm() == 0) {
|
||||
if (MI.getOperand(1).isReg() && MI.getOperand(2).getImm() == 0) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
destReg = MI.getOperand(0).getReg();
|
||||
return true;
|
||||
}
|
||||
} else if (oc == PPC::ORI) { // ori r1, r2, 0
|
||||
assert(MI.getNumOperands() >= 3 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(2).isImmediate() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
MI.getOperand(2).isImm() &&
|
||||
"invalid PPC ORI instruction!");
|
||||
if (MI.getOperand(2).getImm() == 0) {
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
@ -80,16 +80,16 @@ bool PPCInstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
} else if (oc == PPC::FMRS || oc == PPC::FMRD ||
|
||||
oc == PPC::FMRSD) { // fmr r1, r2
|
||||
assert(MI.getNumOperands() >= 2 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
"invalid PPC FMR instruction");
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
destReg = MI.getOperand(0).getReg();
|
||||
return true;
|
||||
} else if (oc == PPC::MCRF) { // mcrf cr1, cr2
|
||||
assert(MI.getNumOperands() >= 2 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
"invalid PPC MCRF instruction");
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
destReg = MI.getOperand(0).getReg();
|
||||
@ -106,8 +106,8 @@ unsigned PPCInstrInfo::isLoadFromStackSlot(MachineInstr *MI,
|
||||
case PPC::LWZ:
|
||||
case PPC::LFS:
|
||||
case PPC::LFD:
|
||||
if (MI->getOperand(1).isImmediate() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isImm() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFI()) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -124,8 +124,8 @@ unsigned PPCInstrInfo::isStoreToStackSlot(MachineInstr *MI,
|
||||
case PPC::STW:
|
||||
case PPC::STFS:
|
||||
case PPC::STFD:
|
||||
if (MI->getOperand(1).isImmediate() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFrameIndex()) {
|
||||
if (MI->getOperand(1).isImm() && !MI->getOperand(1).getImm() &&
|
||||
MI->getOperand(2).isFI()) {
|
||||
FrameIndex = MI->getOperand(2).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
}
|
||||
@ -478,7 +478,7 @@ void PPCInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
SmallVectorImpl<MachineOperand> &Addr,
|
||||
const TargetRegisterClass *RC,
|
||||
SmallVectorImpl<MachineInstr*> &NewMIs) const{
|
||||
if (Addr[0].isFrameIndex()) {
|
||||
if (Addr[0].isFI()) {
|
||||
if (StoreRegToStackSlot(MF, SrcReg, isKill,
|
||||
Addr[0].getIndex(), RC, NewMIs)) {
|
||||
PPCFunctionInfo *FuncInfo = MF.getInfo<PPCFunctionInfo>();
|
||||
@ -507,9 +507,9 @@ void PPCInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
.addReg(SrcReg, false, false, isKill);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
@ -617,7 +617,7 @@ void PPCInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
SmallVectorImpl<MachineOperand> &Addr,
|
||||
const TargetRegisterClass *RC,
|
||||
SmallVectorImpl<MachineInstr*> &NewMIs)const{
|
||||
if (Addr[0].isFrameIndex()) {
|
||||
if (Addr[0].isFI()) {
|
||||
LoadRegFromStackSlot(MF, DestReg, Addr[0].getIndex(), RC, NewMIs);
|
||||
return;
|
||||
}
|
||||
@ -642,9 +642,9 @@ void PPCInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
|
@ -629,7 +629,7 @@ void PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
|
||||
// Find out which operand is the frame index.
|
||||
unsigned FIOperandNo = 0;
|
||||
while (!MI.getOperand(FIOperandNo).isFrameIndex()) {
|
||||
while (!MI.getOperand(FIOperandNo).isFI()) {
|
||||
++FIOperandNo;
|
||||
assert(FIOperandNo != MI.getNumOperands() &&
|
||||
"Instr doesn't have FrameIndex operand!");
|
||||
@ -1242,7 +1242,7 @@ void PPCRegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
if (UsesTCRet) {
|
||||
int MaxTCRetDelta = FI->getTailCallSPDelta();
|
||||
MachineOperand &StackAdjust = MBBI->getOperand(1);
|
||||
assert( StackAdjust.isImmediate() && "Expecting immediate value.");
|
||||
assert(StackAdjust.isImm() && "Expecting immediate value.");
|
||||
// Adjust stack pointer.
|
||||
int StackAdj = StackAdjust.getImm();
|
||||
int Delta = StackAdj - MaxTCRetDelta;
|
||||
@ -1368,7 +1368,7 @@ void PPCRegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
} else if (RetOpcode == PPC::TCRETURNri) {
|
||||
MBBI = prior(MBB.end());
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
assert(JumpTarget.isRegister() && "Expecting register operand.");
|
||||
assert(JumpTarget.isReg() && "Expecting register operand.");
|
||||
BuildMI(MBB, MBBI, TII.get(PPC::TAILBCTR));
|
||||
} else if (RetOpcode == PPC::TCRETURNai) {
|
||||
MBBI = prior(MBB.end());
|
||||
@ -1382,7 +1382,7 @@ void PPCRegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
} else if (RetOpcode == PPC::TCRETURNri8) {
|
||||
MBBI = prior(MBB.end());
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
assert(JumpTarget.isRegister() && "Expecting register operand.");
|
||||
assert(JumpTarget.isReg() && "Expecting register operand.");
|
||||
BuildMI(MBB, MBBI, TII.get(PPC::TAILBCTR8));
|
||||
} else if (RetOpcode == PPC::TCRETURNai8) {
|
||||
MBBI = prior(MBB.end());
|
||||
|
@ -141,11 +141,11 @@ void SparcAsmPrinter::printOperand(const MachineInstr *MI, int opNum) {
|
||||
const MachineOperand &MO = MI->getOperand (opNum);
|
||||
const TargetRegisterInfo &RI = *TM.getRegisterInfo();
|
||||
bool CloseParen = false;
|
||||
if (MI->getOpcode() == SP::SETHIi && !MO.isRegister() && !MO.isImmediate()) {
|
||||
if (MI->getOpcode() == SP::SETHIi && !MO.isReg() && !MO.isImm()) {
|
||||
O << "%hi(";
|
||||
CloseParen = true;
|
||||
} else if ((MI->getOpcode() == SP::ORri || MI->getOpcode() == SP::ADDri)
|
||||
&& !MO.isRegister() && !MO.isImmediate()) {
|
||||
} else if ((MI->getOpcode() == SP::ORri || MI->getOpcode() == SP::ADDri) &&
|
||||
!MO.isReg() && !MO.isImm()) {
|
||||
O << "%lo(";
|
||||
CloseParen = true;
|
||||
}
|
||||
@ -190,16 +190,16 @@ void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
|
||||
return;
|
||||
}
|
||||
|
||||
if (MI->getOperand(opNum+1).isRegister() &&
|
||||
if (MI->getOperand(opNum+1).isReg() &&
|
||||
MI->getOperand(opNum+1).getReg() == SP::G0)
|
||||
return; // don't print "+%g0"
|
||||
if (MI->getOperand(opNum+1).isImmediate() &&
|
||||
if (MI->getOperand(opNum+1).isImm() &&
|
||||
MI->getOperand(opNum+1).getImm() == 0)
|
||||
return; // don't print "+0"
|
||||
|
||||
O << "+";
|
||||
if (MI->getOperand(opNum+1).isGlobalAddress() ||
|
||||
MI->getOperand(opNum+1).isConstantPoolIndex()) {
|
||||
if (MI->getOperand(opNum+1).isGlobal() ||
|
||||
MI->getOperand(opNum+1).isCPI()) {
|
||||
O << "%lo(";
|
||||
printOperand(MI, opNum+1);
|
||||
O << ")";
|
||||
|
@ -25,7 +25,7 @@ SparcInstrInfo::SparcInstrInfo(SparcSubtarget &ST)
|
||||
}
|
||||
|
||||
static bool isZeroImm(const MachineOperand &op) {
|
||||
return op.isImmediate() && op.getImm() == 0;
|
||||
return op.isImm() && op.getImm() == 0;
|
||||
}
|
||||
|
||||
/// Return true if the instruction is a register to register move and
|
||||
@ -48,7 +48,7 @@ bool SparcInstrInfo::isMoveInstr(const MachineInstr &MI,
|
||||
return true;
|
||||
}
|
||||
} else if ((MI.getOpcode() == SP::ORri || MI.getOpcode() == SP::ADDri) &&
|
||||
isZeroImm(MI.getOperand(2)) && MI.getOperand(1).isRegister()) {
|
||||
isZeroImm(MI.getOperand(2)) && MI.getOperand(1).isReg()) {
|
||||
DstReg = MI.getOperand(0).getReg();
|
||||
SrcReg = MI.getOperand(1).getReg();
|
||||
return true;
|
||||
@ -71,7 +71,7 @@ unsigned SparcInstrInfo::isLoadFromStackSlot(MachineInstr *MI,
|
||||
if (MI->getOpcode() == SP::LDri ||
|
||||
MI->getOpcode() == SP::LDFri ||
|
||||
MI->getOpcode() == SP::LDDFri) {
|
||||
if (MI->getOperand(1).isFrameIndex() && MI->getOperand(2).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() && MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(2).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(1).getIndex();
|
||||
return MI->getOperand(0).getReg();
|
||||
@ -90,7 +90,7 @@ unsigned SparcInstrInfo::isStoreToStackSlot(MachineInstr *MI,
|
||||
if (MI->getOpcode() == SP::STri ||
|
||||
MI->getOpcode() == SP::STFri ||
|
||||
MI->getOpcode() == SP::STDFri) {
|
||||
if (MI->getOperand(0).isFrameIndex() && MI->getOperand(1).isImmediate() &&
|
||||
if (MI->getOperand(0).isFI() && MI->getOperand(1).isImm() &&
|
||||
MI->getOperand(1).getImm() == 0) {
|
||||
FrameIndex = MI->getOperand(0).getIndex();
|
||||
return MI->getOperand(2).getReg();
|
||||
@ -168,12 +168,12 @@ void SparcInstrInfo::storeRegToAddr(MachineFunction &MF, unsigned SrcReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc));
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else {
|
||||
assert(MO.isFrameIndex());
|
||||
assert(MO.isFI());
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
}
|
||||
}
|
||||
@ -212,12 +212,12 @@ void SparcInstrInfo::loadRegFromAddr(MachineFunction &MF, unsigned DestReg,
|
||||
MachineInstrBuilder MIB = BuildMI(MF, get(Opc), DestReg);
|
||||
for (unsigned i = 0, e = Addr.size(); i != e; ++i) {
|
||||
MachineOperand &MO = Addr[i];
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB.addReg(MO.getReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB.addImm(MO.getImm());
|
||||
else {
|
||||
assert(MO.isFrameIndex());
|
||||
assert(MO.isFI());
|
||||
MIB.addFrameIndex(MO.getIndex());
|
||||
}
|
||||
}
|
||||
@ -236,8 +236,8 @@ MachineInstr *SparcInstrInfo::foldMemoryOperand(MachineFunction &MF,
|
||||
MachineInstr *NewMI = NULL;
|
||||
switch (MI->getOpcode()) {
|
||||
case SP::ORrr:
|
||||
if (MI->getOperand(1).isRegister() && MI->getOperand(1).getReg() == SP::G0&&
|
||||
MI->getOperand(0).isRegister() && MI->getOperand(2).isRegister()) {
|
||||
if (MI->getOperand(1).isReg() && MI->getOperand(1).getReg() == SP::G0&&
|
||||
MI->getOperand(0).isReg() && MI->getOperand(2).isReg()) {
|
||||
if (OpNum == 0) // COPY -> STORE
|
||||
NewMI = BuildMI(MF, get(SP::STri)).addFrameIndex(FI).addImm(0)
|
||||
.addReg(MI->getOperand(2).getReg());
|
||||
|
@ -80,7 +80,7 @@ void SparcRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
|
||||
unsigned i = 0;
|
||||
MachineInstr &MI = *II;
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
|
@ -546,9 +546,9 @@ void X86ATTAsmPrinter::printMemReference(const MachineInstr *MI, unsigned Op,
|
||||
const MachineOperand &DispSpec = MI->getOperand(Op+3);
|
||||
|
||||
bool NotRIPRel = IndexReg.getReg() || BaseReg.getReg();
|
||||
if (DispSpec.isGlobalAddress() ||
|
||||
DispSpec.isConstantPoolIndex() ||
|
||||
DispSpec.isJumpTableIndex()) {
|
||||
if (DispSpec.isGlobal() ||
|
||||
DispSpec.isCPI() ||
|
||||
DispSpec.isJTI()) {
|
||||
printOperand(MI, Op+3, "mem", NotRIPRel);
|
||||
} else {
|
||||
int DispVal = DispSpec.getImm();
|
||||
@ -675,7 +675,7 @@ bool X86ATTAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
case 'w': // Print HImode register
|
||||
case 'k': // Print SImode register
|
||||
case 'q': // Print DImode register
|
||||
if (MI->getOperand(OpNo).isRegister())
|
||||
if (MI->getOperand(OpNo).isReg())
|
||||
return printAsmMRegister(MI->getOperand(OpNo), ExtraCode[0]);
|
||||
printOperand(MI, OpNo);
|
||||
return false;
|
||||
|
@ -298,8 +298,8 @@ void X86IntelAsmPrinter::printMemReference(const MachineInstr *MI, unsigned Op,
|
||||
NeedPlus = true;
|
||||
}
|
||||
|
||||
if (DispSpec.isGlobalAddress() || DispSpec.isConstantPoolIndex() ||
|
||||
DispSpec.isJumpTableIndex()) {
|
||||
if (DispSpec.isGlobal() || DispSpec.isCPI() ||
|
||||
DispSpec.isJTI()) {
|
||||
if (NeedPlus)
|
||||
O << " + ";
|
||||
printOp(DispSpec, "mem");
|
||||
|
@ -44,7 +44,7 @@ struct VISIBILITY_HIDDEN X86IntelAsmPrinter : public AsmPrinter {
|
||||
void printOperand(const MachineInstr *MI, unsigned OpNo,
|
||||
const char *Modifier = 0) {
|
||||
const MachineOperand &MO = MI->getOperand(OpNo);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
assert(TargetRegisterInfo::isPhysicalRegister(MO.getReg()) &&
|
||||
"Not physreg??");
|
||||
O << TM.getRegisterInfo()->get(MO.getReg()).Name; // Capitalized names
|
||||
|
@ -268,7 +268,7 @@ void Emitter::emitDisplacementField(const MachineOperand *RelocOp,
|
||||
|
||||
// Otherwise, this is something that requires a relocation. Emit it as such
|
||||
// now.
|
||||
if (RelocOp->isGlobalAddress()) {
|
||||
if (RelocOp->isGlobal()) {
|
||||
// In 64-bit static small code model, we could potentially emit absolute.
|
||||
// But it's probably not beneficial.
|
||||
// 89 05 00 00 00 00 mov %eax,0(%rip) # PC-relative
|
||||
@ -279,11 +279,11 @@ void Emitter::emitDisplacementField(const MachineOperand *RelocOp,
|
||||
bool isLazy = gvNeedsLazyPtr(RelocOp->getGlobal());
|
||||
emitGlobalAddress(RelocOp->getGlobal(), rt, RelocOp->getOffset(),
|
||||
PCAdj, NeedStub, isLazy);
|
||||
} else if (RelocOp->isConstantPoolIndex()) {
|
||||
} else if (RelocOp->isCPI()) {
|
||||
unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_picrel_word;
|
||||
emitConstPoolAddress(RelocOp->getIndex(), rt,
|
||||
RelocOp->getOffset(), PCAdj);
|
||||
} else if (RelocOp->isJumpTableIndex()) {
|
||||
} else if (RelocOp->isJTI()) {
|
||||
unsigned rt = Is64BitMode ? X86::reloc_pcrel_word : X86::reloc_picrel_word;
|
||||
emitJumpTableAddress(RelocOp->getIndex(), rt, PCAdj);
|
||||
} else {
|
||||
@ -299,16 +299,16 @@ void Emitter::emitMemModRMByte(const MachineInstr &MI,
|
||||
const MachineOperand *DispForReloc = 0;
|
||||
|
||||
// Figure out what sort of displacement we have to handle here.
|
||||
if (Op3.isGlobalAddress()) {
|
||||
if (Op3.isGlobal()) {
|
||||
DispForReloc = &Op3;
|
||||
} else if (Op3.isConstantPoolIndex()) {
|
||||
} else if (Op3.isCPI()) {
|
||||
if (Is64BitMode || IsPIC) {
|
||||
DispForReloc = &Op3;
|
||||
} else {
|
||||
DispVal += MCE.getConstantPoolEntryAddress(Op3.getIndex());
|
||||
DispVal += Op3.getOffset();
|
||||
}
|
||||
} else if (Op3.isJumpTableIndex()) {
|
||||
} else if (Op3.isJTI()) {
|
||||
if (Is64BitMode || IsPIC) {
|
||||
DispForReloc = &Op3;
|
||||
} else {
|
||||
@ -522,14 +522,14 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
const MachineOperand &MO = MI.getOperand(CurOp++);
|
||||
|
||||
DOUT << "RawFrm CurOp " << CurOp << "\n";
|
||||
DOUT << "isMachineBasicBlock " << MO.isMachineBasicBlock() << "\n";
|
||||
DOUT << "isGlobalAddress " << MO.isGlobalAddress() << "\n";
|
||||
DOUT << "isExternalSymbol " << MO.isExternalSymbol() << "\n";
|
||||
DOUT << "isImmediate " << MO.isImmediate() << "\n";
|
||||
DOUT << "isMBB " << MO.isMBB() << "\n";
|
||||
DOUT << "isGlobal " << MO.isGlobal() << "\n";
|
||||
DOUT << "isSymbol " << MO.isSymbol() << "\n";
|
||||
DOUT << "isImm " << MO.isImm() << "\n";
|
||||
|
||||
if (MO.isMachineBasicBlock()) {
|
||||
if (MO.isMBB()) {
|
||||
emitPCRelativeBlockAddress(MO.getMBB());
|
||||
} else if (MO.isGlobalAddress()) {
|
||||
} else if (MO.isGlobal()) {
|
||||
// Assume undefined functions may be outside the Small codespace.
|
||||
bool NeedStub =
|
||||
(Is64BitMode &&
|
||||
@ -538,9 +538,9 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
Opcode == X86::TAILJMPd;
|
||||
emitGlobalAddress(MO.getGlobal(), X86::reloc_pcrel_word,
|
||||
0, 0, NeedStub);
|
||||
} else if (MO.isExternalSymbol()) {
|
||||
} else if (MO.isSymbol()) {
|
||||
emitExternalSymbolAddress(MO.getSymbolName(), X86::reloc_pcrel_word);
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
emitConstant(MO.getImm(), X86InstrInfo::sizeOfImm(Desc));
|
||||
} else {
|
||||
assert(0 && "Unknown RawFrm operand!");
|
||||
@ -554,7 +554,7 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO1 = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO1.isImmediate())
|
||||
if (MO1.isImm())
|
||||
emitConstant(MO1.getImm(), Size);
|
||||
else {
|
||||
unsigned rt = Is64BitMode ? X86::reloc_pcrel_word
|
||||
@ -562,16 +562,16 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
// This should not occur on Darwin for relocatable objects.
|
||||
if (Opcode == X86::MOV64ri)
|
||||
rt = X86::reloc_absolute_dword; // FIXME: add X86II flag?
|
||||
if (MO1.isGlobalAddress()) {
|
||||
if (MO1.isGlobal()) {
|
||||
bool NeedStub = isa<Function>(MO1.getGlobal());
|
||||
bool isLazy = gvNeedsLazyPtr(MO1.getGlobal());
|
||||
emitGlobalAddress(MO1.getGlobal(), rt, MO1.getOffset(), 0,
|
||||
NeedStub, isLazy);
|
||||
} else if (MO1.isExternalSymbol())
|
||||
} else if (MO1.isSymbol())
|
||||
emitExternalSymbolAddress(MO1.getSymbolName(), rt);
|
||||
else if (MO1.isConstantPoolIndex())
|
||||
else if (MO1.isCPI())
|
||||
emitConstPoolAddress(MO1.getIndex(), rt);
|
||||
else if (MO1.isJumpTableIndex())
|
||||
else if (MO1.isJTI())
|
||||
emitJumpTableAddress(MO1.getIndex(), rt);
|
||||
}
|
||||
}
|
||||
@ -627,23 +627,23 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO1 = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO1.isImmediate())
|
||||
if (MO1.isImm())
|
||||
emitConstant(MO1.getImm(), Size);
|
||||
else {
|
||||
unsigned rt = Is64BitMode ? X86::reloc_pcrel_word
|
||||
: (IsPIC ? X86::reloc_picrel_word : X86::reloc_absolute_word);
|
||||
if (Opcode == X86::MOV64ri32)
|
||||
rt = X86::reloc_absolute_word; // FIXME: add X86II flag?
|
||||
if (MO1.isGlobalAddress()) {
|
||||
if (MO1.isGlobal()) {
|
||||
bool NeedStub = isa<Function>(MO1.getGlobal());
|
||||
bool isLazy = gvNeedsLazyPtr(MO1.getGlobal());
|
||||
emitGlobalAddress(MO1.getGlobal(), rt, MO1.getOffset(), 0,
|
||||
NeedStub, isLazy);
|
||||
} else if (MO1.isExternalSymbol())
|
||||
} else if (MO1.isSymbol())
|
||||
emitExternalSymbolAddress(MO1.getSymbolName(), rt);
|
||||
else if (MO1.isConstantPoolIndex())
|
||||
else if (MO1.isCPI())
|
||||
emitConstPoolAddress(MO1.getIndex(), rt);
|
||||
else if (MO1.isJumpTableIndex())
|
||||
else if (MO1.isJTI())
|
||||
emitJumpTableAddress(MO1.getIndex(), rt);
|
||||
}
|
||||
}
|
||||
@ -654,7 +654,7 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
case X86II::MRM4m: case X86II::MRM5m:
|
||||
case X86II::MRM6m: case X86II::MRM7m: {
|
||||
intptr_t PCAdj = (CurOp+4 != NumOps) ?
|
||||
(MI.getOperand(CurOp+4).isImmediate() ? X86InstrInfo::sizeOfImm(Desc) : 4) : 0;
|
||||
(MI.getOperand(CurOp+4).isImm() ? X86InstrInfo::sizeOfImm(Desc) : 4) : 0;
|
||||
|
||||
MCE.emitByte(BaseOpcode);
|
||||
emitMemModRMByte(MI, CurOp, (Desc->TSFlags & X86II::FormMask)-X86II::MRM0m,
|
||||
@ -664,23 +664,23 @@ void Emitter::emitInstruction(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO.isImmediate())
|
||||
if (MO.isImm())
|
||||
emitConstant(MO.getImm(), Size);
|
||||
else {
|
||||
unsigned rt = Is64BitMode ? X86::reloc_pcrel_word
|
||||
: (IsPIC ? X86::reloc_picrel_word : X86::reloc_absolute_word);
|
||||
if (Opcode == X86::MOV64mi32)
|
||||
rt = X86::reloc_absolute_word; // FIXME: add X86II flag?
|
||||
if (MO.isGlobalAddress()) {
|
||||
if (MO.isGlobal()) {
|
||||
bool NeedStub = isa<Function>(MO.getGlobal());
|
||||
bool isLazy = gvNeedsLazyPtr(MO.getGlobal());
|
||||
emitGlobalAddress(MO.getGlobal(), rt, MO.getOffset(), 0,
|
||||
NeedStub, isLazy);
|
||||
} else if (MO.isExternalSymbol())
|
||||
} else if (MO.isSymbol())
|
||||
emitExternalSymbolAddress(MO.getSymbolName(), rt);
|
||||
else if (MO.isConstantPoolIndex())
|
||||
else if (MO.isCPI())
|
||||
emitConstPoolAddress(MO.getIndex(), rt);
|
||||
else if (MO.isJumpTableIndex())
|
||||
else if (MO.isJTI())
|
||||
emitJumpTableAddress(MO.getIndex(), rt);
|
||||
}
|
||||
}
|
||||
|
@ -168,7 +168,7 @@ FunctionPass *llvm::createX86FloatingPointStackifierPass() { return new FPS(); }
|
||||
/// getFPReg - Return the X86::FPx register number for the specified operand.
|
||||
/// For example, this returns 3 for X86::FP3.
|
||||
static unsigned getFPReg(const MachineOperand &MO) {
|
||||
assert(MO.isRegister() && "Expected an FP register!");
|
||||
assert(MO.isReg() && "Expected an FP register!");
|
||||
unsigned Reg = MO.getReg();
|
||||
assert(Reg >= X86::FP0 && Reg <= X86::FP6 && "Expected FP register!");
|
||||
return Reg - X86::FP0;
|
||||
@ -240,7 +240,7 @@ bool FPS::processBasicBlock(MachineFunction &MF, MachineBasicBlock &BB) {
|
||||
SmallVector<unsigned, 8> DeadRegs;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDead())
|
||||
if (MO.isReg() && MO.isDead())
|
||||
DeadRegs.push_back(MO.getReg());
|
||||
}
|
||||
|
||||
@ -1021,7 +1021,7 @@ void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) {
|
||||
unsigned NumKills = 0;
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &Op = MI->getOperand(i);
|
||||
if (!Op.isRegister() || Op.getReg() < X86::FP0 || Op.getReg() > X86::FP6)
|
||||
if (!Op.isReg() || Op.getReg() < X86::FP0 || Op.getReg() > X86::FP6)
|
||||
continue;
|
||||
assert(Op.isUse() && "Only handle inline asm uses right now");
|
||||
|
||||
@ -1061,7 +1061,7 @@ void FPS::handleSpecialFP(MachineBasicBlock::iterator &I) {
|
||||
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &Op = MI->getOperand(i);
|
||||
if (!Op.isRegister() || Op.getReg() < X86::FP0 || Op.getReg() > X86::FP6)
|
||||
if (!Op.isReg() || Op.getReg() < X86::FP0 || Op.getReg() > X86::FP6)
|
||||
continue;
|
||||
// FP Register uses must be kills unless there are two uses of the same
|
||||
// register, in which case only one will be a kill.
|
||||
|
@ -703,10 +703,10 @@ void X86DAGToDAGISel::InstructionSelectPostProcessing() {
|
||||
bool ContainsFPCode = false;
|
||||
for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end();
|
||||
!ContainsFPCode && I != E; ++I) {
|
||||
if (I->getNumOperands() != 0 && I->getOperand(0).isRegister()) {
|
||||
if (I->getNumOperands() != 0 && I->getOperand(0).isReg()) {
|
||||
const TargetRegisterClass *clas;
|
||||
for (unsigned op = 0, e = I->getNumOperands(); op != e; ++op) {
|
||||
if (I->getOperand(op).isRegister() && I->getOperand(op).isDef() &&
|
||||
if (I->getOperand(op).isReg() && I->getOperand(op).isDef() &&
|
||||
TargetRegisterInfo::isVirtualRegister(I->getOperand(op).getReg()) &&
|
||||
((clas = RegInfo->getRegClass(I->getOperand(0).getReg())) ==
|
||||
X86::RFP32RegisterClass ||
|
||||
|
@ -6385,10 +6385,10 @@ X86TargetLowering::EmitAtomicBitwiseWithCustomInserter(MachineInstr *bInstr,
|
||||
tt = t1;
|
||||
|
||||
unsigned t2 = F->getRegInfo().createVirtualRegister(RC);
|
||||
assert((argOpers[valArgIndx]->isRegister() ||
|
||||
argOpers[valArgIndx]->isImmediate()) &&
|
||||
assert((argOpers[valArgIndx]->isReg() ||
|
||||
argOpers[valArgIndx]->isImm()) &&
|
||||
"invalid operand");
|
||||
if (argOpers[valArgIndx]->isRegister())
|
||||
if (argOpers[valArgIndx]->isReg())
|
||||
MIB = BuildMI(newMBB, TII->get(regOpc), t2);
|
||||
else
|
||||
MIB = BuildMI(newMBB, TII->get(immOpc), t2);
|
||||
@ -6507,19 +6507,19 @@ X86TargetLowering::EmitAtomicBit6432WithCustomInserter(MachineInstr *bInstr,
|
||||
tt2 = t2;
|
||||
}
|
||||
|
||||
assert((argOpers[4]->isRegister() || argOpers[4]->isImmediate()) &&
|
||||
assert((argOpers[4]->isReg() || argOpers[4]->isImm()) &&
|
||||
"invalid operand");
|
||||
unsigned t5 = F->getRegInfo().createVirtualRegister(RC);
|
||||
unsigned t6 = F->getRegInfo().createVirtualRegister(RC);
|
||||
if (argOpers[4]->isRegister())
|
||||
if (argOpers[4]->isReg())
|
||||
MIB = BuildMI(newMBB, TII->get(regOpcL), t5);
|
||||
else
|
||||
MIB = BuildMI(newMBB, TII->get(immOpcL), t5);
|
||||
MIB.addReg(tt1);
|
||||
(*MIB).addOperand(*argOpers[4]);
|
||||
assert(argOpers[5]->isRegister() == argOpers[4]->isRegister());
|
||||
assert(argOpers[5]->isImmediate() == argOpers[4]->isImmediate());
|
||||
if (argOpers[5]->isRegister())
|
||||
assert(argOpers[5]->isReg() == argOpers[4]->isReg());
|
||||
assert(argOpers[5]->isImm() == argOpers[4]->isImm());
|
||||
if (argOpers[5]->isReg())
|
||||
MIB = BuildMI(newMBB, TII->get(regOpcH), t6);
|
||||
else
|
||||
MIB = BuildMI(newMBB, TII->get(immOpcH), t6);
|
||||
@ -6613,12 +6613,12 @@ X86TargetLowering::EmitAtomicMinMaxWithCustomInserter(MachineInstr *mInstr,
|
||||
(*MIB).addOperand(*argOpers[i]);
|
||||
|
||||
// We only support register and immediate values
|
||||
assert((argOpers[valArgIndx]->isRegister() ||
|
||||
argOpers[valArgIndx]->isImmediate()) &&
|
||||
assert((argOpers[valArgIndx]->isReg() ||
|
||||
argOpers[valArgIndx]->isImm()) &&
|
||||
"invalid operand");
|
||||
|
||||
unsigned t2 = F->getRegInfo().createVirtualRegister(X86::GR32RegisterClass);
|
||||
if (argOpers[valArgIndx]->isRegister())
|
||||
if (argOpers[valArgIndx]->isReg())
|
||||
MIB = BuildMI(newMBB, TII->get(X86::MOV32rr), t2);
|
||||
else
|
||||
MIB = BuildMI(newMBB, TII->get(X86::MOV32rr), t2);
|
||||
@ -6766,7 +6766,7 @@ X86TargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
|
||||
|
||||
X86AddressMode AM;
|
||||
MachineOperand &Op = MI->getOperand(0);
|
||||
if (Op.isRegister()) {
|
||||
if (Op.isReg()) {
|
||||
AM.BaseType = X86AddressMode::RegBase;
|
||||
AM.Base.Reg = Op.getReg();
|
||||
} else {
|
||||
@ -6774,13 +6774,13 @@ X86TargetLowering::EmitInstrWithCustomInserter(MachineInstr *MI,
|
||||
AM.Base.FrameIndex = Op.getIndex();
|
||||
}
|
||||
Op = MI->getOperand(1);
|
||||
if (Op.isImmediate())
|
||||
if (Op.isImm())
|
||||
AM.Scale = Op.getImm();
|
||||
Op = MI->getOperand(2);
|
||||
if (Op.isImmediate())
|
||||
if (Op.isImm())
|
||||
AM.IndexReg = Op.getImm();
|
||||
Op = MI->getOperand(3);
|
||||
if (Op.isGlobalAddress()) {
|
||||
if (Op.isGlobal()) {
|
||||
AM.GV = Op.getGlobal();
|
||||
} else {
|
||||
AM.Disp = Op.getImm();
|
||||
|
@ -679,8 +679,8 @@ bool X86InstrInfo::isMoveInstr(const MachineInstr& MI,
|
||||
case X86::MMX_MOVD64rr:
|
||||
case X86::MMX_MOVQ64rr:
|
||||
assert(MI.getNumOperands() >= 2 &&
|
||||
MI.getOperand(0).isRegister() &&
|
||||
MI.getOperand(1).isRegister() &&
|
||||
MI.getOperand(0).isReg() &&
|
||||
MI.getOperand(1).isReg() &&
|
||||
"invalid register-register move instruction");
|
||||
sourceReg = MI.getOperand(1).getReg();
|
||||
destReg = MI.getOperand(0).getReg();
|
||||
@ -705,8 +705,8 @@ unsigned X86InstrInfo::isLoadFromStackSlot(MachineInstr *MI,
|
||||
case X86::MOVAPDrm:
|
||||
case X86::MMX_MOVD64rm:
|
||||
case X86::MMX_MOVQ64rm:
|
||||
if (MI->getOperand(1).isFrameIndex() && MI->getOperand(2).isImmediate() &&
|
||||
MI->getOperand(3).isRegister() && MI->getOperand(4).isImmediate() &&
|
||||
if (MI->getOperand(1).isFI() && MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(3).isReg() && MI->getOperand(4).isImm() &&
|
||||
MI->getOperand(2).getImm() == 1 &&
|
||||
MI->getOperand(3).getReg() == 0 &&
|
||||
MI->getOperand(4).getImm() == 0) {
|
||||
@ -736,8 +736,8 @@ unsigned X86InstrInfo::isStoreToStackSlot(MachineInstr *MI,
|
||||
case X86::MMX_MOVD64mr:
|
||||
case X86::MMX_MOVQ64mr:
|
||||
case X86::MMX_MOVNTQmr:
|
||||
if (MI->getOperand(0).isFrameIndex() && MI->getOperand(1).isImmediate() &&
|
||||
MI->getOperand(2).isRegister() && MI->getOperand(3).isImmediate() &&
|
||||
if (MI->getOperand(0).isFI() && MI->getOperand(1).isImm() &&
|
||||
MI->getOperand(2).isReg() && MI->getOperand(3).isImm() &&
|
||||
MI->getOperand(1).getImm() == 1 &&
|
||||
MI->getOperand(2).getReg() == 0 &&
|
||||
MI->getOperand(3).getImm() == 0) {
|
||||
@ -789,17 +789,17 @@ X86InstrInfo::isReallyTriviallyReMaterializable(const MachineInstr *MI) const {
|
||||
case X86::MMX_MOVD64rm:
|
||||
case X86::MMX_MOVQ64rm: {
|
||||
// Loads from constant pools are trivially rematerializable.
|
||||
if (MI->getOperand(1).isRegister() &&
|
||||
MI->getOperand(2).isImmediate() &&
|
||||
MI->getOperand(3).isRegister() && MI->getOperand(3).getReg() == 0 &&
|
||||
(MI->getOperand(4).isConstantPoolIndex() ||
|
||||
(MI->getOperand(4).isGlobalAddress() &&
|
||||
if (MI->getOperand(1).isReg() &&
|
||||
MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(3).isReg() && MI->getOperand(3).getReg() == 0 &&
|
||||
(MI->getOperand(4).isCPI() ||
|
||||
(MI->getOperand(4).isGlobal() &&
|
||||
isGVStub(MI->getOperand(4).getGlobal(), TM)))) {
|
||||
unsigned BaseReg = MI->getOperand(1).getReg();
|
||||
if (BaseReg == 0)
|
||||
return true;
|
||||
// Allow re-materialization of PIC load.
|
||||
if (!ReMatPICStubLoad && MI->getOperand(4).isGlobalAddress())
|
||||
if (!ReMatPICStubLoad && MI->getOperand(4).isGlobal())
|
||||
return false;
|
||||
const MachineFunction &MF = *MI->getParent()->getParent();
|
||||
const MachineRegisterInfo &MRI = MF.getRegInfo();
|
||||
@ -819,11 +819,11 @@ X86InstrInfo::isReallyTriviallyReMaterializable(const MachineInstr *MI) const {
|
||||
|
||||
case X86::LEA32r:
|
||||
case X86::LEA64r: {
|
||||
if (MI->getOperand(2).isImmediate() &&
|
||||
MI->getOperand(3).isRegister() && MI->getOperand(3).getReg() == 0 &&
|
||||
!MI->getOperand(4).isRegister()) {
|
||||
if (MI->getOperand(2).isImm() &&
|
||||
MI->getOperand(3).isReg() && MI->getOperand(3).getReg() == 0 &&
|
||||
!MI->getOperand(4).isReg()) {
|
||||
// lea fi#, lea GV, etc. are all rematerializable.
|
||||
if (!MI->getOperand(1).isRegister())
|
||||
if (!MI->getOperand(1).isReg())
|
||||
return true;
|
||||
unsigned BaseReg = MI->getOperand(1).getReg();
|
||||
if (BaseReg == 0)
|
||||
@ -857,7 +857,7 @@ static bool isSafeToClobberEFLAGS(MachineBasicBlock &MBB,
|
||||
bool SeenDef = false;
|
||||
for (unsigned j = 0, e = I->getNumOperands(); j != e; ++j) {
|
||||
MachineOperand &MO = I->getOperand(j);
|
||||
if (!MO.isRegister())
|
||||
if (!MO.isReg())
|
||||
continue;
|
||||
if (MO.getReg() == X86::EFLAGS) {
|
||||
if (MO.isUse())
|
||||
@ -880,7 +880,7 @@ void X86InstrInfo::reMaterialize(MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I,
|
||||
unsigned DestReg,
|
||||
const MachineInstr *Orig) const {
|
||||
unsigned SubIdx = Orig->getOperand(0).isRegister()
|
||||
unsigned SubIdx = Orig->getOperand(0).isReg()
|
||||
? Orig->getOperand(0).getSubReg() : 0;
|
||||
bool ChangeSubIdx = SubIdx != 0;
|
||||
if (SubIdx && TargetRegisterInfo::isPhysicalRegister(DestReg)) {
|
||||
@ -942,14 +942,14 @@ bool X86InstrInfo::isInvariantLoad(MachineInstr *MI) const {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
const MachineOperand &MO = MI->getOperand(i);
|
||||
// Loads from constant pools are trivially invariant.
|
||||
if (MO.isConstantPoolIndex())
|
||||
if (MO.isCPI())
|
||||
return true;
|
||||
|
||||
if (MO.isGlobalAddress())
|
||||
if (MO.isGlobal())
|
||||
return isGVStub(MO.getGlobal(), TM);
|
||||
|
||||
// If this is a load from an invariant stack slot, the load is a constant.
|
||||
if (MO.isFrameIndex()) {
|
||||
if (MO.isFI()) {
|
||||
const MachineFrameInfo &MFI =
|
||||
*MI->getParent()->getParent()->getFrameInfo();
|
||||
int Idx = MO.getIndex();
|
||||
@ -967,7 +967,7 @@ bool X86InstrInfo::isInvariantLoad(MachineInstr *MI) const {
|
||||
static bool hasLiveCondCodeDef(MachineInstr *MI) {
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (MO.isRegister() && MO.isDef() &&
|
||||
if (MO.isReg() && MO.isDef() &&
|
||||
MO.getReg() == X86::EFLAGS && !MO.isDead()) {
|
||||
return true;
|
||||
}
|
||||
@ -1162,7 +1162,7 @@ X86InstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
|
||||
case X86::ADD64ri32:
|
||||
case X86::ADD64ri8:
|
||||
assert(MI->getNumOperands() >= 3 && "Unknown add instruction!");
|
||||
if (MI->getOperand(2).isImmediate())
|
||||
if (MI->getOperand(2).isImm())
|
||||
NewMI = addRegOffset(BuildMI(MF, get(X86::LEA64r))
|
||||
.addReg(Dest, true, false, false, isDead),
|
||||
Src, isKill, MI->getOperand(2).getImm());
|
||||
@ -1170,7 +1170,7 @@ X86InstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
|
||||
case X86::ADD32ri:
|
||||
case X86::ADD32ri8:
|
||||
assert(MI->getNumOperands() >= 3 && "Unknown add instruction!");
|
||||
if (MI->getOperand(2).isImmediate()) {
|
||||
if (MI->getOperand(2).isImm()) {
|
||||
unsigned Opc = is64Bit ? X86::LEA64_32r : X86::LEA32r;
|
||||
NewMI = addRegOffset(BuildMI(MF, get(Opc))
|
||||
.addReg(Dest, true, false, false, isDead),
|
||||
@ -1181,7 +1181,7 @@ X86InstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
|
||||
case X86::ADD16ri8:
|
||||
if (DisableLEA16) return 0;
|
||||
assert(MI->getNumOperands() >= 3 && "Unknown add instruction!");
|
||||
if (MI->getOperand(2).isImmediate())
|
||||
if (MI->getOperand(2).isImm())
|
||||
NewMI = addRegOffset(BuildMI(MF, get(X86::LEA16r))
|
||||
.addReg(Dest, true, false, false, isDead),
|
||||
Src, isKill, MI->getOperand(2).getImm());
|
||||
@ -1190,7 +1190,7 @@ X86InstrInfo::convertToThreeAddress(MachineFunction::iterator &MFI,
|
||||
if (DisableLEA16) return 0;
|
||||
case X86::SHL32ri:
|
||||
case X86::SHL64ri: {
|
||||
assert(MI->getNumOperands() >= 3 && MI->getOperand(2).isImmediate() &&
|
||||
assert(MI->getNumOperands() >= 3 && MI->getOperand(2).isImm() &&
|
||||
"Unknown shl instruction!");
|
||||
unsigned ShAmt = MI->getOperand(2).getImm();
|
||||
if (ShAmt == 1 || ShAmt == 2 || ShAmt == 3) {
|
||||
@ -1544,20 +1544,20 @@ unsigned X86InstrInfo::RemoveBranch(MachineBasicBlock &MBB) const {
|
||||
|
||||
static const MachineInstrBuilder &X86InstrAddOperand(MachineInstrBuilder &MIB,
|
||||
MachineOperand &MO) {
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MIB = MIB.addReg(MO.getReg(), MO.isDef(), MO.isImplicit(),
|
||||
MO.isKill(), MO.isDead(), MO.getSubReg());
|
||||
else if (MO.isImmediate())
|
||||
else if (MO.isImm())
|
||||
MIB = MIB.addImm(MO.getImm());
|
||||
else if (MO.isFrameIndex())
|
||||
else if (MO.isFI())
|
||||
MIB = MIB.addFrameIndex(MO.getIndex());
|
||||
else if (MO.isGlobalAddress())
|
||||
else if (MO.isGlobal())
|
||||
MIB = MIB.addGlobalAddress(MO.getGlobal(), MO.getOffset());
|
||||
else if (MO.isConstantPoolIndex())
|
||||
else if (MO.isCPI())
|
||||
MIB = MIB.addConstantPoolIndex(MO.getIndex(), MO.getOffset());
|
||||
else if (MO.isJumpTableIndex())
|
||||
else if (MO.isJTI())
|
||||
MIB = MIB.addJumpTableIndex(MO.getIndex());
|
||||
else if (MO.isExternalSymbol())
|
||||
else if (MO.isSymbol())
|
||||
MIB = MIB.addExternalSymbol(MO.getSymbolName());
|
||||
else
|
||||
assert(0 && "Unknown operand for X86InstrAddOperand!");
|
||||
@ -1916,7 +1916,7 @@ static MachineInstr *FuseInst(MachineFunction &MF,
|
||||
for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = MI->getOperand(i);
|
||||
if (i == OpNo) {
|
||||
assert(MO.isRegister() && "Expected to fold into reg operand!");
|
||||
assert(MO.isReg() && "Expected to fold into reg operand!");
|
||||
unsigned NumAddrOps = MOs.size();
|
||||
for (unsigned i = 0; i != NumAddrOps; ++i)
|
||||
MIB = X86InstrAddOperand(MIB, MOs[i]);
|
||||
@ -1958,8 +1958,8 @@ X86InstrInfo::foldMemoryOperand(MachineFunction &MF,
|
||||
// instruction is different than folding it other places. It requires
|
||||
// replacing the *two* registers with the memory location.
|
||||
if (isTwoAddr && NumOps >= 2 && i < 2 &&
|
||||
MI->getOperand(0).isRegister() &&
|
||||
MI->getOperand(1).isRegister() &&
|
||||
MI->getOperand(0).isReg() &&
|
||||
MI->getOperand(1).isReg() &&
|
||||
MI->getOperand(0).getReg() == MI->getOperand(1).getReg()) {
|
||||
OpcodeTablePtr = &RegOp2MemOpTable2Addr;
|
||||
isTwoAddrFold = true;
|
||||
@ -2190,7 +2190,7 @@ bool X86InstrInfo::unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
|
||||
MachineOperand &Op = MI->getOperand(i);
|
||||
if (i >= Index && i < Index+4)
|
||||
AddrOps.push_back(Op);
|
||||
else if (Op.isRegister() && Op.isImplicit())
|
||||
else if (Op.isReg() && Op.isImplicit())
|
||||
ImpOps.push_back(Op);
|
||||
else if (i < Index)
|
||||
BeforeOps.push_back(Op);
|
||||
@ -2205,7 +2205,7 @@ bool X86InstrInfo::unfoldMemoryOperand(MachineFunction &MF, MachineInstr *MI,
|
||||
// Address operands cannot be marked isKill.
|
||||
for (unsigned i = 1; i != 5; ++i) {
|
||||
MachineOperand &MO = NewMIs[0]->getOperand(i);
|
||||
if (MO.isRegister())
|
||||
if (MO.isReg())
|
||||
MO.setIsKill(false);
|
||||
}
|
||||
}
|
||||
@ -2411,7 +2411,7 @@ unsigned X86InstrInfo::sizeOfImm(const TargetInstrDesc *Desc) {
|
||||
/// isX86_64ExtendedReg - Is the MachineOperand a x86-64 extended register?
|
||||
/// e.g. r8, xmm8, etc.
|
||||
bool X86InstrInfo::isX86_64ExtendedReg(const MachineOperand &MO) {
|
||||
if (!MO.isRegister()) return false;
|
||||
if (!MO.isReg()) return false;
|
||||
switch (MO.getReg()) {
|
||||
default: break;
|
||||
case X86::R8: case X86::R9: case X86::R10: case X86::R11:
|
||||
@ -2452,7 +2452,7 @@ unsigned X86InstrInfo::determineREX(const MachineInstr &MI) {
|
||||
unsigned i = isTwoAddr ? 1 : 0;
|
||||
for (unsigned e = NumOps; i != e; ++i) {
|
||||
const MachineOperand& MO = MI.getOperand(i);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
unsigned Reg = MO.getReg();
|
||||
if (isX86_64NonExtLowByteReg(Reg))
|
||||
REX |= 0x40;
|
||||
@ -2482,7 +2482,7 @@ unsigned X86InstrInfo::determineREX(const MachineInstr &MI) {
|
||||
i = isTwoAddr ? 2 : 1;
|
||||
for (; i != NumOps; ++i) {
|
||||
const MachineOperand& MO = MI.getOperand(i);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
if (isX86_64ExtendedReg(MO))
|
||||
REX |= 1 << Bit;
|
||||
Bit++;
|
||||
@ -2502,7 +2502,7 @@ unsigned X86InstrInfo::determineREX(const MachineInstr &MI) {
|
||||
unsigned Bit = 0;
|
||||
for (; i != e; ++i) {
|
||||
const MachineOperand& MO = MI.getOperand(i);
|
||||
if (MO.isRegister()) {
|
||||
if (MO.isReg()) {
|
||||
if (isX86_64ExtendedReg(MO))
|
||||
REX |= 1 << Bit;
|
||||
Bit++;
|
||||
@ -2581,11 +2581,11 @@ static unsigned getDisplacementFieldSize(const MachineOperand *RelocOp) {
|
||||
}
|
||||
|
||||
// Otherwise, this is something that requires a relocation.
|
||||
if (RelocOp->isGlobalAddress()) {
|
||||
if (RelocOp->isGlobal()) {
|
||||
FinalSize += sizeGlobalAddress(false);
|
||||
} else if (RelocOp->isConstantPoolIndex()) {
|
||||
} else if (RelocOp->isCPI()) {
|
||||
FinalSize += sizeConstPoolAddress(false);
|
||||
} else if (RelocOp->isJumpTableIndex()) {
|
||||
} else if (RelocOp->isJTI()) {
|
||||
FinalSize += sizeJumpTableAddress(false);
|
||||
} else {
|
||||
assert(0 && "Unknown value to relocate!");
|
||||
@ -2601,15 +2601,15 @@ static unsigned getMemModRMByteSize(const MachineInstr &MI, unsigned Op,
|
||||
unsigned FinalSize = 0;
|
||||
|
||||
// Figure out what sort of displacement we have to handle here.
|
||||
if (Op3.isGlobalAddress()) {
|
||||
if (Op3.isGlobal()) {
|
||||
DispForReloc = &Op3;
|
||||
} else if (Op3.isConstantPoolIndex()) {
|
||||
} else if (Op3.isCPI()) {
|
||||
if (Is64BitMode || IsPIC) {
|
||||
DispForReloc = &Op3;
|
||||
} else {
|
||||
DispVal = 1;
|
||||
}
|
||||
} else if (Op3.isJumpTableIndex()) {
|
||||
} else if (Op3.isJTI()) {
|
||||
if (Is64BitMode || IsPIC) {
|
||||
DispForReloc = &Op3;
|
||||
} else {
|
||||
@ -2774,13 +2774,13 @@ static unsigned GetInstSizeWithDesc(const MachineInstr &MI,
|
||||
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO = MI.getOperand(CurOp++);
|
||||
if (MO.isMachineBasicBlock()) {
|
||||
if (MO.isMBB()) {
|
||||
FinalSize += sizePCRelativeBlockAddress();
|
||||
} else if (MO.isGlobalAddress()) {
|
||||
} else if (MO.isGlobal()) {
|
||||
FinalSize += sizeGlobalAddress(false);
|
||||
} else if (MO.isExternalSymbol()) {
|
||||
} else if (MO.isSymbol()) {
|
||||
FinalSize += sizeExternalSymbolAddress(false);
|
||||
} else if (MO.isImmediate()) {
|
||||
} else if (MO.isImm()) {
|
||||
FinalSize += sizeConstant(X86InstrInfo::sizeOfImm(Desc));
|
||||
} else {
|
||||
assert(0 && "Unknown RawFrm operand!");
|
||||
@ -2795,19 +2795,19 @@ static unsigned GetInstSizeWithDesc(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO1 = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO1.isImmediate())
|
||||
if (MO1.isImm())
|
||||
FinalSize += sizeConstant(Size);
|
||||
else {
|
||||
bool dword = false;
|
||||
if (Opcode == X86::MOV64ri)
|
||||
dword = true;
|
||||
if (MO1.isGlobalAddress()) {
|
||||
if (MO1.isGlobal()) {
|
||||
FinalSize += sizeGlobalAddress(dword);
|
||||
} else if (MO1.isExternalSymbol())
|
||||
} else if (MO1.isSymbol())
|
||||
FinalSize += sizeExternalSymbolAddress(dword);
|
||||
else if (MO1.isConstantPoolIndex())
|
||||
else if (MO1.isCPI())
|
||||
FinalSize += sizeConstPoolAddress(dword);
|
||||
else if (MO1.isJumpTableIndex())
|
||||
else if (MO1.isJTI())
|
||||
FinalSize += sizeJumpTableAddress(dword);
|
||||
}
|
||||
}
|
||||
@ -2867,19 +2867,19 @@ static unsigned GetInstSizeWithDesc(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO1 = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO1.isImmediate())
|
||||
if (MO1.isImm())
|
||||
FinalSize += sizeConstant(Size);
|
||||
else {
|
||||
bool dword = false;
|
||||
if (Opcode == X86::MOV64ri32)
|
||||
dword = true;
|
||||
if (MO1.isGlobalAddress()) {
|
||||
if (MO1.isGlobal()) {
|
||||
FinalSize += sizeGlobalAddress(dword);
|
||||
} else if (MO1.isExternalSymbol())
|
||||
} else if (MO1.isSymbol())
|
||||
FinalSize += sizeExternalSymbolAddress(dword);
|
||||
else if (MO1.isConstantPoolIndex())
|
||||
else if (MO1.isCPI())
|
||||
FinalSize += sizeConstPoolAddress(dword);
|
||||
else if (MO1.isJumpTableIndex())
|
||||
else if (MO1.isJTI())
|
||||
FinalSize += sizeJumpTableAddress(dword);
|
||||
}
|
||||
}
|
||||
@ -2897,19 +2897,19 @@ static unsigned GetInstSizeWithDesc(const MachineInstr &MI,
|
||||
if (CurOp != NumOps) {
|
||||
const MachineOperand &MO = MI.getOperand(CurOp++);
|
||||
unsigned Size = X86InstrInfo::sizeOfImm(Desc);
|
||||
if (MO.isImmediate())
|
||||
if (MO.isImm())
|
||||
FinalSize += sizeConstant(Size);
|
||||
else {
|
||||
bool dword = false;
|
||||
if (Opcode == X86::MOV64mi32)
|
||||
dword = true;
|
||||
if (MO.isGlobalAddress()) {
|
||||
if (MO.isGlobal()) {
|
||||
FinalSize += sizeGlobalAddress(dword);
|
||||
} else if (MO.isExternalSymbol())
|
||||
} else if (MO.isSymbol())
|
||||
FinalSize += sizeExternalSymbolAddress(dword);
|
||||
else if (MO.isConstantPoolIndex())
|
||||
else if (MO.isCPI())
|
||||
FinalSize += sizeConstPoolAddress(dword);
|
||||
else if (MO.isJumpTableIndex())
|
||||
else if (MO.isJTI())
|
||||
FinalSize += sizeJumpTableAddress(dword);
|
||||
}
|
||||
}
|
||||
|
@ -228,20 +228,20 @@ namespace X86II {
|
||||
}
|
||||
|
||||
inline static bool isScale(const MachineOperand &MO) {
|
||||
return MO.isImmediate() &&
|
||||
return MO.isImm() &&
|
||||
(MO.getImm() == 1 || MO.getImm() == 2 ||
|
||||
MO.getImm() == 4 || MO.getImm() == 8);
|
||||
}
|
||||
|
||||
inline static bool isMem(const MachineInstr *MI, unsigned Op) {
|
||||
if (MI->getOperand(Op).isFrameIndex()) return true;
|
||||
if (MI->getOperand(Op).isFI()) return true;
|
||||
return Op+4 <= MI->getNumOperands() &&
|
||||
MI->getOperand(Op ).isRegister() && isScale(MI->getOperand(Op+1)) &&
|
||||
MI->getOperand(Op+2).isRegister() &&
|
||||
(MI->getOperand(Op+3).isImmediate() ||
|
||||
MI->getOperand(Op+3).isGlobalAddress() ||
|
||||
MI->getOperand(Op+3).isConstantPoolIndex() ||
|
||||
MI->getOperand(Op+3).isJumpTableIndex());
|
||||
MI->getOperand(Op ).isReg() && isScale(MI->getOperand(Op+1)) &&
|
||||
MI->getOperand(Op+2).isReg() &&
|
||||
(MI->getOperand(Op+3).isImm() ||
|
||||
MI->getOperand(Op+3).isGlobal() ||
|
||||
MI->getOperand(Op+3).isCPI() ||
|
||||
MI->getOperand(Op+3).isJTI());
|
||||
}
|
||||
|
||||
class X86InstrInfo : public TargetInstrInfoImpl {
|
||||
|
@ -58,8 +58,9 @@ class X86MachineFunctionInfo : public MachineFunctionInfo {
|
||||
/// holds the virtual register into which the sret argument is passed.
|
||||
unsigned SRetReturnReg;
|
||||
|
||||
/// GlobalBaseReg - keeps track of the virtual register mapped onto global
|
||||
/// base register.
|
||||
/// GlobalBaseReg - keeps track of the virtual register initialized for
|
||||
/// use as the global base register. This is used for PIC in some PIC
|
||||
/// relocation models.
|
||||
unsigned GlobalBaseReg;
|
||||
|
||||
public:
|
||||
|
@ -416,7 +416,7 @@ void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
||||
unsigned i = 0;
|
||||
MachineInstr &MI = *II;
|
||||
MachineFunction &MF = *MI.getParent()->getParent();
|
||||
while (!MI.getOperand(i).isFrameIndex()) {
|
||||
while (!MI.getOperand(i).isFI()) {
|
||||
++i;
|
||||
assert(i < MI.getNumOperands() && "Instr doesn't have FrameIndex operand!");
|
||||
}
|
||||
@ -895,7 +895,7 @@ void X86RegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
if (RetOpcode == X86::EH_RETURN || RetOpcode == X86::EH_RETURN64) {
|
||||
MBBI = prior(MBB.end());
|
||||
MachineOperand &DestAddr = MBBI->getOperand(0);
|
||||
assert(DestAddr.isRegister() && "Offset should be in register!");
|
||||
assert(DestAddr.isReg() && "Offset should be in register!");
|
||||
BuildMI(MBB, MBBI,
|
||||
TII.get(Is64Bit ? X86::MOV64rr : X86::MOV32rr),
|
||||
StackPtr).addReg(DestAddr.getReg());
|
||||
@ -905,7 +905,7 @@ void X86RegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
MBBI = prior(MBB.end());
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
MachineOperand &StackAdjust = MBBI->getOperand(1);
|
||||
assert( StackAdjust.isImmediate() && "Expecting immediate value.");
|
||||
assert(StackAdjust.isImm() && "Expecting immediate value.");
|
||||
|
||||
// Adjust stack pointer.
|
||||
int StackAdj = StackAdjust.getImm();
|
||||
|
Loading…
Reference in New Issue
Block a user