aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-12-28 20:37:37 +0000
committerChris Lattner <sabre@nondot.org>2002-12-28 20:37:37 +0000
commit10cb79b48430ea7679e83ae045aaeadea04a0cc5 (patch)
tree16433bcca90d6183412c97e1bd1de01c014febfc /lib
parent955fad1f99dd174023a1b2e6a1795958147b077d (diff)
downloadexternal_llvm-10cb79b48430ea7679e83ae045aaeadea04a0cc5.zip
external_llvm-10cb79b48430ea7679e83ae045aaeadea04a0cc5.tar.gz
external_llvm-10cb79b48430ea7679e83ae045aaeadea04a0cc5.tar.bz2
* Add printing support for FrameIndex operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5194 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/MachineInstr.cpp53
1 files changed, 29 insertions, 24 deletions
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp
index b21d24d..f0a9645 100644
--- a/lib/CodeGen/MachineInstr.cpp
+++ b/lib/CodeGen/MachineInstr.cpp
@@ -265,7 +265,9 @@ static void print(const MachineOperand &MO, std::ostream &OS,
<< ((Value*)MO.getMachineBasicBlock()->getBasicBlock())->getName()
<< "," << (void*)MO.getMachineBasicBlock()->getBasicBlock() << ">";
break;
-
+ case MachineOperand::MO_FrameIndex:
+ OS << "<fi#" << MO.getFrameIndex() << ">";
+ break;
default:
assert(0 && "Unrecognized operand type");
}
@@ -341,61 +343,64 @@ std::ostream &operator<<(std::ostream& os, const MachineInstr& minstr)
return os << "\n";
}
-std::ostream &operator<<(std::ostream &os, const MachineOperand &MO)
+std::ostream &operator<<(std::ostream &OS, const MachineOperand &MO)
{
if (MO.opHiBits32())
- os << "%lm(";
+ OS << "%lm(";
else if (MO.opLoBits32())
- os << "%lo(";
+ OS << "%lo(";
else if (MO.opHiBits64())
- os << "%hh(";
+ OS << "%hh(";
else if (MO.opLoBits64())
- os << "%hm(";
+ OS << "%hm(";
switch (MO.getType())
{
case MachineOperand::MO_VirtualRegister:
- os << "%reg";
- OutputValue(os, MO.getVRegValue());
+ OS << "%reg";
+ OutputValue(OS, MO.getVRegValue());
if (MO.hasAllocatedReg()) {
- os << "==";
- OutputReg(os, MO.getAllocatedRegNum());
+ OS << "==";
+ OutputReg(OS, MO.getAllocatedRegNum());
}
break;
case MachineOperand::MO_CCRegister:
- os << "%ccreg";
- OutputValue(os, MO.getVRegValue());
+ OS << "%ccreg";
+ OutputValue(OS, MO.getVRegValue());
if (MO.hasAllocatedReg()) {
- os << "==";
- OutputReg(os, MO.getAllocatedRegNum());
+ OS << "==";
+ OutputReg(OS, MO.getAllocatedRegNum());
}
break;
case MachineOperand::MO_MachineRegister:
- OutputReg(os, MO.getMachineRegNum());
+ OutputReg(OS, MO.getMachineRegNum());
break;
case MachineOperand::MO_SignExtendedImmed:
- os << (long)MO.getImmedValue();
+ OS << (long)MO.getImmedValue();
break;
case MachineOperand::MO_UnextendedImmed:
- os << (long)MO.getImmedValue();
+ OS << (long)MO.getImmedValue();
break;
case MachineOperand::MO_PCRelativeDisp:
{
const Value* opVal = MO.getVRegValue();
bool isLabel = isa<Function>(opVal) || isa<BasicBlock>(opVal);
- os << "%disp(" << (isLabel? "label " : "addr-of-val ");
+ OS << "%disp(" << (isLabel? "label " : "addr-of-val ");
if (opVal->hasName())
- os << opVal->getName();
+ OS << opVal->getName();
else
- os << (const void*) opVal;
- os << ")";
+ OS << (const void*) opVal;
+ OS << ")";
break;
}
case MachineOperand::MO_MachineBasicBlock:
- os << "bb<"
+ OS << "bb<"
<< ((Value*)MO.getMachineBasicBlock()->getBasicBlock())->getName()
<< "," << (void*)MO.getMachineBasicBlock()->getBasicBlock() << ">";
break;
+ case MachineOperand::MO_FrameIndex:
+ OS << "<fi#" << MO.getFrameIndex() << ">";
+ break;
default:
assert(0 && "Unrecognized operand type");
break;
@@ -404,7 +409,7 @@ std::ostream &operator<<(std::ostream &os, const MachineOperand &MO)
if (MO.flags &
(MachineOperand::HIFLAG32 | MachineOperand::LOFLAG32 |
MachineOperand::HIFLAG64 | MachineOperand::LOFLAG64))
- os << ")";
+ OS << ")";
- return os;
+ return OS;
}