diff options
author | Chris Lattner <sabre@nondot.org> | 2002-12-28 20:37:37 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-12-28 20:37:37 +0000 |
commit | 10cb79b48430ea7679e83ae045aaeadea04a0cc5 (patch) | |
tree | 16433bcca90d6183412c97e1bd1de01c014febfc /lib | |
parent | 955fad1f99dd174023a1b2e6a1795958147b077d (diff) | |
download | external_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.cpp | 53 |
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; } |