diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-11 19:38:03 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-11 19:38:03 +0000 |
commit | 0653218b2b8c22c2f4b7981965061291b878090a (patch) | |
tree | 0e05be03761c002051e0aeac640912c732586912 /llvm/lib/Target/Sparc/SparcAsmPrinter.cpp | |
parent | 2210562249a199be92334d3ca89d6d146b95a945 (diff) | |
download | bcm5719-llvm-0653218b2b8c22c2f4b7981965061291b878090a.tar.gz bcm5719-llvm-0653218b2b8c22c2f4b7981965061291b878090a.zip |
[Sparc] Bundle instruction with delay slow and its filler. Now, we can use -verify-machineinstrs with SPARC backend.
llvm-svn: 199014
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcAsmPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcAsmPrinter.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp index c98be39621e..f24415796f4 100644 --- a/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp +++ b/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp @@ -184,7 +184,6 @@ static void LowerGETPCXAndEmitMCInsts(const MachineInstr *MI, void SparcAsmPrinter::EmitInstruction(const MachineInstr *MI) { - MCInst TmpInst; switch (MI->getOpcode()) { default: break; @@ -195,8 +194,13 @@ void SparcAsmPrinter::EmitInstruction(const MachineInstr *MI) LowerGETPCXAndEmitMCInsts(MI, OutStreamer, OutContext); return; } - LowerSparcMachineInstrToMCInst(MI, TmpInst, *this); - OutStreamer.EmitInstruction(TmpInst); + MachineBasicBlock::const_instr_iterator I = MI; + MachineBasicBlock::const_instr_iterator E = MI->getParent()->instr_end(); + do { + MCInst TmpInst; + LowerSparcMachineInstrToMCInst(I, TmpInst, *this); + OutStreamer.EmitInstruction(TmpInst); + } while ((++I != E) && I->isInsideBundle()); // Delay slot check. } void SparcAsmPrinter::EmitFunctionBodyStart() { |