diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2012-10-29 12:20:54 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2012-10-29 12:20:54 +0000 |
commit | e6b3dbae38f62164cab3989380cd940242d80120 (patch) | |
tree | 63fa1c0210779d20b96e8dca2f0a9b68c6623427 /lib | |
parent | 452abbc76b775169dc01c359e94a7f666ebc8692 (diff) |
Handle '*' and '#' asm constraint modifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166924 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Basic/TargetInfo.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/CGStmt.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/Basic/TargetInfo.cpp b/lib/Basic/TargetInfo.cpp index b89b18b3ae..3257526289 100644 --- a/lib/Basic/TargetInfo.cpp +++ b/lib/Basic/TargetInfo.cpp @@ -364,6 +364,8 @@ bool TargetInfo::validateOutputConstraint(ConstraintInfo &Info) const { break; case '?': // Disparage slightly code. case '!': // Disparage severely. + case '#': // Ignore as constraint. + case '*': // Ignore for choosing register preferences. break; // Pass them. } @@ -483,6 +485,8 @@ bool TargetInfo::validateInputConstraint(ConstraintInfo *OutputConstraints, break; case '?': // Disparage slightly code. case '!': // Disparage severely. + case '#': // Ignore as constraint. + case '*': // Ignore for choosing register preferences. break; // Pass them. } diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index 5c1fea4472..3548dbac6f 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -1280,6 +1280,10 @@ SimplifyConstraint(const char *Constraint, const TargetInfo &Target, case '=': // Will see this and the following in mult-alt constraints. case '+': break; + case '#': // Ignore the rest of the constraint alternative. + while (Constraint[1] && Constraint[1] != ',') + Constraint++; + break; case ',': Result += "|"; break; |