TargetInfo::validateAsmConstraint now takes a reference to the full constraints string. This will make it possible to support multi-character constraints. No functionality change (for now).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65696 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 1aa8282..ef17d2d 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -279,9 +279,9 @@
unsigned &NumNames) const;
virtual void getGCCRegAliases(const GCCRegAlias *&Aliases,
unsigned &NumAliases) const;
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
- switch (c) {
+ switch (*Name) {
default: return false;
case 'O': // Zero
return true;
@@ -491,7 +491,7 @@
Aliases = GCCRegAliases;
NumAliases = llvm::array_lengthof(GCCRegAliases);
}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const;
virtual std::string convertConstraint(const char Constraint) const;
virtual const char *getClobbers() const {
@@ -500,9 +500,9 @@
};
bool
-X86TargetInfo::validateAsmConstraint(char c,
+X86TargetInfo::validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
- switch (c) {
+ switch (*Name) {
default: return false;
case 'a': // eax.
case 'b': // ebx.
@@ -782,10 +782,10 @@
Aliases = 0;
NumAliases = 0;
}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
// FIXME: Check if this is complete
- switch (c) {
+ switch (*Name) {
default:
case 'l': // r0-r7
case 'h': // r8-r15
@@ -847,7 +847,7 @@
unsigned &NumNames) const;
virtual void getGCCRegAliases(const GCCRegAlias *&Aliases,
unsigned &NumAliases) const;
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
// FIXME: Implement!
return false;
@@ -958,7 +958,7 @@
virtual const char *getTargetPrefix() const {return "";}
virtual void getGCCRegNames(const char * const *&Names,
unsigned &NumNames) const {}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
return true;
}