aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-03 01:00:52 +0000
committerChris Lattner <sabre@nondot.org>2010-02-03 01:00:52 +0000
commitff259dbe71427fbe989d2f886f08c00e369df771 (patch)
treed31ee6cae9289ca7b8771cc4bfd60870038cbfe3 /lib/CodeGen/AsmPrinter/AsmPrinter.cpp
parentfa4e853215e887efaf9537c1331ed3c1dfebb662 (diff)
downloadexternal_llvm-ff259dbe71427fbe989d2f886f08c00e369df771.tar.gz
external_llvm-ff259dbe71427fbe989d2f886f08c00e369df771.tar.bz2
external_llvm-ff259dbe71427fbe989d2f886f08c00e369df771.zip
sink handling of target-independent machine instrs (other
than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/AsmPrinter.cpp')
-rw-r--r--lib/CodeGen/AsmPrinter/AsmPrinter.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index fea06badca..71668f5e25 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -346,8 +346,25 @@ void AsmPrinter::EmitFunctionBody() {
// FIXME: Clean up processDebugLoc.
processDebugLoc(II, true);
- EmitInstruction(II);
-
+ switch (II->getOpcode()) {
+ case TargetInstrInfo::DBG_LABEL:
+ case TargetInstrInfo::EH_LABEL:
+ case TargetInstrInfo::GC_LABEL:
+ printLabel(II);
+ break;
+ case TargetInstrInfo::INLINEASM:
+ printInlineAsm(II);
+ break;
+ case TargetInstrInfo::IMPLICIT_DEF:
+ printImplicitDef(II);
+ break;
+ case TargetInstrInfo::KILL:
+ printKill(II);
+ break;
+ default:
+ EmitInstruction(II);
+ break;
+ }
if (VerboseAsm)
EmitComments(*II);
O << '\n';