From 85f222845429bbab2b3a03ef9e6cd19f7f7654e2 Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Tue, 28 Nov 2006 22:25:32 +0000 Subject: [PATCH] Make identity default, and fix PR1020 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31979 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/CBackend/CBackend.cpp | 10 +++------- lib/Target/CBackend/Writer.cpp | 10 +++------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 18c4d064e33..89ed2ad021a 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -2265,10 +2265,6 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) { assert(c.Codes.size() == 1 && "Too many asm constraint codes to handle"); - //catch numeric constraints - if (c.Codes[0].find_first_not_of("0123456789") >= c.Codes[0].size()) - return c.Codes[0]; - const char** table = 0; //Grab the translation table from TargetAsmInfo if it exists @@ -2291,8 +2287,8 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) { if (c.Codes[0] == table[i]) return table[i+1]; - assert(0 && "Unknown Asm Constraint"); - return ""; + //default is identity + return c.Codes[0]; } //TODO: import logic from AsmPrinter.cpp @@ -2383,7 +2379,7 @@ void CWriter::visitInlineAsm(CallInst &CI) { if (I + 1 != E) Out << ","; } - Out << "\n :" << Clobber.substr(1) << ")\n"; + Out << "\n :" << (Clobber.size() ? Clobber.substr(1) : "") << ")\n"; } void CWriter::visitMallocInst(MallocInst &I) { diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp index 18c4d064e33..89ed2ad021a 100644 --- a/lib/Target/CBackend/Writer.cpp +++ b/lib/Target/CBackend/Writer.cpp @@ -2265,10 +2265,6 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) { assert(c.Codes.size() == 1 && "Too many asm constraint codes to handle"); - //catch numeric constraints - if (c.Codes[0].find_first_not_of("0123456789") >= c.Codes[0].size()) - return c.Codes[0]; - const char** table = 0; //Grab the translation table from TargetAsmInfo if it exists @@ -2291,8 +2287,8 @@ std::string CWriter::InterpretASMConstraint(InlineAsm::ConstraintInfo& c) { if (c.Codes[0] == table[i]) return table[i+1]; - assert(0 && "Unknown Asm Constraint"); - return ""; + //default is identity + return c.Codes[0]; } //TODO: import logic from AsmPrinter.cpp @@ -2383,7 +2379,7 @@ void CWriter::visitInlineAsm(CallInst &CI) { if (I + 1 != E) Out << ","; } - Out << "\n :" << Clobber.substr(1) << ")\n"; + Out << "\n :" << (Clobber.size() ? Clobber.substr(1) : "") << ")\n"; } void CWriter::visitMallocInst(MallocInst &I) {