From c143f0a7ff75e13d1878480965f68dd1aa1256cb Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 4 Apr 2010 18:58:53 +0000 Subject: more interface cleanup make some helpers static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100343 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 51 +++++++++++++++++------------------ 1 file changed, 24 insertions(+), 27 deletions(-) (limited to 'lib/CodeGen/AsmPrinter/AsmPrinter.cpp') diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index eb937ec..62207f2 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -401,6 +401,28 @@ static void EmitComments(const MachineInstr &MI, raw_ostream &CommentOS) { } } +/// EmitImplicitDef - This method emits the specified machine instruction +/// that is an implicit def. +static void EmitImplicitDef(const MachineInstr *MI, AsmPrinter &AP) { + unsigned RegNo = MI->getOperand(0).getReg(); + AP.OutStreamer.AddComment(Twine("implicit-def: ") + + AP.TM.getRegisterInfo()->getName(RegNo)); + AP.OutStreamer.AddBlankLine(); +} + +static void EmitKill(const MachineInstr *MI, AsmPrinter &AP) { + std::string Str = "kill:"; + for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) { + const MachineOperand &Op = MI->getOperand(i); + assert(Op.isReg() && "KILL instruction must have only register operands"); + Str += ' '; + Str += AP.TM.getRegisterInfo()->getName(Op.getReg()); + Str += (Op.isDef() ? "" : ""); + } + AP.OutStreamer.AddComment(Str); + AP.OutStreamer.AddBlankLine(); +} + /// EmitFunctionBody - This method emits the body and trailer for a @@ -442,10 +464,10 @@ void AsmPrinter::EmitFunctionBody() { EmitInlineAsm(II); break; case TargetOpcode::IMPLICIT_DEF: - EmitImplicitDef(II); + if (isVerbose()) EmitImplicitDef(II, *this); break; case TargetOpcode::KILL: - EmitKill(II); + if (isVerbose()) EmitKill(II, *this); break; default: EmitInstruction(II); @@ -1324,31 +1346,6 @@ void AsmPrinter::printOffset(int64_t Offset, raw_ostream &OS) const { } -/// EmitImplicitDef - This method emits the specified machine instruction -/// that is an implicit def. -void AsmPrinter::EmitImplicitDef(const MachineInstr *MI) const { - if (!isVerbose()) return; - unsigned RegNo = MI->getOperand(0).getReg(); - OutStreamer.AddComment(Twine("implicit-def: ") + - TM.getRegisterInfo()->getName(RegNo)); - OutStreamer.AddBlankLine(); -} - -void AsmPrinter::EmitKill(const MachineInstr *MI) const { - if (!isVerbose()) return; - - std::string Str = "kill:"; - for (unsigned n = 0, e = MI->getNumOperands(); n != e; ++n) { - const MachineOperand &Op = MI->getOperand(n); - assert(Op.isReg() && "KILL instruction must have only register operands"); - Str += ' '; - Str += TM.getRegisterInfo()->getName(Op.getReg()); - Str += (Op.isDef() ? "" : ""); - } - OutStreamer.AddComment(Str); - OutStreamer.AddBlankLine(); -} - MCSymbol *AsmPrinter::GetBlockAddressSymbol(const BlockAddress *BA) const { return MMI->getAddrLabelSymbol(BA->getBasicBlock()); } -- cgit v1.1