From: Eric Christopher Date: Thu, 2 Jun 2011 19:26:37 +0000 (+0000) Subject: Add a new parse hint for multi-letter constraints in inline asm. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5fab03d54cc1e624b9c9f32a66505aff388d99da;p=oota-llvm.git Add a new parse hint for multi-letter constraints in inline asm. Testcase will come when we use it. Part of rdar://9119939 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132476 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/InlineAsm.cpp b/lib/VMCore/InlineAsm.cpp index e4f99f09a5c..70d0e3881e8 100644 --- a/lib/VMCore/InlineAsm.cpp +++ b/lib/VMCore/InlineAsm.cpp @@ -181,6 +181,15 @@ bool InlineAsm::ConstraintInfo::Parse(StringRef Str, multipleAlternativeIndex++; pCodes = &multipleAlternatives[multipleAlternativeIndex].Codes; ++I; + } else if (*I == '^') { + // Multi-letter constraint + // These will only occur with the existing multiple alternative + // constraints and so we can use the isalpha loop below. + StringRef::iterator ConStart = I; + while (I != E && isalpha(*I)) + ++I; + pCodes->push_back(std::string(ConStart, I)); + ++I; } else { // Single letter constraint. pCodes->push_back(std::string(I, I+1));