split DEBUG_VALUE printing stuff out to its own method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100315 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-04-04 05:38:19 +00:00
parent c82d9c4e5c
commit bfbab35653
2 changed files with 63 additions and 58 deletions

View File

@@ -87,6 +87,8 @@ class VISIBILITY_HIDDEN X86AsmPrinter : public AsmPrinter {
void PrintPICBaseSymbol(raw_ostream &O) const; void PrintPICBaseSymbol(raw_ostream &O) const;
bool runOnMachineFunction(MachineFunction &F); bool runOnMachineFunction(MachineFunction &F);
void PrintDebugValueComment(const MachineInstr *MI, raw_ostream &OS);
}; };
} // end namespace llvm } // end namespace llvm

View File

@@ -326,16 +326,10 @@ void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
} }
} }
void X86AsmPrinter::PrintDebugValueComment(const MachineInstr *MI,
raw_ostream &O) {
void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
X86MCInstLower MCInstLowering(OutContext, Mang, *this);
switch (MI->getOpcode()) {
case TargetOpcode::DBG_VALUE: {
// FIXME: if this is implemented for another target before it goes // FIXME: if this is implemented for another target before it goes
// away completely, the common part should be moved into AsmPrinter. // away completely, the common part should be moved into AsmPrinter.
if (!VerboseAsm)
return;
O << '\t' << MAI->getCommentString() << "DEBUG_VALUE: "; O << '\t' << MAI->getCommentString() << "DEBUG_VALUE: ";
unsigned NOps = MI->getNumOperands(); unsigned NOps = MI->getNumOperands();
// cast away const; DIetc do not take const operands for some reason. // cast away const; DIetc do not take const operands for some reason.
@@ -388,8 +382,17 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
O << "+"; O << "+";
printOperand(MI, NOps-2, O); printOperand(MI, NOps-2, O);
OutStreamer.AddBlankLine(); OutStreamer.AddBlankLine();
}
void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
X86MCInstLower MCInstLowering(OutContext, Mang, *this);
switch (MI->getOpcode()) {
case TargetOpcode::DBG_VALUE:
if (VerboseAsm)
PrintDebugValueComment(MI, O);
return; return;
}
case X86::MOVPC32r: { case X86::MOVPC32r: {
MCInst TmpInst; MCInst TmpInst;
// This is a pseudo op for a two instruction sequence with a label, which // This is a pseudo op for a two instruction sequence with a label, which