//===----------------------------------------------------------------------===//
class MachineInstr {
- int opCode; // the opcode
+ int Opcode; // the opcode
std::vector<MachineOperand> operands; // the operands
unsigned numImplicitRefs; // number of implicit operands
MachineInstr* prev, *next; // links for our intrusive list
/// Accessors for opcode.
///
- const int getOpcode() const { return opCode; }
+ const int getOpcode() const { return Opcode; }
/// Access to explicit operands of the instruction.
///
/// setOpcode - Replace the opcode of the current instruction with a new one.
///
- void setOpcode(unsigned Op) { opCode = Op; }
+ void setOpcode(unsigned Op) { Opcode = Op; }
/// RemoveOperand - Erase an operand from an instruction, leaving it with one
/// fewer operand than it started with.
extern const TargetInstrDescriptor *TargetInstrDescriptors;
// Constructor for instructions with variable #operands
-MachineInstr::MachineInstr(MachineOpCode OpCode, unsigned numOperands)
- : opCode(OpCode),
- operands(numOperands, MachineOperand()),
- numImplicitRefs(0)
-{
+MachineInstr::MachineInstr(MachineOpCode opcode, unsigned numOperands)
+ : Opcode(opcode), operands(numOperands, MachineOperand()), numImplicitRefs(0){
}
/// MachineInstr ctor - This constructor only does a _reserve_ of the operands,
/// add* methods below to fill up the operands, instead of the Set methods.
/// Eventually, the "resizing" ctors will be phased out.
///
-MachineInstr::MachineInstr(MachineOpCode Opcode, unsigned numOperands,
+MachineInstr::MachineInstr(MachineOpCode opcode, unsigned numOperands,
bool XX, bool YY)
- : opCode(Opcode),
- numImplicitRefs(0)
-{
+ : Opcode(opcode), numImplicitRefs(0) {
operands.reserve(numOperands);
}
/// MachineInstr ctor - Work exactly the same as the ctor above, except that the
/// MachineInstr is created and added to the end of the specified basic block.
///
-MachineInstr::MachineInstr(MachineBasicBlock *MBB, MachineOpCode Opcode,
+MachineInstr::MachineInstr(MachineBasicBlock *MBB, MachineOpCode opcode,
unsigned numOperands)
- : opCode(Opcode),
- numImplicitRefs(0)
-{
+ : Opcode(opcode), numImplicitRefs(0) {
assert(MBB && "Cannot use inserting ctor with null basic block!");
operands.reserve(numOperands);
MBB->push_back(this); // Add instruction to end of basic block!
// OperandComplete - Return true if it's illegal to add a new operand
-bool MachineInstr::OperandsComplete() const
-{
- int NumOperands = TargetInstrDescriptors[opCode].numOperands;
+bool MachineInstr::OperandsComplete() const {
+ int NumOperands = TargetInstrDescriptors[Opcode].numOperands;
if (NumOperands >= 0 && getNumOperands() >= (unsigned)NumOperands)
return true; // Broken: we have all the operands of this instruction!
return false;
// This only resets the size of the operand vector and initializes it.
// The new operands must be set explicitly later.
//
-void MachineInstr::replace(MachineOpCode Opcode, unsigned numOperands)
-{
+void MachineInstr::replace(MachineOpCode opcode, unsigned numOperands) {
assert(getNumImplicitRefs() == 0 &&
"This is probably broken because implicit refs are going to be lost.");
- opCode = Opcode;
+ Opcode = opcode;
operands.clear();
operands.resize(numOperands, MachineOperand());
}
void
MachineInstr::SetMachineOperandConst(unsigned i,
MachineOperand::MachineOperandType operandType,
- int64_t intValue)
-{
+ int64_t intValue) {
assert(i < getNumOperands()); // must be explicit op
- assert(TargetInstrDescriptors[opCode].resultPos != (int) i &&
+ assert(TargetInstrDescriptors[Opcode].resultPos != (int) i &&
"immed. constant cannot be defined");
operands[i].opType = operandType;
operands[i].regNum = regNum;
}
-void
-MachineInstr::SetRegForOperand(unsigned i, int regNum)
-{
+void MachineInstr::SetRegForOperand(unsigned i, int regNum) {
assert(i < getNumOperands()); // must be explicit op
operands[i].setRegForValue(regNum);
}
-void
-MachineInstr::SetRegForImplicitRef(unsigned i, int regNum)
-{
+void MachineInstr::SetRegForImplicitRef(unsigned i, int regNum) {
getImplicitOp(i).setRegForValue(regNum);
}
std::ostream &operator<<(std::ostream& os, const MachineInstr& MI)
{
- os << TargetInstrDescriptors[MI.opCode].Name;
+ os << TargetInstrDescriptors[MI.getOpcode()].Name;
for (unsigned i=0, N=MI.getNumOperands(); i < N; i++) {
os << "\t" << MI.getOperand(i);